Tempo de permanencia de funcionári
Boa noite, estou enfrentando problemas sérios pra calcular o tempo de permanencia de marinheiro na marina, conforme abaixo:
>
=========================================================
CREDENCIAL ENTRADA SAÍDA PERMANÊNCIA HS/DIA
=========================================================
DATA: 01/07/2009
600106 01/07/2009 08:02:00 01/07/2009 11:45:23 03:43:23
600106 01/07/2009 13:09:16 01/07/2009 15:43:09 02:33:53
SUB-TOTAL: 05:76:76
Problemas enfrentados:
a) Preciso somar o tempo de permanencia por dia que é obtido através de consulta SQL retirado do banco de dados da DIMEP. Para tal inseri o seguinte codigo no evento After Open de uma Stored Procedure, conforme a seguir:
procedure TfrmRelVisitaPeriodo.sspAfterOpen(DataSet: TDataSet);
var
x: TTime;
begin
x:=strtotime('00:00:00');
while not ssp.Eof do begin
x:=x+strtotime(ssp.FieldValues['Tempo_Permanencia']);
ssp.Next;
end;
lbteste.caption:=timetostr(x);
end;>> O tempo aparentemente é calculado sem problemas, o que ocorre é que quando passa de 24 horas de permanência, não consigo exibir em dias + horas + minutos + segundos, o resultado exibido é apenas no formato 00:00:00 (hh:mm:ss). Alguém sabe como posso corrigir isso, existe algum componente?
2) Esse grid gera um relatorio no RAVE, agrupado por dia, conforme podemos ver acima. O problema é que inseri um campo CALCTEXT com a propriedade Field: STRTOTIME(TEMPO_PERMANENCIA). O problema é que a coluna está em formado string e a soma não está sendo feita em formato de horas.
Tentei varias soluções e venho solicitar a ajuda e compaixão de vocês. rs.
Eternamente grato,
Mauro Sérgio
Discussão (1)
Carregando comentários...