Es sencillo. Haces doble clic sobre tu TTable (o el dataset que tengas), en la pantalla que te aparecerá, le das al botón derecho y escoges
Add All Fields. Luego vuelves a darle al botón derecho y escoges
New Field y, en la pantalla que te mostrará, pones nombre del campo (ej. SumHoras), el tipo (DateTime o Time) y escoges que sea
calculated
Luego, te vas al evento OnClacFields de tu TTable y pones el código pertinente que, podría ser algo así
(suponiendo que utilizas BDE)
Código:
procedure TMiForm.Tabla1CalcFields(DataSet: TDataSet);
var
Q: TQuery;
H: TTime;
begin
Q := TQuery.Create(nil);
Q.DataBaseName := Tabla1.DataBaseName;
Q.SQL.Text := 'select CampoTime from Tabla where codigo = ' + Tabla1Codigo.AsString;
try
Q.Open;
H := 0;
while not Q.Eof do
begin
H := H + Q.FieldByName('CAmpoTime').AsDateTime;
Q.Next;
end;
finally
FreeAndNil(Q);
end;
SumHoras := H;
end;
PD: He probado ha hacer un SUM directamente en una tabla PDOX en el SQL pero no me ha dejado, por eso el bucle de suma