Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Problen aus zwei Stringgrid Daten übernehmen (https://www.delphipraxis.net/209585-problen-aus-zwei-stringgrid-daten-uebernehmen.html)

jmich 25. Dez 2021 20:14

Delphi-Version: 11 Alexandria

Problen aus zwei Stringgrid Daten übernehmen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi Delphianer,

habe ein kleines Problem wo ich einfach nicht weiter komme.
habe 2 Stringgrid aus dem ich verschiedene Einträge übernehmen bzw auslesen will.
Dies soll per Buttonklick erfolgen. Die Daten sollen dann in dritte Stringgrid und in
eine virtuelle Dankbank ausgeben werden. Hier der Code:
Delphi-Quellcode:
Var
s,k,i,j : integer;
begin
      VTable_aufm.Open; //viruelle Datenbanktabelle
      VTable_aufm.Clear;
       for s := sg_rechnungsdetail.FixedRows to sg_rechnungsdetail.RowCount do
          begin
                  VTable_aufm.Append;
                  VTable_aufm.FieldByName('lvposition').AsString := aufm_rech.sg_rechnungsdetail.Cells[3,s];
                  VTable_aufm.FieldByName('lvtext').AsString := aufm_rech.sg_rechnungsdetail.Cells[4,s];
                      VTable_aufm.Post;
                      for k := sg_rechnungsposition.FixedRows to sg_rechnungsposition.RowCount-1 do
                       begin
                            VTable_aufm.append;
                            VTable_aufm.FieldByName('lvposition').AsString := aufm_rech.sg_rechnungsposition.Cells[3,k];
                            VTable_aufm.FieldByName('lvtext').AsString := aufm_rech.sg_rechnungsposition.Cells[4,k];
                            VTable_aufm.Post;
                        end;
                  sg_rechnungsdetail.Row := sg_rechnungsdetail.RowCount-1;
              end;
         VTable_aufm.Close;

  StringGrid1.ColCount := 8;
     StringGrid1.RowCount := 0;
    VTable_aufm.Open;
    VTable_aufm.First;
    j := 1;
    while not VTable_aufm.Eof do
     begin
         for i := 1 to VTable_aufm.FieldCount-1 do
           aufm_rech.StringGrid1.Cells[i,j] := VTable_aufm.Fields[i].AsString;
            VTable_aufm.Next;
            inc(j);
           aufm_rech.StringGrid1.RowCount := aufm_rech.StringGrid1.RowCount +1 ;
     end;
    VTable_aufm.Close;
end;
Funktioniert soweit,aber im dritten Stringgrid sowie in der Datenbank erhalte ich immer
drei Zeilen zuviel (dopplete Einträge).
Im Anhang habe ich das Ergebnis vom dritten Stringgrid.

Hat jemand eine Idee wie ich das Problem lösen könnte?
im Voraus schon mal vielen Dank.

Jmich

DeddyH 26. Dez 2021 08:26

AW: Problen aus zwei Stringgrid Daten übernehmen
 
Ich habe es jetzt nicht im Detail nachvollzogen, aber die erste Schleife geht bis RowCount statt RowCount -1.

himitsu 26. Dez 2021 10:12

AW: Problen aus zwei Stringgrid Daten übernehmen
 
Und beim Befüllen (letzte Schleife) :
Sollte man da nicht erst die Row bereitstellen (RowCount + 1) danach da die neue Row etwas reinschreiben?

Außerdem:
Gibt es in StringGrid1 auch FixedRows, oder fängt da J etwa auch noch zu hoch an?

-> Row gibt es noch garnicht und J wäre dann somit um zwei zu hoch.

jmich 26. Dez 2021 12:48

AW: Problem aus zwei Stringgrid Daten übernehmen
 
Hi DeddyH,

vielen Dank für Deinen Hinweis. Natürlich - Klar ohne RowCount -1
zählt die Schleife falsch.
Diesen Fehler habe ich glatt übersehen.
Jetzt wird alles so ausgegeben wie ich es haben möchte.

Nochmals Danke

Jmich


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:11 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz