Desenvolvimento - Sistemas

Relatórios com Crystal Reports

Sempre que precisamos de uma ferramenta para relatórios já pensamos de cara no Crystal Reports, agora com o .NET isto ficou mais forte ainda porque a integração entre eles está muito mais forte do que em versões anteriores, até mesmo quando instalamos o .NET podemos instalar o Crystal Reports junto.

por Alexandre Tarifa



Sempre que precisamos de uma ferramenta para relatórios já pensamos de cara no Crystal Reports, agora com o .NET isto ficou mais forte ainda porque a integração entre eles está muito mais forte do que em versões anteriores, até mesmo quando instalamos o .NET podemos instalar o Crystal Reports junto.

Vamos demonstrar como montar e chamar um relatório através de uma aplicação Winforms.

Banco de Dados

Vamos utilizar as tabelas "Products" e "Categories" do Banco de Dados "Northwind" do Sql Server.

Projeto

Vamos iniciar um novo projeto no VS.NET selecione como linguagem Visual Basic.net e como aplicação uma "Windows Application".

Nosso relatório será conectado com o Banco de Dados através de um DataSet. Temos que criar um DataSet em nosso projeto para ligar posteriormente ao relatório. Para isso, clique com o botão direito no projeto dentro do Solution Explorer, Add, Add New Item. Selecione o item DataSet, renomeie para Products como mostra abaixo:

Nosso relatório será baseado sempre neste DataSet então podemos ligar ao nosso DataSet desde uma Tabela até uma Stored Procedure que será o nosso caso. Vamos criar uma Procedure como mostra abaixo:

Esta tarefa é bem simples, vá ao Server Explorer (Ctrl + Alt + S) e conecte no SQL Server.

Note que nosso Procedure "ProductsReport" está lá, simplesmente arraste a procedure para dentro do DataSet.

Agora vamos criar o relatório, clique com o botão direito no projeto dentro do Solution Explorer, Add, Add New Item. Selecione o item Crystal Reports e renomeie para rptProducts como mostra abaixo:

Uma tela de Wizzard se abrirá:

Vamos utilizar o Report Expert, que é uma ajuda que facilita na conexão com o DataSet e facilita muito a montagem do relatório, deixe também no modo Standard e clique em OK.

Nesta tela, fazemos a conexão entre o relatório e o DataSet do projeto, abra Project Data, ADO.NET DataSets e nosso DataSet Products e de um duplo clique na nossa Stored Procedure ProductReport e clique em next.

Vamos adicionar todas as colunas em Add All e clique em Next.

Agrupe o Código da categoria adicionando somente CategoryId e clique em Finish.

Nosso relatório é criado de forma bem simples sem um leiaute muito legal mas vamos utilizar este mesmo no nosso exemplo.

Nosso próximo passo é fazer com que nossa aplicação chame o formulário. No form1 adicione um botão chamado btRelatorio. No evento clique do botão vamos colocar o nosso código. Também temos que adicionar o CrystalReportViewer ,que é o controle que mostra o relatório, como o nome de crvRelatorio.

Código

A primeira coisa que devemos fazer é importar a Classe do SQL Server (Imports System.Data.SqlClient).

Declaramos as variáveis

Abrimos o Banco de Dados

Cria e passa as propriedades do Command

Carrega o DataSet e passa pelo SetDataSource para o relatório, que no final passa para o Controle Viewer como data source.

Pronto, agora você já pode criar relatórios no Crystal de acordo com as suas necessidades. Só como observação final, quando adicionamos o relatório no nosso projeto, todas as referencias necessárias são adicionadas ao projeto.

Para baixar o código fonte clique aqui.

Um abraço e até a próxima.
Alexandre Tarifa
www.codificando.net
atarifa@deloitte.com

Alexandre Tarifa

Alexandre Tarifa - Ministra palestras e treinamentos, MVP (Most Valuable Professional), MCAD (Microsoft Certified Application Developer) e MCT (Microsoft Certified Trainer). Bacharel pela UMESP e pós-graduando pela Universidade Federal de São Carlos em Ciência da Computação. Analista de Sistemas e Líder do grupo de usuários Codificando.net São Paulo (sp.codificando.net). Escreve artigos para a revista MSDN Magazine e para os sites Linha de Código, MSDN Brasil e Enterpriseguys.
Visite o blog do autor: http://weblogs.pontonetpt.com/alexandretarifa/.