![]() |
Datenbank: Mysql • Version: 4 • Zugriff über: mydac
OnCalcfield 6x ausgelöst bei 2 Datensätzen
Hallo. Wie kann ich das Ereigniss nur 1x pro datensatz auslösen?
Delphi-Quellcode:
with Tabelle do
begin ControlsDisabled; Tag := 1; refresh; Tag := 0; EnableControls; end; ONCALCFIELD begin with Tabelle do begin IF Tag = 1 then exit; Showmessage(''); // 6 mal bei 2 Datensätzen? WARUM? end; end; |
Re: OnCalcfield 6x ausgelöst bei 2 Datensätzen
hmm.... kannst du die operationen nicht auf IB (oder so) verlagern? das geht dann auf jeden fall schneller.
Der Merhfache durchlauf hat etwas mit dem "scrollen" über die datensätze zu run. omputedBy und scrollen sind miteinenader verbunden und es lohnt sich (fast nie) größere Berechnungen so anzustellen. gruß |
Re: OnCalcfield 6x ausgelöst bei 2 Datensätzen
Guten Morgen!
Delphi-Quellcode:
Mit diesen Trick wird das Ereigniss nur 1x Pro ds ausgeführt.
with Tabelle do
begin ControlsDisabled; Tag := 1; Recno := Recno; Tag := 0; EnableControls; end; Wenn ich das in eine Tabelle speichere muss ich so oder so diesen Wert ausrechnen...(->Lagermenge<-) die die Lagermenge zu speichern ist nicht besonder sinnvol, da die sich jedesmal mehrmals ändert. PS diese Anwendung wird von mehr als 10 Usern verwendet. Oder sehe ich das falsch? |
Re: OnCalcfield 6x ausgelöst bei 2 Datensätzen
Was Mojo meinte, war, dass du das Feld ja auch über SQL berechnen lassen kannst:
SQL-Code:
Dann kannst du dir das OnComputed sparen.
SELECT *, anzahl*groesse as lagermenge from Lager;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz