Du kannst in einem berechneten Feld keine Gesamtsumme über alle Datensätze bilden!!!
Grund: du kannst nicht kontrollieren wie oft OnCalcRecord aufgerufen wird.
Das Event kann für einen Datensatz durchaus mehrfach abgefeuert werden. (Sobald ein DBGrid angeschlossen ist)
Mit berechneten Felder kann man sich nur innerhalb eines Datensatzes austoben.
Jegliche Berechnungen, die über einen Datensatz hinausgehen, können prinzipiell nicht funktionieren.
Du kannst natürlich über alle Datensätze gehen und aufaddieren:
Delphi-Quellcode:
gespreis := 0.0;
query1.first;
while not query1.eof do
begin
gespreis := gespreis + Query1.FieldByName('gespreis').AsFloat;
query1.Next;
end;
Mit
SQL geht's aber schneller.