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. Parceiros: