Reporting Services – Montando alguns relatórios

Olá Pessoal,

Este é meu primeiro post sobre Reporting Services, seguindo a proposta inicial deste blog de documentar as minhas experiências do dia-a-dia, vou registrar neste post algumas etapas de um projeto que participei que tinha entre outras etapas a criação de alguns relatórios contendo a idéia de um Dashboard.

Este post é um pouco longo, mas muito útil para quem tem interesse na utilização do Reporting Services.

O ambiente utilizado foi baseado em um servidor contendo o SharePoint 2010 (utilizado como console central e administrativa dos relatórios) e o Reporting Services 2008 R2 integrado ao Sharepoint.

O SharePoint 2010 apresenta uma plataforma bem completa e robusta para portais, a integração com o Reporting Services apresenta algumas vantagens como:

  • Interface única e centralizada de acesso (o Sharepoint pode ser compartilhado como um portal para N aplicações)
  • Administração centralizada (via SharePoint é possível gerenciar permissões, Data Source, Modelos, Snapshot , entre outras coisas)
  • Armazenamento como biblioteca de documentos (via Sharepoint é possível fazer o controle de versão, utilizar workflows entre outras vantagens disponíveis através do uso de biblioteca de documentos)

Instalação do Ambiente

Primeiramente realizei a instalação do SQL Server 2008 R2 com a Feature de Reporting Services, em seguida realizei a configuração do reporting para trabalhar de modo integrado ao SharePoint, após isso, instalei o SharePoint 2010, para isso utilizei as seguintes referências:

Desenvolvimento dos relatórios

Após a instalação e configuração do ambiente iniciei o desenvolvimento dos relatórios, irei descrever resumidamente aqui alguns objetos e fórmulas que utilizei:

Data Bars

Em duas visões de status eu fiz o uso de Data Bars, este é um recurso novo disponível no R2 que é bastante útil, a figura abaixo apresenta o primeiro gráfico usando DataBars

image A idéia deste gráfico é com base em uma consulta que me traga os diferentes status eu apresentar o percentual de cada um sobre o total. Para isso, eu arrastei uma tabela realizei o calculo de percentual com base na soma dos diferentes tipos de status e gerei o campo % Availability. Feito isso eu arrastei o objeto DataBars e inseri na linha de detalhe na coluna a esquerda, como este objeto é um gráfico ele nos oferece a possibilidade de inserir mais de uma série, então inseri uma série para cada status em seguida configurei a cor de preenchimento de cada um (Verde, Branco,Cinza, Amarelo,etc)

Em outro relatório fiz o uso do Data Bar usando apenas uma série e exibindo o Label, conforme a figura a seguir:

image

O MSDN apresenta uma boa referência de introdução ao uso de Data Bars:   An Introduction to Data Bars in SQL Server Reporting Services 2008 R2

Same Size/Height

Ainda nesta tela tive um desafio interessante, pois uma coluna possuia valores de linha grandes que ultrapassavam o tamanho da coluna com isso o tamanho das linhas ficavam diferentes e o gráfico de Data Bars tinha a apresentação prejudicada, pois não ficava uniforme, procurei alguma solução para isso na internet, mas não existe uma propriedade equivalente ao Excel que configure as linhas para serem exibidas do mesmo tamanho (Embora você tenha uma propriedade para deixar a Matriz do mesmo tamanho de outra matriz), para contornar esta situação eu acabei colocando manualmente durante a criação da tabela um tamanho de linha maior e centralizei a exibição de altura ao centro, desta forma consegui que todas as linhas possuissem a mesma altura.

Indicadores

Também introduzido na versão 2008 R2 do Reporting Services oferece uma boa apresentação de KPIs, por exemplo, na figura a seguir temos a meta de disponibilidade por ítens.

image

Para a utilização dos indicadores após arrastar a tabela usada e e inserir o calculo do campo de disponibilidade conforme comentado anteriormente arrastei o objeto indicator e selecionei o tipo de indicador shape , logo após eu acessei as propriedades do indicador e configurei as regras de exibição conforme as figuras a seguir:

image image

Note que as regras são baseadas no valor da expressão utilizada para montar o campo SLA.  O Technet possui um artigo interessante para iniciar na utilização de indicadores no SSRS: Indicators (Report Builder 3.0 and SSRS)

Gráficos

Na versão 2008 a microsoft integrou componentes do Dundas melhorando a apresentação com novos padrões de cores. É muito comum quando incluimos um novo gráfico um padrão de cores já vir configurado com isso conforme as séries do nosso gráfico são exibidas as cores vão se alterando conforme o esquema escolhido, mas se quisermos alterar estas cores?  Muito simples podemos ir na propriedade da série e mudar o preenchimento ou podemos ainda alterar o esquema de cores, veja nas figuras a seguir:

image image

Mas e se eu quiser definir as cores de forma parametrizada conforme os dados? Podemos fazer isso usando as expressões, veja o exemplo a seguir:

image

No exemplo da figura acime eu insiro a cor conforme o valor do campo Type, com isso o gráfico exibe a cor que eu determinar para cada valor, veja o gráfico a seguir:

image

Outro sim, como exibir um valor inteiro em percentual no Label, para isso eu habilitei a exibição do label (Botão direito do mouse – Show Data Label) em seguida inseri na propriedade Label (dentro da seção Mis) o seguinte código: #PERCENT{P0}, ou seja este código parametriza o tipo de dado para exibição em percentual com 0 casas decimais.

Combinação de mais de um tipo de gráfico em um único objeto

Outra necessidade comum é a combinação de diferentes exibições em um único gráfico, ou seja no meu caso eu precisava exibir em um único gráfico a exibição de barras e linhas, em outras palavras eu tinha dois eixos de valores um contendo minha meta e o outro o dado atual, na versão 2005 tinhamos algo parecido com o Excel para “Plotar o gráfico”, mas no 2008 não temos esta opção, no entanto ficou muito mais simples, pois podemos clicar sobre o eixo de valor e definir o tipo de gráfico, veja a figura a seguir:

image

O MSDN oferece uma boa referência para você poder aproveitar melhor a utilização de gráficos no Reporting Services, acesse: Get More Out of SQL Server Reporting Services Charts

Gauges

Outro ótimo recurso presente na versão 2008 é a utilização de gauges, estes objetos fornece a possibilidade de apresentar KPIs, no meu caso eu utilizei um velocimetro para apresentar a medida de uma taxa de utilização, a utilização dos gauges também é bastante simples de ser implementada, basicamente basta arrastar o objeto e como nos gráficos inserir o valor a ser apresentado através do ponteiro do velocimetro, a sequencia de figuras a seguir apresenta a construção conforme acabei de citar e a apresentação final:

image

image

Além da configuração do ponteiro é possível configurar os valores da escala e cor do range, uma boa referência para o uso de gauges está disponivel no technet: Gauges (Report Builder 3.0 and SSRS)

Filtros

A utiliização de filtros em relatórios do Repoting services é relativamente simples, há opções de filtros de Dataset e de queryes este segundo oferece a interatividade com o usuário, em outras palavras fornece ao usuário a possibilidade de escolher os dados que ele quer exibir. Um requisito que é bastante comum é o filtro de todos os valores, por exemplo se fizermos um relatório que apresente dados de gastos por departamentos e inserirmos um filtro para departamento normalmente o usuário quer que seja exibido todos os gastos (filtro default) e a partir disso ele possa filtrar cada departamento, pois bem não irei apresentar aqui a solução para este problema para não ficar ainda mais longo este post, mas no artigo do Ryan Duclos Ten Common SQL Server Reporting Services Challenges and Solutions ele apresenta um caso bem parecido inclusive com o passo-a-passo da solução, aliás recomendo a leitura completa deste artigo para quem está iniciando em SSRS.

Performance

Ufa…estamos na ultima seção, espero que você tenha gostado da leitura até aqui.

Bom, tive em um dos relatórios uma query que executava lentamente (pouco mais de 1 minuto) e como se tratava de um produto eu teria que me virar em cima do T-SQL, pois não poderia alterar nada no banco (poxa um índice me ajudaria tanto…rs), como eu tinha esta limitação e já havia tentado diversos contornos em cima de T-SQL sem grandes sucessos resolvi utilizar a feature de cache do Reporting Services, pois 1 minuto em cima de uma consulta do ponto de vista de banco de dados não é tão ruim, mas do ponto de vista de relatórios um usuário esperando um minuto na frente da tela é tedioso, pois bem eu configurei o cache do relatório para ser renovado uma vez ao dia antes dos usuários iniciarem o consumo do relatório, ainda bem que os usuários não precisavam de dados atuais eu tinha a flexibilidade de d-1, para mais detalhes sobre o funcionamento do cache de relatórios acesse: Caching Reports (SSRS).

Bom, pessoal este foi meu primeiro post em Reporting Services espero e estou certo que será útil pra vocês.

Abraços e até a próxima!

Anúncios

3 Responses to “Reporting Services – Montando alguns relatórios”


  1. 1 Paulo 19/04/2011 às 10:55

    Olá! muito bom seu post, ja trabalho a 1 ano e meio com reporting service e gostaria de saber se existe algum padrão de documetação de projetos/.rdl do reporting service?

    Ótimo blog, parabéns!

    • 2 giulianocardoso 22/04/2011 às 14:48

      Olá Paulo,
      Que bom que você gostou do post e está gostando do Blog, continue comentando.
      Quanto a documentação de projetos /.rdl, logo quando comecei a trabalhar com construção de relatórios em Reporting Services procurei algo neste sentido, mas não encontrei. Com o tempo trabalhando você começa a criar alguns padrões em seus projetos que não chegam a ser uma documentação, mas sim um padrão de desenvolvimento.
      Para responder este seu post de forma mais consistente possível eu cheguei a procurar novamente algo disponível na internet, mas não encontrei, podemos aprimorar isso através de uma discussão aqui mesmo no blog se você estive disposto.

      []s
      Giuliano

  2. 3 nogueiralazaro@terra.com.br 05/02/2014 às 13:09

    É possível criar um relatório usando dois datasets diferentes. Eu tenho duas procs que me trazem a mesma informação porém com um condicional deferente para cada uma.


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 )

Foto do Google+

Você está comentando utilizando sua conta Google+. 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 )

Conectando a %s




Giuliano B. Cardoso,
Administrador de Empresas com Habilitação em Informática, atua em Tecnologia da Informação há mais de 10 anos, especialista em banco de dados SQL Server, atualmente atua como consultor em Business Intelligence e instrutor de cursos oficiais Microsoft.
Possuí as seguintes certificações: ITIL-F, MCP,MCDBA SQL 2000, MCTS SQL 2005/2008, MCITP SQL2005/2008 e MCT

Mais acessados

Anúncios

%d blogueiros gostam disto: