Reporting Services no SQL Server 2008 R2 – Montando relatórios específicos

Fala galera, uma das coisas que foi necessário fazer internamente na NGR Solutions, era imprimir Notas Fiscais baseadas nos projetos que entregávamos. Em São Paulo (e algumas outras cidades) a emissão de Notas Fiscais é eletrônica, porém a NGR está sediada em Poá e a prefeitura da cidade não aceita notas eletrônicas, só são aceitas notas através do talão. Nossa sorte é que foi possível destacar as notas do talão e imprimir as informações. Com base nesse contexto de exemplo, pode ser facilmente adaptado à qualquer outra necessidade.

Para imprimir as informações da Nota Fiscal, vou me basear em uma procedure chamada “sps_NotaFiscal” que retorna todas as informações necessárias para o preenchimento da Nota. Estas informações vocês podem retornar de sua estrutura de dados normalizada.

Para entender esse modelo de nota fiscal de talão, veja a imagem abaixo. Nela as linhas em preto são as delimitações padrões de uma Nota Fiscal de serviços, os números que estão em verde é a distância da lateral esquerda até o campo que será impresso e os números em vermelho representam a distância entre o topo da página e o texto.

NF Modelo

Agora que já sabemos como é o modelo que será trabalhado, vamos abrir o SQL Server Reporting Services e o SQL Server 2008 R2 para coletar os dados e montar o layout que será impresso.

imageDepois de criar um projeto no BIDS (Business Intelligence Development Studio) e montar a estrutura simples conectando no nosso Banco de Dados e apontando para a procedure criada que retorna os dados necessários.

Se precisar de ajuda para criar seu Shared Data Source e seu Shared Datasets, leia Criando seu primeiro relatório. Vou entender que estamos com esta estrutura criada, ok?!

Neste exemplo, o Data Source aponta para o Banco de Dados e o Data Set aponta para a procedure “sps_NotaFiscal” que faz a busca na base de dados e retorna as informações necessárias para a montagem da Nota.

imageVamos adicionar um relatório chamado “NF_Talao” e especificar que os dados que serão consultados está no NotaFiscal.rsd (DataSet). Para isso é necessário selecionar os campos que retornam do DataSet, encontrando estes campos no Report Data. Caso não esteja visualizando a sessão Report Data, clique em qualquer parte do corpo do relatório, vá até o menu View e procure o ítem Report Data. Ou utilize o atalho Ctrl+Alt+D.

imageimageAgora que a sessão está aberta (figura da esquerda), será adicionado o DataSet que retorna os dados. Para isso, vá até o ítem Datasets do Report Data, clique com o botão direito e vá para Add Dataset. Quando a tela de selecionar o DataSet abrir, selecione o DataSet já criado anteriormente e mude o campo Name para NotaFiscal. Este nome será mostrado dentro da pasta DataSet do Report Data (figura da direita).

Repare que os campos da sua nota fiscal estão apresentados dentro do DataSet criado. Estes campos serão arrastados para dentro do relatório, em seus devidos lugares. image

O layout que será utilizado é o apresentado no início, reparem que no modelo temos números em verde e vermelho escritos à mão. Estes números são as distâncias entre a borda e topo do campo. Vamos arrastar o campo DataEmissao do Dataset para dentro do relatório, e em seguida, ajustar a posição correta. Lembrando que o número em vermelho é a distância do topo (Top) e a verde é a distância da esquerda (Left). Esta configuração deve ser feita em todos os campos do Dataset.

Após colocar todos campos no relatório, e organizar a localização (distâncias da lateral e topo), seu relatório terá uma aparëncia como esta abaixo.

image

Para testar o relatório, execute apertando F5. Se tudo estiver correto, seu relatório será semelhante a este abaixo:

image

Se imprimir este relatório em uma Nota Fiscal do talão, o relatório será como este abaixo:

NF Final

Ocasionalmente, um ajuste ou outro poderá ocorrer em cima da impressão realizada, este período de desenvolvimento e testes é exatamente para encontrar esses detalhes e consertar.

Montar relatórios com o SQL Server Reporting Services é extremamente simples, alguém discorda?! rss

Sobre Diego Nogare 350 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.