none
somando campos de hora no cristal reports RRS feed

  • Pergunta

  • tenho um relatorio onde aparecem os funcionarios com os horarios de entrada e saida, gostaria de saber como proceder para fazer a soma das horas trabalhadas baseada em um tabel onde informo a hora correta de entrada e saida
    sexta-feira, 22 de julho de 2011 00:53

Todas as Respostas

  • Maurício, você deve criar uma fórmula (vamos chamá-la de @SomaHoras), que recebe as horas e irá convertê-las em segundos. Você pode fazer desta forma:

     

    local stringvar array HoraCompleta;
    local numbervar  TotalSegundos;
    
    HoraCompleta := split({@seuCampoHora},":");
    
    //Converte a hora [1] e minutos [2] em segundos e soma com os segundos [3]
    TotalSegundos:= (3600 * cdbl(HoraCompleta[1])) + (60 * cdbl(HoraCompleta[2])) + (cdbl(HoraCompleta[3]));

     


    Depois de somar todas essas horas, convertidas em segundos, você converte novamente em horas:

     

          Replace(CStr(Floor(Sum ({@SomaHoras}) / 3600)),       ".00","")
    + ":" + Replace(CStr(Floor((Sum ({@SomaHoras}) Mod 3600)/60)), ".00","")
    + ":" + Replace(CStr(Floor(Sum ({@SomaHoras}) Mod 60)),      ".00","")


     


    "Mas a persistência é o que leva a perfeição."
    segunda-feira, 25 de julho de 2011 13:14