none
Contar linhas com parâmetros no ReportViewer RRS feed

  • Pergunta

  • Olá!

      Eu tenho um relatório que ele é filtrado por um parâmetro através de um combobox com botão, só que o total não está atualizando, ele sempre conta todos os registros da tabela.

     Como eu contaria apenas os campos que estão filtrados?

    Abs.

    segunda-feira, 14 de novembro de 2016 13:44

Respostas

  • Não está contando da forma correta, pois você realiza o filtro no próprio Report, sendo que na minha opinião o correto seria fazer o filtro na consulta que o Report usar (se estiver usando SQL, utilizaria a cláusula WHERE para isso).

    Realizar o filtro na consulta e não no relatório, tem muitas vantagens, como: Você ganha em performance por não ter que retornar todos os dados da tabela para depois filtrá-los (o filtro já é feito na consulta), além de que a contagem do total das linhas irá funcionar perfeitamente com o código que mostrou (count).


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MSP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    • Marcado como Resposta Guttau segunda-feira, 14 de novembro de 2016 18:13
    segunda-feira, 14 de novembro de 2016 15:46
  • Olá Guttau!

    Primeiramente, obrigado por ter adquirido o e-book! A propósito, pode entrar em contato direto comigo por e-mail quando tiver alguma dúvida relacionada, OK?

    Desculpe o meu comentário anterior, eu acabei confundindo as coisas.. É justamente o contrário do que eu falei.. O problema do somatório ocorre quando você faz o filtro pelo grupo.. Se você filtrar a tabela diretamente, o somatório deve vir correto.. Tenta aí e depois fala pra gente se funcionou..

    Abraço!


    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima

    • Marcado como Resposta Guttau sexta-feira, 18 de novembro de 2016 11:07
    sexta-feira, 18 de novembro de 2016 09:23
    Moderador

Todas as Respostas

  • Olá,

    Não entendi bem a pergunta. Pode postar seu código e detalhar mais?


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MSP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    segunda-feira, 14 de novembro de 2016 13:57
  • Eu tenho um relatório que é filtrado por um combobox, e na última linha do relatório é o total de quantos registros são apresentados. Mas essa contagem não muda de acordo com a escolha do combobox, ela sempre conta o total de registros. Independente se está mostrando ou não.

    segunda-feira, 14 de novembro de 2016 14:25
  • Como você passa essa informação de Total para o report?

    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MSP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    segunda-feira, 14 de novembro de 2016 15:05
  • =Cont(fields!Campo.Value)


    segunda-feira, 14 de novembro de 2016 15:08
  • Esse é o comando que está no botão

     var parametroConta = new Microsoft.Reporting.WinForms.ReportParameter();
                parametroConta.Name = "FiltroConta";
                parametroConta.Values.Add(contaCombobox.Text);
                reportViewer_conta.LocalReport.SetParameters(parametroConta);
                reportViewer_conta.RefreshReport();

    E esse é o parâmetro que está no relatório

    =IsNothing(Parameters!FiltroConta) Or 
    String.IsNullOrWhiteSpace(Parameters!FiltroConta.Value) Or 
    Fields!id_conta.Value = Parameters!FiltroConta.Value

    segunda-feira, 14 de novembro de 2016 15:09
  • Essa é a imagem do relatório https:// drive.google.com/open?id=0B33KECNkl79IbDh2UVRXa1owSXM
    segunda-feira, 14 de novembro de 2016 15:15
  • Não está contando da forma correta, pois você realiza o filtro no próprio Report, sendo que na minha opinião o correto seria fazer o filtro na consulta que o Report usar (se estiver usando SQL, utilizaria a cláusula WHERE para isso).

    Realizar o filtro na consulta e não no relatório, tem muitas vantagens, como: Você ganha em performance por não ter que retornar todos os dados da tabela para depois filtrá-los (o filtro já é feito na consulta), além de que a contagem do total das linhas irá funcionar perfeitamente com o código que mostrou (count).


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MSP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    • Marcado como Resposta Guttau segunda-feira, 14 de novembro de 2016 18:13
    segunda-feira, 14 de novembro de 2016 15:46
  • Eu estou usando Access, mas de qualquer maneira obrigado, vou tentar fazer igual você falou.

    Abs.

    segunda-feira, 14 de novembro de 2016 18:13
  • Olá Guttau,

    Se quiser continuar fazendo o filtro no relatório, o que você precisa fazer é alterar o lugar onde você está aplicando o filtro.. Provavelmente você está aplicando o filtro diretamente no componente Table.. Se ao invés de aplicar o filtro na Table você aplicar o filtro nas propriedades do grupo de detalhes, os somatórios devem ser calculados corretamente..

    Tenta aí e depois fala pra gente se funcionou:


    Abraço!


    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima

    terça-feira, 15 de novembro de 2016 15:03
    Moderador
  • Olá André Alves!

      Estou fazendo no grupo, aliás estou fazendo através de seu ebook, que adquiri esse ano.

    quinta-feira, 17 de novembro de 2016 18:38
  • Olá Guttau!

    Primeiramente, obrigado por ter adquirido o e-book! A propósito, pode entrar em contato direto comigo por e-mail quando tiver alguma dúvida relacionada, OK?

    Desculpe o meu comentário anterior, eu acabei confundindo as coisas.. É justamente o contrário do que eu falei.. O problema do somatório ocorre quando você faz o filtro pelo grupo.. Se você filtrar a tabela diretamente, o somatório deve vir correto.. Tenta aí e depois fala pra gente se funcionou..

    Abraço!


    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima

    • Marcado como Resposta Guttau sexta-feira, 18 de novembro de 2016 11:07
    sexta-feira, 18 de novembro de 2016 09:23
    Moderador
  • Olá André!

     Deu certo, fiz o filtro pela tabela e funcionou.

    Obrigado mais uma vez, e entrarei sim em contato.

    Abs e sucesso.

    sexta-feira, 18 de novembro de 2016 11:07
  • Legal, Guttau! Que bom que funcionou.. Qualquer coisa, é só entrar em contato.. Abraço!

    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima

    sexta-feira, 18 de novembro de 2016 11:42
    Moderador