Announcement

Collapse
No announcement yet.

2 DBGrids abgleichen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • 2 DBGrids abgleichen

    Hallo an alle,
    ich habe ein DBGrid mit den Spalten Vorname und Nachname und ein zweites Grid in dem nach einem SQL-Script Vor- und Nachname in einer Spalte stehen. Nun möchte ich auf mein zweites DBGrid klicken und das erste DBGrid soll an die gleiche Stelle gehen.
    Ich hoffe das die Frage nicht zu einfach ist....

    Danke

    Detlef

  • #2
    Hi,
    du kannst ja die Tatsache nutzen, dass beim klicken in ein DBGrid der Cursor af den entsprechenden Datensatz der Datenmenge gestellt wird. Also kann man in der Datenmenge des ersten DBGrids noch dem Datensatz suchen, der mit den Feldwerten aus der Datenmenge des zweiten DBGrids übereinstimmt.
    <br>
    Unter der Annahme dass das DBGrid2 Daten von Query anzeigt, muss evtl angepasst werden. Weiterhin kann man QueryFields[0] durch das Feld austauschen, in welchem der Vor- bzw. Nachname steht. Falls die Namen nicht genau übereinstimmen kannst Du noch entsprechende Optionen bei Locate verwenden.
    <br>
    procedure TForm1.DBGrid1CellClick(Column: TColumn);
    <br>
    begin
    <br>
    DBGrid1.DataSource.DataSet.Locate('Vorname,Name',V arArrayOf([Query.Fields[0].AsString, Query.Fields[1].AsString]),[]);
    <br>
    end;
    <br>
    Soweit..

    Comment


    • #3
      OK, vielen Dank.
      Das werde ich sofort ausprobieren.

      Detle

      Comment


      • #4
        Hallo,

        hab deinen Vorschlag mal ausprobiert und bekomme immer die Fehlermeldung "Index überschreitet das maximum(-1)" was mach ich falsch ? Arbeite mit delphi5 und einer lokalen paradox db.

        Tschüß,

        Wilhelm Hein

        Comment


        • #5
          Hallo,

          da gibt es aber einen einfacheren Weg:

          Lege im Feldeditor ein neues berechnetes Feld an (z.B. FullName). In der Methode OnCalcFields fügst du dann Vorname und Namen zusammen.

          Nun brauchst du bloß 2 Grids an dieselbe DataSource zu hängen: im zweiten Grid zeigst du das berechnete Feld an. Die Daten sind dann automatisch immer synchron.

          Gruß UL

          Comment


          • #6
            Hallo,

            versucht mal ein ; als Trennzeichen (bei dem Locate-Befehl) zwischen: 'Vorname;Name'. Ich denke, dass es das gleich ist wie bei einer TQuery-Abfrage und dort geht es nicht mit einem ,

            Gruß Andrea

            Comment

            Working...
            X