Geração de gráficos no Reporting Services 2008 R2

Fala galera, desde a versão 2008 (não somente a 2008 R2) os gráficos da Dundas estão integrados ao Reporting Services. E o melhor, você pode utilizar o Reporting Services também na versão Express do SQL Server. Isso significa que você pode fazer seus relatórios ricos, com mapas, graficos, contadores, etc e não precisa pagar por isso! Acredite, vale muito a pena.

Para mostrar o como é facil criar um gráfico no Reporting Services vou criar um database, duas tabelas e alguns registros. Vou fazer uma busca simples juntando informações destas duas tabelas e montar o gráfico.

Veja esse script, ele faz esse trabalho de criação da massa de dados para nós.

 

— Cria o Banco de Dados

 

CREATE DATABASE dbGrafico

 

GO

 

 

— Usa o Banco de Dados

 

use dbGrafico

 

GO

 

 

— Cria a tabela de Área de Connhecimento

 

CREATE TABLE tbAreaConhecimento

 

(codigoAreaConhecimento int identity(1,1) primary key

 

,nomeAreaConhecimento varchar(30))

 

GO

 

 

— Insere algumas Áreas de Conhecimento

 

insert into tbAreaConhecimento(nomeAreaConhecimento)

 

values (‘Desenvolvimento de Software’)

 

GO

 

 

insert into tbAreaConhecimento(nomeAreaConhecimento)

 

values (‘Inteligência Artificial’)

 

GO

 

 

insert into tbAreaConhecimento(nomeAreaConhecimento)

 

values (‘Banco de Dados’)

 

GO

 

 

insert into tbAreaConhecimento(nomeAreaConhecimento)

 

values (‘Infra-Estrutura’)

 

 

— Cria a tabela de Pesquisa

 

CREATE TABLE tbPesquisa

 

(codigo int identity(1,1) primary key

 

,nome varchar(5)

 

,codigoAreaConhecimento int)

 

GO

 

 

ALTER TABLE tbPesquisa

 

ADD CONSTRAINT fkAreaConhecimento FOREIGN KEY (codigoAreaConhecimento) REFERENCES tbAreaConhecimento(codigoAreaConhecimento)

 

GO

 

 

— Insere algumas Áreas de Conhecimento

 

insert into tbPesquisa(nome, codigoAreaConhecimento)

 

values (‘aaaaa’,1)

 

GO 10

 

 

insert into tbPesquisa(nome, codigoAreaConhecimento)

 

values (‘bbbbb’,2)

 

GO 5

 

 

insert into tbPesquisa(nome, codigoAreaConhecimento)

 

values (‘ccccc’,3)

 

GO 8

 

 

insert into tbPesquisa(nome, codigoAreaConhecimento)

 

values (‘ddddd’,4)

 

GO 6

 

 

— Select para juntar as Áreas de Conhecimento e Pesquisas

 

select A.nomeAreaConhecimento, COUNT(0) [Total]

 

from tbPesquisa P inner join tbAreaConhecimento A

 

       on p.codigoAreaConhecimento = a.codigoAreaConhecimento

 

group by A.nomeAreaConhecimento

 

order by A.nomeAreaConhecimento

Depois de criada a massa de dados, vou entender que todos já sabem criar um relatório em branco (vamos abrir o BIDS – Business Intelligence Development Studio – e criar um projeto do tipo Report Server. AdicionR um novo item de relatório (Report) na pasta Reports da Solution Explorer).

image Reparem que na toolbox do relatório, tem o componente de Gráfico (Chart). É ele que será utilizado para montar os gráficos nativamente no SQL Server 2008 R2. Simplesmente arrastando o componente para a área do relatório, um wizard se abre e permite a escolha do tipo de relatório (modelo de apresentação, e também a configuração de DataSource (banco de dados de origem) e de DataSet (tabela e dados para plotar o gráfico) sejam realizadas.

A primeira escolha é do tipo de gráfico que deseja apresentar as informações. Para graficos de barras eu gosto muito de utilizar estes cilindros em 3D, visualmente ficam bem apresentados.

image

Depois do gráfico selecionado, temos que informar o DataSource e o DataSet. No DataSource você informa onde será o Banco de Dados de origem dos seus dados, já no DataSet você informará a consulta que retornará os dados. Repare que esta consulta é uma consulta ad-hoc, mas eu poderia ter utilizado uma Stored Procedure sem problemas. Esta consulta é o ultimo bloco do código T-SQL apresentado mais acima.

image

Depois de confirmadas as informações clicando no OK. Um gráfico é plotado no relatório. Reparem que o gráfico não representa a realidade dos dados. Não representa, porque não está fazendo nenhuma busca no banco de dados ainda, ele está somente mostrando como ficariam os dados plotados.

Geralmente eu faço algumas modificações no relatório para melhorar a visualização da informação. Fique a vontade para fazer as suas. O que eu sempre faço é:

  • Aumentar o tamanho do gráfico;
  • Colocar um título;
  • Remover os “Axis Titles”;
    • Informar quais são os dados pertencem a cada eixo do gráfico; [1]
    • Alterar o ângulo de inclinação do gráfico; [2]
    • Por ultimo, informo a “quantidade” também no cilindro. [3]
  • [1] –> Para alterar a visualização dos dados, clique no gráfico e vá até o lado direito. A sessão Chart Data ficou visível. Na primeira caixa – Values – clique no ícone image  e informe quais serão os dados a serem projetados como valores (eixo Y). Eu informei Total. Na segunda caixa – Category Groups – eu eliminei o ítem que estava informado. Fiz isso para melhorar visualmente, esta informação fica plotada no Eixo X do gráfico. Já na terceira caixa – Series Groups – eu informei o nomeAreaConhecimento que será utilizado para cada um dos ítens do gráfico. Cada uma das cores que estiver plotada no gráfico representa um ítem desta caixa.

[2] –> Clique em algum dos cilindros com o botão direito e vá até a opção 3D Effects. Já na primeira aba 3D Options você pode visualizar Rotação e Inclinação. Geralmente vem com 30, eu sempre mudo para 10.

[3] –> Clique em algum dos cilindros com o botão direito e vá até a opção Show Data Labels.

Para visualizar o gráfico com os dados reais que você tem em seu gráfico, clique no botão image logo em cima do relatório.

Se você aplicou as mesmas configurações que eu, seu gráfico passou por essa transformação e ficou assim:

image

Sobre Diego Nogare 347 Artigos
Diego Nogare é Gerente Técnico de Engenharia de Machine Learning no Itaú-Unibanco. Também é professor em programas de pós graduação no Mackenzie e na FIAP, em São Paulo. Foi nomeado como Microsoft MVP por 11 anos seguidos, e hoje faz parte do programa Microsoft Regional Director.