Relatório em ASP.NET com Crystal Report
Autor: Rodrigo Lameira | Publicado: 2009-09-09T05:33:00-07:00

Crystal Report Viewer   Permite mostrar relatórios em sua aplicação, podendo ser utilizado tanto para  projetos Web quanto Windows Forms, quanto a distribuição o mesmo apresenta restrições. Agora será explorado alguns dos recursos do Crystal Report Viewer, neste tópico o exemplo que vai ser feito é o mesmo que foi utilizado com o MicrosoftReportView então criar uma página com o nome Exemplo02.aspx e adicionar na página o controle Crystal Report Viewer Figura 19. Uma das vantagens do Crystal Report Viewer é que o relatório pode ser exportado para Crystal Reports (RPT), Acrobat Format (PDF), MS Word, MS Excel 97-2000, MS Excel 97-2000 (Data Only) e Rich Text Format. Quanto a versão do Framework disponível para  .NET são 2.0, 3.0 and 3.5.  Figura 19: Crystal Report Viewer  Para configurar o layout do relatório é necessário adicionar um template no projeto como pode ser visto na Figura 20,  através do Item 1 é o nome do arquivo  Item 2 .  Figura 20: Template Crystal Report   Começando pelo Section  Report Header onde será adicionado uma imagem através do menu Crystal Reports / Insert / Picture selecione a imagem deseja e depois na janela Toobox selecione Text Object e arraste para o relatório, onde será o nosso título “Products” conforme a Figura 21.  Figura 21: Report Header com imagem e título  Para formatar o relatório o dataset tem que ser adicionado, na janela Filder Explorer com o botão direito clicar em Database Filds / DataBase Expert como pode ser visto na Figura 22, perceba que vai ser aberto a janela Database Expert de acordo com a Figura 23, para localizar o dataset clique em  Project Data / ADO.NET DataSets,  localize o dataset, depois selecione a tabela Products e clique na seta “>” para adicionar.    Figura 22: Adicionando o Typed DataSet    Figura 23: Localizando Typed DataSet e Adicionar no relatório  A Figura 24  mostra como adicionar os campos no relatório, clique em ProductName e depois em  UnitPrice e arraste para a Section Details depois clique com o botão direito na parte branca do relatório e selecione Insert / Summary vai ser aberta uma janela que se chama Insert Summary conforme exibido na Figura 25 e no Item 1 será escolhido o campo e no Item 2 escolher a opção sum que vai fazer a somatória do campo escolhido.   Figura 24: Colocando os campos que serão visualizados no relatório   Figura 25: Inserindo a somatória no relatório   E por fim o gráfico será a Figura 26 mostra como inserir no relatório o gráfico através do menu Crystal Reports / Insert / Chart onde vai ser aberto uma janela de acordo com a Figura 27,  na aba Type pode ser escolhido vários tipos de gráfico só que o tipo de gráfico escolhido é o Bar que é tradicional gráfico de barras. Na aba Data que significa “dados”, possibilita fazer a montagem do gráfico, ou seja, relacionar os produtos com os seu respectivos valores Figura 28 e para finalizar na aba Text permite personalizar a legenda que o gráfico vai mostrar.  Figura 26: Inserindo o gráfico Figura 27: Escolhendo o tipo de gráfico    Figura 28: Selecionando os dados do gráfico  A Listagem 2 mostra o code-behind da página Exemplo02.aspx onde é criado  a conexão com o banco, após ter a conexão é retornado as informações para serem carregadas no relatório, e por fim o objeto relatorio é adicionado ao controle CrystalReportViewer1.  Listagem 2  using System; using System.Data; using System.Data.SqlClient;   public partial class Exemplo02 : System.Web.UI.Page {       #region Object       //Cria uma instância do ReportClass     CrystalDecisions.CrystalReports.Engine.ReportClass relatorio = new CrystalDecisions.CrystalReports.Engine.ReportClass();       #endregion       #region Events Handles       protected void Page_Load(object sender, EventArgs e)     {         if (!IsPostBack)         {             CarregaRelatorio();         }     }       #endregion       #region Private Methods       private void CarregaRelatorio()     {         //Título da página         Page.Title = "Relatório";           //Conexão com o banco de dados         SqlConnection Con = null;         Con = new SqlConnection(@"Password=suasenha;Persist Security Info=True;User ID=seuusuario;Initial Catalog=Northwind;Data Source=DESENV\SQLEXPRESS");         Con.Open();         SqlCommand Cmd = Con.CreateCommand();         //Select que retorna 06 produtos         Cmd.CommandText = "Select top 6 * from Products ";         SqlDataAdapter Da = new SqlDataAdapter(Cmd);         DataTable dt = new DataTable();         Da.Fill(dt);         Con.Close();           //Local que está o relatório         relatorio.FileName = Server.MapPath("~/Reports/CrystalReportProducts.rpt");         //Define o DataDource do Relatório         relatorio.SetDataSource(dt);         //Visualiza o relatório         CrystalReportViewer1.ReportSource = relatorio;         CrystalReportViewer1.DataBind();     }       #endregion }     Figura 29: Mostra o relatório gerado pelo controle Crystal Reports Conclusão   A ferramenta discutida neste artigo é a principal utilizada no Visual Studio, e por esse motivo despertou o interesse em mostrar o que é possível fazer nela a nível de funcionalidades básicas.  O desafio era fazer um relatório que apresentasse as mesmas informações em ambos as ferramentas e esse objetivo foi feito com sucesso.  Neste artigo foi possível ver algumas vantagens e como implementar o relatório, dando um norte de qual ferramenta que melhor se adequa no projeto em execução.fonte: http://www.devmedia.com.br/articles/viewcomp.asp?comp=14104