Relatório com linhas “zebradas” no SSRS 2008 R2

Fala galera, quem nunca precisou fazer um relatório simples, mostrando apenas algumas informações em forma de lista? Isso é mais comum do que se imagina, vários cliente que eu passo utilizam esta forma de relatório para mostrar as informações necessárias. Enfim, vou mostrar um exemplo de como fazer um desses relatórios em formato de matriz (linha e coluna), e como “zebrar” o resultado (deixar uma linha de cada cor).

Como nos ultimos posts, vou partir da idéia que você já sabe criar o Shared Data Source e o Shared Dataset. Mas caso não saiba fazer isso, leia esse artigo: Shared Data Source e Shared Dataset no Reporting Services 2008 R2

Para fazer o exemplo, crio uma procedure no banco AdventureWorks que me retorna todos os funcionários da empresa. Veja o código abaixo:

 

   1:  CREATE PROC RetornarEmpregados
   2:  AS
   3:  SELECT D.Name [Depto]
   4:       , C.FirstName + ' ' + C.LastName [Nome]
   5:       , C.EmailAddress [eMail]
   6:       , CONVERT(DATE,HD.StartDate) [DataInicio]
   7:  FROM Person.Contact C
   8:    RIGHT JOIN HumanResources.Employee E
   9:      ON E.ContactID = C.ContactID   
  10:    LEFT JOIN HumanResources.EmployeeDepartmentHistory HD
  11:      ON E.EmployeeID = HD.EmployeeID   
  12:    INNER JOIN HumanResources.Department D
  13:      ON D.DepartmentID = HD.DepartmentID
  14:  WHERE HD.EndDate IS NULL
  15:  ORDER BY D.Name, C.FirstName + ' ' + C.LastName

O resultado dessa procedure, é um rowset de 290 linhas.

image

Pronto, agora é criar um relatório que vai utilizar essa PROC. Vamos colocar a mão na massa.

Depois de criar o Data Source, o Dataset e o relatório em branco, vamos selecionar o item Table na toolbox e trazer para dentro do relatório.

image

Como já de costume, aparece o wizard para você informar qual é o Dataset que será utilizado para popular as informações deste relatório. Selecione o que você criou e clique em Ok.

Onde você arrastou a Table, vai aparecer o controle vazio, como esse abaixo:

image

Pare o mouse sobre uma das colunas e dê um clique. Uma lista suspensa será mostrada, no qual você pode escolher qual item do Dataset você quer colocar naquela coluna.

image

Faça isso para todas as colunas que você deseja inserir no relatório.

É possível alterar o nome da coluna, para isso, clique sobre o ítem que está na linha escrita Header (Cabeçalho) e informe o texto que desejar. Vejam como deixei a minha Table:

image

Para visualizar seus dados retornados, clique no botão Preview logo em cima do relatório.

image

Reparem que o relatório está sem formatação. Todas as informações estão chapadas em branco e preto.

Vamos fazer algumas modificações para deixar o relatório mais atrativo para nosso olhos.

Primeira coisa é alterar o fundo do cabeçalho, para isso, vá até a Table e clique na coluna da esquerdo da linha do Header.

image

Após ela ficar selecionada, vá até o item de Background Color e selecione a de sua preferencia.

image

Outra coisa que você pode fazer, é alterar o tamanho das colunas. Para isso, clique na Table e vá até a linha divisória das colunas na primeira linha.

image

Bom, depois de formatar da forma que é melhor para seu relatório, vamos criar o efeito “zebra” no resultado.

Seguindo a mesma logica de colorir o cabeçalho, vamos selecionar a linha que queremos colorir, e vamos até o item Background Color.

image

image

Lembrem-se que, ao invez de escolher a cor propriamente dita, nós queremos fazer linha sim e linha não colorida. Para isso, vamos usar uma expressão para nos ajudar.

No botão [fx] da caixa de seleção de cores, podemos inserir uma formula. É isso que vamos fazer.

image

Eu coloquei essa formula: =iif(RowNumber(Nothing) mod 2,"White","LemonChiffon")

Informando que a primeira linha do relatório é branca (White), e a segunda é um amarelo claro (LemonChiffon). Você pode selecionar outras cores a sua escolha.

Veja como ficou meu relatório:

image

Vocês viram que é uma formula simples para zebrar o relatório. Agora fiz uma outra formula simples para mudar a cor do texto em algumas linhas. A regra é, o Departamento que tem o nome de “Document Control” deve ter o texto em vermelho.

image

A formula colocada na cor do texto é essa:

=IIF( Fields!Depto.Value = "Document Control","Red","Black")

Divirtam-se com o Reporting Services e suas possibilidades Alegre

Comentários

Alexsandro Pereira
Alexsandro Pereira
8/6/2011 12:20:38 #

Muito legal sua dica cara, pena que não vou usar agora e quando precisar eu nem vou lembrar deste post. Triste.

Mas deixei este comentário como uma flag Laughing

Josafá Terra
Josafá Terra
23/7/2011 11:01:36 #

Excelente dica! Poderia avançar um pouco mais e blogar dicas mais heavy user para quem acompanha seu blog. Os posts são legais mas muito basicos.

Diego Nogare
Diego Nogare
24/7/2011 22:37:15 #

Oi Josafá, obrigado pelo comentário.
Escrevo sobre coisas mais simples/basicas com o intuito de ajudar mais pessoas. Um High User já consegue se virar sozinho.
Para eu escrever algo mais avançado, me dê sugestões de assuntos. Fale o que gostaria de ler aqui, que eu escrevo sobre Smile

Obrigado e Grande Abraço,
Diego Nogare

Comentar


(Vai mostrar seu Gravatar)

  Country flag

biuquote
  • Comentário
  • Pré-visualização
Loading




SQL Server

SQL Server



Codificando .Net

SQL PASS