Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Kinhas

[Resolvido] Report Viewer - Somar coluna (00:00:00)

Recommended Posts

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".

 

Um colega meu me mandou um código para realizar essa operação,

 

porém não sei onde eu posso utilizar fórmulas no report viewer,

 

Alguém teria uma idéia?

 

Obrigadooo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui aqui,

 

Via banco de dados eu já sabia como fazer,

 

é que eu não queria deixar tanto código pra uma coisinha assim,

 

mas deixei assim mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe pela demora,

 

tive outras coisas para acelerar aqui,

 

O que eu fiz foi criar uma variável global int no form que contém o repoertviewer,

 

então peguei a string no formato 00:00:00 e mandei para um método que criei para realizar a soma das horas,

 

segue código:

 

int armz_hora = 0;
       int armz_minuto = 0;
       int armz_segundo = 0;
private string somaValores(int hora, int minuto, int segundo)
       {
           armz_hora = hora + armz_hora;
           armz_minuto = minuto + armz_minuto;
           armz_segundo = segundo + armz_segundo;
           while (armz_segundo > 59)
           {
               armz_minuto++;
               armz_segundo = armz_segundo - 60;
           }
           while (armz_minuto > 59)
           {
               armz_hora++;
               armz_minuto = armz_minuto - 60;
           }
           if (armz_segundo < 10)
           {
               if (armz_minuto < 10)
               {
                   if (armz_hora < 10)
                   {
                       string total = "0" + armz_hora.ToString() + ":0" + armz_minuto.ToString() + ":0" + armz_segundo.ToString();
                       return total;
                   }
                   else
                   {
                       string total = armz_hora.ToString() + ":0" + armz_minuto.ToString() + ":0" + armz_segundo.ToString();
                       return total;
                   }
               }
               else
               {
                   if (armz_hora < 10)
                   {
                       string total = "0" + armz_hora.ToString() + ":" + armz_minuto.ToString() + ":0" + armz_segundo.ToString();
                       return total;
                   }
                   else
                   {
                       string total = armz_hora.ToString() + ":" + armz_minuto.ToString() + ":0" + armz_segundo.ToString();
                       return total;
                   }
               }
           }
           else
           {
               if (armz_minuto < 10)
               {
                   if (armz_hora < 10)
                   {
                       string total = "0" + armz_hora.ToString() + ":0" + armz_minuto.ToString() + ":" + armz_segundo.ToString();
                       return total;
                   }
                   else
                   {
                       string total = armz_hora.ToString() + ":0" + armz_minuto.ToString() + ":" + armz_segundo.ToString();
                       return total;
                   }
               }
               else
               {
                   if (armz_hora < 10)
                   {
                       string total = "0" + armz_hora.ToString() + ":" + armz_minuto.ToString() + ":" + armz_segundo.ToString();
                       return total;
                   }
                   else
                   {
                       string total = armz_hora.ToString() + ":" + armz_minuto.ToString() + ":" + armz_segundo.ToString();
                       return total;
                   }
               }
           }
           //return total;
       }

 

Como você podem ver eu separo a string antes de mandar para o método,

 

depois disso eu tenho o valor total, ai criei um parâmetro no dataSet no arquivo de report para receber esse valor,

 

Ai adicionei um textbox no relatório que ficou com esse código:

 

=Parameters!tempo_total.Value

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.