[Lazarus-es] trabajando con horas

Paola Bruccoleri pbruccoleri en adinet.com.uy
Dom Oct 17 20:04:32 CEST 2010


  Hola a todos..
necesito la ayuda experta de Uds..

Tengo una tabla en Firebird con campos de este tipo, donde se guardan 
las hs trabajadas diariamente.
HS_OPERARIO TIME
......

Necesito hacer un reporte donde obtener obviamente la suma de horas por 
vehiculo, y a la vez una suma total.

Lo más lógico sería hacer un select sum(hs_operario) from tabla.... pero 
en firebird esto no funciona tan así.
He logrado obtener con sql la suma extrayendo horas, minutos, segundos, 
haciendo cuentas y obteniendo el resultado en formato hhh:mm:ss, pero 
como string.
No puedo usar un cast a tipo time porque obviamente obtendré valores de 
mas de 24hs. Y se me cpmplica obtener la suma total de los renglones..

Encontré otra forma de sumar horas pero me devuelve el resultado en 
segundos.
Entonces, pensé que lazreport me hiciera las cuentas y obtener el 
formato que yo deseo, haciendo algo de este tipo:

[ [qry."HS_TRABAJO"] / 3600 + ":"+ MOD([qry."HS_TRABAJO"], 3600)/60 + 
":"+ MOD( MOD([qry."HS_TRABAJO"], 3600), 60)

pero esto no funciona así.. además, necesitaría obtener las partes 
enteras de las divisiones...
Quizás haya que usar algo en OnUserFunction, pero no me doy cuenta de 
cómo resolverlo.

Les agradezco enormemente..!
chauuuuuuuuu














More information about the Lazarus-es mailing list