Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-02-2004
Telemaco Telemaco is offline
Miembro
 
Registrado: feb 2004
Posts: 50
Poder: 21
Telemaco Va por buen camino
Question 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.
Responder Con Cita
  #2  
Antiguo 17-02-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 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
  #3  
Antiguo 17-02-2004
Telemaco Telemaco is offline
Miembro
 
Registrado: feb 2004
Posts: 50
Poder: 21
Telemaco Va por buen camino
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
Responder Con Cita
  #4  
Antiguo 17-02-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
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)
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 19:20:24.


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
Copyright 1996-2007 Club Delphi