Lucas Conceição Postado Outubro 11, 2011 Denunciar Share Postado Outubro 11, 2011 (editado) Bom dia pessoal,estou criando relatórios e agora eu preciso somar o tempo total gasto,Porém na minha coluna os valores aparecem assim por exemplo (hh:mm:ss): 10:32:44 ou seja 10 horas, 32 minutos e 44 segundos.ai se eu tenho por exemplo 3 linhas:00:23:0000:15:0001:20:00Preciso que some esses valores e mostro no final: 01:58:00Alguém sabe me ajudar?Já tentei utilizar o SUM, porém quando eu executo o programa, onde deveria aparecer o total aparece "#Error".Obrigadoooo. Editado Outubro 11, 2011 por Lucas Conceição Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Xistyle Postado Outubro 11, 2011 Denunciar Share Postado Outubro 11, 2011 Lucas, 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://Fórmula @SomaHoras 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: //Fórmula que irá exibir no relatório Replace(CStr(Floor(Sum ({@SomaHoras}) / 3600)), ".00","") + ":" + Replace(CStr(Floor((Sum ({@SomaHoras}) Mod 3600)/60)), ".00","") + ":" + Replace(CStr(Floor(Sum ({@SomaHoras}) Mod 60)), ".00","") Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Lucas Conceição Postado Outubro 11, 2011 Autor Denunciar Share Postado Outubro 11, 2011 Eu acho que entendi o que é pra afzer,porém onde que coloco esse código da fórmula?o segundo vai no value do textbox né? e o primeiro?To boiando um pouco heheheheh Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Xistyle Postado Outubro 11, 2011 Denunciar Share Postado Outubro 11, 2011 O primeiro não vai ficar no seu layout. Vai ser apenas uma fórmula com cálculo interno. A segunda vai ficar no seu layout. Ai esta vai chamar a primeira, que vai executar todo o código. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Lucas Conceição Postado Outubro 11, 2011 Autor Denunciar Share Postado Outubro 11, 2011 Isso dai eu entendi,mas o problema é onde vai ficar a fórmula? Onde que eu posso escrevê-la? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Xistyle Postado Outubro 11, 2011 Denunciar Share Postado Outubro 11, 2011 O Report Viewer é mais diferente do Crystal do que eu imaginava... estou dando as dicas baseado no Crystal... :xMas se for o caso, coloca tudo numa mesma fórmula, e troca o @SomaHoras por TotalSegundos... deve funcionar. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Lucas Conceição Postado Outubro 11, 2011 Autor Denunciar Share Postado Outubro 11, 2011 Xistyle n funcionou não,Criei um textbox efui la em Expression ai coloquei assim=Replace(CStr(Floor(Sum ({TotalSegundos}) / 3600)), ".00","") + ":" + Replace(CStr(Floor((Sum ({TotalSegundos}) Mod 3600)/60)), ".00","") + ":" + Replace(CStr(Floor(Sum ({TotalSegundos}) Mod 60)), ".00","")Porém ele não reconhece esse "TotalSegundos". Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Xistyle Postado Outubro 11, 2011 Denunciar Share Postado Outubro 11, 2011 Então, não sei como funciona no Report Viewer. No Crystal, você cria objetos chamados Formulas. Nestes, você coloca qualquer informação que quiser, desde apenas um campo até um cálculo, uma condição...Se você conseguir, dentro dessa opção Expression declarar variáveis, faça com o código todo: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])); =Replace(CStr(Floor(Sum ({TotalSegundos}) / 3600)), ".00","") + ":" + Replace(CStr(Floor((Sum ({TotalSegundos}) Mod 3600)/60)), ".00","") + ":" + Replace(CStr(Floor(Sum ({TotalSegundos}) Mod 60)), ".00","") Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Lucas Conceição Postado Outubro 11, 2011 Autor Denunciar Share Postado Outubro 11, 2011 è eu tentei isso já, mas não deu certo,vou continuar procurando,Obeigado pela ajuda e pela fórmula,vou ver como consigo colocá-la em algum lugar xD Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Lucas Conceição
Bom dia pessoal,
estou criando relatórios e agora eu preciso somar o tempo total gasto,
Porém na minha coluna os valores aparecem assim por exemplo (hh:mm:ss): 10:32:44 ou seja 10 horas, 32 minutos e 44 segundos.
ai se eu tenho por exemplo 3 linhas:
00:23:00
00:15:00
01:20:00
Preciso que some esses valores e mostro no final: 01:58:00
Alguém sabe me ajudar?
Já tentei utilizar o SUM, porém quando eu executo o programa, onde deveria aparecer o total aparece "#Error".
Obrigadoooo.
Editado por Lucas ConceiçãoLink para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.