Desenvolvimento - C#
Criando Relatório utilizando Crystal Reports e C#
Neste tópico estarei abordando a criação de relatórios utilizando o Crystal Report e C#.
por Flavio Goncalves AraujoO primeiro passo é criar uma solução em branco, chamada "SlnReport".Depois inclua um Projeto "Asp.Net Web Application". Renomeie seu WebForm para "ReportViewPage.aspx".
1º. Passo criar solução em branco
Figura 1.1 - pasta figuras/ CriandoRelatorioCrytalReports
2º. Passo Criando o componente CrystalReportViewer
Após selecionar a solução do projeto , arraste o Web Control "CrystalReportViewer" para o canto do formulário. É através deste controle que será exibido o relatório.
Figura 1.2 - pasta figuras/ CriandoRelatorioCrytalReports
3º. Passo criando a Conexão no relatório
Na aba "Server Explorer" arraste a tabela "Products", do Banco de Dados "NorthWind" (SqlServer), para dentro do formulário criando assim uma connection e um adapter.
Figura 1.3 - pasta figuras/ CriandoRelatorioCrytalReports
4º. Passo Gerando Dataset
Após criar a conexão gere um DataSet Tipado a partir deste adapter clicando com botão direito sobre ele, escolhendo a opção "Generate DataSet...", marque a tabela "Products" e clique "OK". Feito isso é criado uma classe "DataSet1" que herda de "DataSet", e um objeto já instanciado desta classe chamado de "DataSet11", que será o nosso DataSet tipado, fonte de dados para nosso relatório.
Figura 1.4 - pasta figuras/ CriandoRelatorioCrytalReports
5º. Passo: Adicionando um Crystal Report
Feito isso estarei começando o processo de criação do relatório. Adicione um CrystalReport chamado de "ProductsReport" clicando com o botão direito no projeto "ReportsExample", escolhendo a opção "Add New Item.".Aparecerá imediatamente a janela "Crystal Report Gallery".
Figura 1.5 - pasta figuras/ CriandoRelatorioCrytalReports
6º. Passo: Inserir a tabela Products como fonte de dados do relatório
Clique no botão "OK" para usar o Report Expert e escolher o Relatório padrão. Abrirá então a janela "Standard Report Expert". Na aba Data, selecione "ProjectData", "ADO.Net DataSets", "ReportsExample.DataSet1", "Products", e clique no botão "Insert Table". Depois de já selecionada a tabela com que vamos trabalhar , iremos escolher os campos.
Figura 1.6 - pasta figuras/ CriandoRelatorioCrytalReports
7º. Passo: Inserir campos da tabela Products
Na aba "Fields", adicione os campos "Product.ID", "ProductName", "UnitPrice", "UnitsInStock" na caixa "Fields to Display" e clique no botão "Next>>".
Na aba "Group" adicione o campo "ProductName", na caixa "Group By" para que os registros sejam agrupados pelo nome do produto. Na aba "Total" remova todos os campos que estiverem na caixa "Summarized Fields", clicando no botão "".Na ComboBox "SummaryType", escolha "count", para que seja contado total de produtos. Na aba "style" insira o título "ProductsReport", e escolha um estilo para o relatório e clique no botão "finish" para que seja finalizado o processo de criação do relatório de produtos.
Figura 1.7 - pasta figuras/ CriandoRelatorioCrytalReports
Após desenvolvido o relatório irei agora que torna-lo visível através do componente CrystalViewer, que foi adicionado ao form ReportViewPage.aspx. Para efetuar esta tarefa primeiro estarei populando o DataSet tipado DataSet11, através do método Fill() do objeto ProductsAdapter. Depois vou instanciar um objeto da classe ProductReport, que é a classe que representa abstração de do relatório, e definirei o DataSet11 como fonte de dados para o relatório através do método SetDataSource().
Feito isso irei conectar o relatório com viewer, isto é feito atribuindo a instancia da classe ProductReport a propriedade ReportSource do objeto CrystalReportViewer1, e invocando o método DataBind() da mesma.Seu código deve ficar parecido como o abaixo:
Codificar a inteligência de carregar o relatório.
private void Page_Load(object sender, System.EventArgs e) { //Popula o DataSet ProductsAdapter.Fill(dataSet11); //Instancia um objeto da classe que é a abstração do relatório ProductsReport rpt = new ProductsReport(); //Define a fonte de dados para o relatório rpt.SetDataSource(dataSet11); //Define qual será o relatório que o viewer irá exibir CrystalReportViewer1.ReportSource = rpt; //Conecta o viewer com o relatório CrystalReportViewer1.DataBind(); }
Figura 1.8 - pasta figuras/ CriandoRelatorioCrytalReports
Finalmente o relatório está pronto e esperando para ser melhorado por você.