Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Calcular datos de un tabla y mostrar en un edit (https://www.clubdelphi.com/foros/showthread.php?t=7475)

Telemaco 17-02-2004 09:43:14

Calcular datos de un tabla y mostrar en un edit
 
hola a todos

alguien sabe o puede ayudarme, necesito hacer que en un edit me aparezca la suma de las horas que un trabajador realiza, para hacer esto he creado un maestro-detalle (empleado-fichajes), de forma que por cada empleado me aparecen todos sus fichajes, el problema que tengo es que no se como calcular las suma de las horas ya que es la primera vez que intento hacer esto. Me han comentado que utilice un campo calculado, pero es que no se como hacerlo.

Alguien puede echarme una mano????

Gracias por vuestra ayuda.

__cadetill 17-02-2004 10:25:24

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

Telemaco 17-02-2004 13:36:20

Gracias, lo he probado y pese a que no me funciona me has ayudado bastante, el unico inconveniiente que tengo es que trabajo con ADO y me da problemas al encontrar la BD, pero seguire intentandolo.

Aunq si tienes alguna sugerencia, sera bien recibida ;)

__cadetill 17-02-2004 14:40:27

Cita:

Empezado por Telemaco
Aunq si tienes alguna sugerencia, sera bien recibida ;)

Pues sería lo mismo, lo que pasa es que en lugar de sea un TQuery ha de ser un TADOQuery y en lugar de asignarle la propiedad DatabaseName le has de asignar la propiedad Conection (creo, nunca he trabajado con ADO)


La franja horaria es GMT +2. Ahora son las 17:29:12.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi