Agrupamentos Simples no Report Viewer do VS 2010

[Atenção!!! Este artigo tem sua versão em vídeo! Se quiser pular a parte escrita e só assistir o vídeo, dê uma olhada no final do post!]

Olá pessoal, tudo tranquilo?

No post de hoje vou explicar como fazer agrupamentos simples no Report Viewer que acompanha o Visual Studio 2010. Vou falar sobre isso porque, como vocês sabem, o novo Report Viewer conta agora com componentes novos, mais avançados e sofisticados, como o novo Tablix. E, com a chagada das funcionalidades novas do Tablix, uma das features que teve melhorias foi a questão de agrupamentos. Agora conseguimos fazer agrupamentos de várias formas (Column ou Row Groups, do tipo Parent, Child, Adjacent Right e Adjacent Left).

Entretanto, toda essa sofisticação na questão dos agrupamentos acabou confundindo todo mundo que estava acostumado com o jeito antigo de se fazer agrupamentos (botão direito, add group e pronto). Várias questões no fórum da MSDN tratam essa questão de pessoas perdidas com o agrupamento no Report Viewer do VS 2010.

Portanto, neste artigo / vídeo de hoje, vou mostrar uma das maneiras para que vocês consigam criar o mesmo tipo de grupo que vocês estavam acostumados com as versões anteriores.

Primeiramente, para esse exemplo, vamos utilizar a seguinte estrutura:

Nesse DataSet temos uma lista de Atividades. Essas Atividades foram executadas em alguma data por um certo funcionário. Suponham que tenhamos os seguintes dados nesse DataSet:

Com essas informações, gostaria de montar um relatório agrupado por:

G1) Atividades
   G2) Datas
      D) Funcionários

Para conseguirmos um relatório com esse layout, no seu projeto no Visual Studio 2010, adicione um novo item do tipo Report. Não se esqueça que essas informações são válidas para aplicações com Target Framework = .NET Framework 4.0.

No relatório que você criou, abra o ToolBox e arraste um componente do tipo Table no corpo do seu relatório. Na janela Report Data, adicione um novo DataSet no seu relatório apontando para o local em que está a fonte de dados que alimentará o seu relatório.

Feito isso, arraste os campos DESCRICAO, DATA e FUNCIONARIO para as colunas da sua Table, de forma que ela fique parecida com a imagem abaixo:

Com isso, temos uma listagem simples dos dados da nossa tabela. Para criarmos os grupos, clique com o botão direito na linha de detalhe e escolha a opção Add Group -> Parent Group

Na janela que se abre, escolha o campo de agrupamento que, no nosso caso, é o campo DESCRICAO (atividade), já que esse é o primeiro grupo do relatório que estamos querendo fazer. Escolha também a opção para que o Report Viewer crie o Group Header para utilizarmos mais pra frente.

Ao executar essa operação, o Report Viewer cria uma coluna para identificar o agrupamento. Como não precisamos dessa coluna de acordo com o layout que estamos querendo, podemos deletá-la, clicando com o botão direito e escolhendo a opção Delete Columns e Delete Columns Only na caixa de diálogo.

Faça exatamente o mesmo procedimento acima para incluir o segundo grupo, só que agora escolhendo o campo DATA.

Pronto! Com os grupos prontos, basta você customizar a formatação da sua Table para que ela fique parecida com a imagem abaixo (lembrando que o propósito deste artigo não é deixarmos o relatório bonito, mas sim, mostrar como podemos agrupar uma Table de forma simples como você estava acostumado nas versões anteriores):

Para testar o relatório, basta incluir um Form no seu projeto, arrastar da sua ToolBox o componente ReportViewer e escolher o relatório que acabamos de criar. E o resultado vai ser parecido com o que mostramos no início do artigo.

É isso… Conseguiram entender? Se o artigo não foi suficiente, não tem problema! Abaixo segue um vídeo mostrando passo-a-passo como você consegue obter o mesmo resultado. Aí não tem erro! =)

[Observação: para assistir o vídeo em uma qualidade melhor, clique no botão HD do Media Player abaixo]

Por hoje é só. Espero que vocês tenham conseguido entender como podemos fazer o bom e velho agrupamento simples das versões anteriores no Report Viewer do Visual Studio 2010.

Qualquer coisa é só deixar um comentário no post. Até a próxima!

André Alves de Lima.

Esse post foi publicado em Report Viewer. Bookmark o link permanente.

26 respostas para Agrupamentos Simples no Report Viewer do VS 2010

  1. Henry Charriere disse:

    Show parabéns, simples e rápido!!

  2. Jonas disse:

    Boa Noite André……
    Muito bom o artigo, esta ajudando muito. Vc sabe me dizer se tem como adicionar 2 dataset e consumir no mesmo relatorio, tipo DS_Cliente(dados cliente) e DS_Produto(vários produtos da compra)???
    Obrigado….
    Att,
    Jonas

  3. Gil Silva disse:

    Cara, muito bom! Parabens! Como eu faço pra fazer um relatorio com etiquetas em duas colunas? pode me ajudar? Obrigado!

  4. Muito interessante. Entretanto, para web, alguns elementos a mais devem ser inseridos:ScripManager e fazer a referencia ao Microsoft. Reporting. Teno um Relatório que envolve duas tabelas que não possuem relacionamentos. Na primeira tenho um campo Flag para identificar que tipo de material compõe o orçamento. Flag pode ser igual a 1,2 ou 3. Tenho que totalizar para cada conjunto de materiais agrupados pelo flag. O mais dificil: para o grupo 1 tenho que multiplicar o somatorio dos subtotais (Qtdade x Preço) por um campo que está na tabela 2.
    Estrutura
    CodMat Und Qtdade Punit Subtotal
    Sum(SubTotal)1
    (p/flag 1) LS Valor do campo da tabela 2 =Val
    Val x Sum(SubTotal)1
    Total ( Val x Sum(SubTotal1) + Sum(SubTotal)1)

    (p/flag 2 ou 3) Sum(SubTotal)2ou3

    Total Geral = Sum(SubTotal)1 + Sum(SubTotal)2 + Sum(SubTotal)3
    Dá pra fazer?

  5. Daniel Coutinho Borgo disse:

    André, o video é muito bom, me ajudou bastante a montar um relatório, porem, estou fazendo um relatório no qual tive que fazer um grupo de colunas. Só que quando adiciono as linhas ele pula uma linha nas colunas pra cada dado.
    Sabe como posso resolver?
    Existe algum lugar pra que possa postar um print?
    Ex:

    Frutas Carnes Legumes
    1
    2
    1
    2
    1
    2
    3

    Como monto uma estrutura para este tipo?

  6. Vinicius disse:

    Muito bom MESMO!
    Parabêns pelo artigo André, claro, rapido e objetivo.

  7. Alvaro VDL disse:

    Execelente, Parabêns André, procurei muito tempo até achar a solução!

  8. Junior disse:

    Andre, estou tentando fazer algo bem simples, tenho os dados matricula,nome,serie, grau
    quero agrupar por serie e grau, estou tentando primeiro agrupar por série fiz como vc falou acima sendo que queria que ele quebrasse e ele simplesmente não está fazendo isso, e qdo tento deletar as colunas como vc fez ele não me pergunta se desejo deletar a coluna ou o agrupamento ele simplesmente deleta a coluna.

  9. Parabéns, vídeo muito bom. Simples e objetivo. Assim como ajudou-me vai ajudar muita gente.

  10. Vagner Santos disse:

    Parabéns pelo tutorial.
    Simples , claro e sucinto. Perfeito!!
    Obrigado pela ajuda

  11. W a n d e r s o n disse:

    Parabéns André. Just perfect.

  12. Matheus disse:

    Tem como somar os valores distintos que vem de um DataSet usando o Expression no reportviewer?

    EX:
    item Valor
    A 100
    B 200
    C 300
    D 400
    A 100
    B 200
    C 300
    D 400
    Soma = 1000 (somando somente os valores cujo item nao repete)

    o que eu consigo é:
    =FormatCurrency(Sum(Fields!Valor.Value)) Soma = R$ 2.000,00

  13. Paulo César disse:

    Muito bom André, parabéns..
    Estou com um probleminha com relação ReportView, talvez possa me ajudar.
    Estou criando um relatório, usando como base de dados um arquivo xml.
    só que não estou conseguindo totalizar valores de algumas colunas
    colunas do tipos de dados decimal e date..
    sempre que crio uma expressão, com a função sum, ela me retorna erro.
    valeu pelo vídeo André…

    • Olá Paulo,
      Desculpe não ter respondido seu comentário, é que eu não publico mais nesse endereço, mas sim no novo endereço http://www.andrealveslima.com.br … Dê uma olhada lá caso queira conferir novos artigos..
      Quanto ao seu problema, você já deve ter resolvido.. Inclusive, seria legal postar qual foi a solução, caso você se lembre.. Dessa forma outras pessoas que passarem por esse mesmo problema podem se beneficiar no futuro..
      André Lima

  14. Mauricio Bogossian disse:

    Parabéns André, muito bom, você da aula ? Gostaria de me aprofundar no assunto.

    • Olá Mauricio,
      Obrigado pelo comentário! No momento não estou dando aulas, mas, estou planejando produzir um curso (vídeo-aulas) sobre Report Viewer/Reporting Services. Ainda está no papel, mas, se tudo der certo, pretendo lançá-lo ainda este ano…
      Ah, e desculpe ter demorado para responder seu comentário… É que eu não escrevo mais artigos neste endereço… Já faz um tempo que mudei para o endereço http://www.andrealveslima.com.br … Todos os posts deste blog foram migrados para lá, portanto, caso queira conferir novos conteúdos, inscreva-se lá…
      André Lima

  15. Leonardo Souza disse:

    Olá Andre!
    Venho pedir uma ajuda.
    Gostaria de saber como eu uso report viewer com mais de um relatorio e como fazer relatorio agrupado com paginas separadas.

    Te agradeço desde já.

    • Olá Leonardo,
      Obrigado pelo comentário!
      Desculpe pela demora, mas, é que este endereço foi desativado.. Para acessar o site atual, por favor visite http://www.andrealveslima.com.br ..
      Quanto à sua dúvida, não consegui entender.. Caso ainda esteja com essa dificuldade, envie um e-mail para contato [arroba] andrealveslima [ponto] com [ponto] br..
      Abraço!
      André Lima

Deixe um comentário