Histórico da Página
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
#INCLUDE "TOTVS.CH"
#INCLUDE "FWMVCDEF.CH"
User Function gatHoraTot(dDataIni, dDataFim, cHoraIni, cHoraFim)
Local cQtdHoras := "00:00"
Local nHoraIni := 0
Local nHoraFim := 0
If !Empty(dDataIni) .And. !Empty(dDataFim) .And.;
!Empty(cHoraIni) .And. !Empty(cHoraFim)
//Transforma hora em formato "00:00" para segundos:
nHoraIni := TimeToSecs(cHoraIni)
nHoraFim := TimeToSecs(cHoraFim)
//Calcula a quantidade de horas totais de acordo com o range de datas e horários:
If nHoraIni > nHoraFim
cQtdHoras := SecsToTime((dDataFim-dDataIni)*(nHoraIni-nHoraFim))
Else
cQtdHoras := SecsToTime((dDataFim-dDataIni)*(nHoraFim-nHoraIni))
EndIf
//Tratamento para desconsiderar os segundos e manter picture "00:00"
cQtdHoras := SubStr(cQtdHoras,1,len(cQtdHoras)-3)
EndIf
//Tratativa caso o total de horas for maior do que o permitido para o campo:
If TamSX3("TFF_QTDHRS")[1] < Len(cQtdHoras)
cQtdHoras := "00:00"
oModel := FwModelActive()
oModel:SetErrorMessage(oModel:GetId(),;
"TFF_QTDHRS",;
oModel:GetId(), ;
"TFF_QTDHRS",;
'TFF_QTDHRS', ;
"Tentativa de informar total de horas maior que o permitido "+;
"para o campo. Contate o administrador do sistema.",'' )
EndIf
Return cQtdHoras |
Importante: Por padrão, o campo TFF_QTDHRS possui tamanho 5, com a picture 99:99. Dessa forma, caso a função retorne um horário superior (por exemplo, "120:00"), ocorrerá um erro de gatilho. Portanto, é fundamental ajustar o tamanho e a picture do campo conforme a necessidade de uso.
...
Import HTML Content
Visão Geral
Conteúdo das Ferramentas