Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   OnCalcFields (https://www.delphipraxis.net/200826-oncalcfields.html)

Luckner 29. Mai 2019 10:09

Datenbank: Access • Version: egal • Zugriff über: ADOQuery

OnCalcFields
 
Hallo,

habe folgenden Effekt beim Benutzen eines DBGrids in Verbindung mit einem ADOQuery. Um die Zeilen durchzunummerieren benutze ich "OnCalcFields" mit folgendem Zeile:

"ADOQueryGejoliste.FieldValues['NUMMER'] := ADOQueryGejoliste.RecNo;"

Effekt ist:

-1 Zeile1
2 Zeile2
3 Zeile3
4 Zeile4
.
.
.
27 Zeile27
28 Zeile28
-1 Zeile29

Woran könnte das liegen, dass an erster und letzter Stelle -1 steht?

Danke, Luckner

Heuman 29. Mai 2019 11:19

AW: OnCalcFields
 
Hallo,

vieleicht hilft das weiter,

ADOQueryGejoliste.first;

while not ADOQueryGejoliste.eof do
begin
ADOQueryGejoliste.FieldValues['NUMMER'] := ADOQueryGejoliste.RecNo;"
ADOQuery1.next;
end;

Gruß

Luckner 29. Mai 2019 14:04

AW: OnCalcFields
 
Hallo Heumann,

es hat schon für einen Augenblick geholfen. Jedoch, sobald ich das DBGrid etwas scrolle, ändern sich die Werte an 1.-ten und letzten Position.

Kenne ich von einem Dataset gar nicht.

Gruß, Luckner

Delphi.Narium 30. Mai 2019 13:14

AW: OnCalcFields
 
In der ersten Zeile ist BoF erreicht und damit RecNo = -1.
In der letzten Zeile ist EoF erreicht und damit ebenfalls RecNo = -1.

Frag' doch im OnCalcFields einfach mal die RecNo ab, ist sie -1, dann ignorierst Du die Zuweisung.
Delphi-Quellcode:
  if ADOQueryGejoliste.RecNo <> -1 then begin
    ADOQueryGejoliste.FieldValues['NUMMER'] := ADOQueryGejoliste.RecNo;
  end;

Luckner 3. Jun 2019 11:26

AW: OnCalcFields
 
Hallo Delphi.Narium,

das funktioniert sicherlich, aber dann ist an der ersten und letzten Stelle "leer". Aber jetzt habe ich herausgefunden, dass wenn ich mit der Maus scrolle, dann werden mir die Nummern richtig angezeigt. Jedoch sobald ich den Scroll-Balken bewege, ändern sich wieder die Werte an erster und letzten Stelle.

Gruß, Luckner


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:21 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