Grupos no SSRS (SQL Server Reporting Services)

Uma duvida que vejo bastante em foruns e nos emails com duvidas que recebo sobre SSRS (SQL Server Reporting
Services) é em relação a agrupamento, ok, porem, o que é agrupamento…?

Sabe quando uma linha se repete varias vezes, sendo o topo maximo de uma hierarquia, e as diferencas da linha estão em niveis mais baixo, como por exemplo: Estado e cidade, teriamos algo assim…

SP São Paulo
SP Campinas
SP …
RJ …
RJ …

Ou seja, podemos observar que o estado esta aparecendo varias vezes!, o que obviamente fica bem feio, e ruim de ser lido em um relatorio, portanto, a tecnica de agrupamento não só é extremamente pratica e simples de ser aplicada, como em muito casos, simbolo de boa pratica e higienização visual em seu relatorio.

Como curiosidade, ao criarmos um grupo, estamos falando de hierarquia, a mesma que pode ser feita no SSAS (Que sera assunto de posts futuros…).

Abaixo, segue uma breve explicação de como se criar estes grupos (Hierarquias no SQL Server Reporting Services).

OBS: Estou utilizando BIDS 2008, com SQL Server 2008, e uma base chamada AdventureWorksLT, é basicamente a base AdventureWorks que ja conhecemos bem, porem em sua versão Lite, sendo mais leve, e com menos tabelas.
A tabela que utilizarei como exemplo, se chama Product, que contem informações dos produtos que são vendidos na famosa loja de bicicletas.

Passo 1: Criar a conexão com a base de dados e um novo relatorio

Neste passo, não tem segredo, se iniciarmos o BIDS no modo de contrutor de relatorio, muito provavelmente ja ira te saltar uma opção Wizard para informar uma conexão e um relatorio, como o foco deste post não é o desenvolvimento inicial de relatorios, irei abstrair este passo, qualquer duvida no mesmo, fique a vontade para me mandar email ou perguntar nos comentarios.

Passo 2: O Objeto

O objeto que utilizaremos para se criar os grupos se chama Tablix, basta arrastar da caixa de ferramenta, um deste objeto para seu relatorio.

Passo 3: Criação de um DataSet com o SELECT no banco de dados

Aqui, basta criar um novo DataSet, utilizando a conexão previamente criada, e escrever seu SELECT, no meu exemplo, estou utilizando:

SELECT ProductCategoryID, Name
FROM SalesLT.Product
WHERE ProductCategoryID IN (9, 10)

O filtro, é apenas para ficar visualmente mais limpo, tendo em vista que o ponto do post não é a analise de dados, e sim o agrupamento dos mesmos.

Feito isso, fica bem simples o agrupamento, abaixo de seu relatorio, deve ter os campos:
– Grupos de linhas
– Grupos de colunas

Como temos os dados no formato exemplificado acima, e queremos deixa-lo…

SP São Paulo
Campinas
RJ …

Iremos utilizar o agrupamento de linhas.

Então, basta voce selecionar o campo mais alto de sua hierarquia, que no nosso caso é o ProductCategoryId, e arrasta-lo para o grupo de linhas, e em seguida, ir descendo o nivel de sua hierarquia, portanto, arrastando tambem, o campo Name, como na imagem abaixo:

Com o intuito de melhor visualização e como não temos nenhum outro dados, estou setando a ultima coluna com visibilidade oculta, aqui, seria interessante colocar por exemplo, o total, um grafico por linha e afins, as possibilidades são infinitas.

Então, teriamos uma visualisação mais ou menos assim:

Anúncios
Post a comment or leave a trackback: Trackback URL.

Comentários

  • Felipe  On 11/07/2012 at 16:39

    Fabrizzio, é possivel criar colunas dinamicas no reporting services… exemplo… o usuário escolhe as colunas que ele deseja visualizar em momento de execução….

    Obrigado

    • fabrizziocaputo  On 02/08/2012 at 20:12

      Felipe, boa noite!

      Primeiramente desculpe a demora em responder.
      Quando a sua duvida, sim, voce pode fazer isso, pode criar uma lista de parametros multivalorado e então controlar a visibilidade de cada coluna dependendo deste parametro.

      A unica restrição quanto a este formato serão seus dados, caso diferentes parametros mudem a tabela, por exemplo querer ver a tabela X que tem o nome da base de dados e seu tamanho em GB ou MB, voce podera criar 2 selects diferentes e controlar a visibilidade da tabela inteira conforme o parametro (Ou então no exemplo, apenas não excluir a possibilidade, tratar com IIF´s e expressões no proprio campo expression da tabela).

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: