Ver Mensaje Individual
  #2  
Antiguo 17-02-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Reputación: 25
__cadetill Va por buen camino
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
Responder Con Cita