Ferramentas para relatórios no ASP.NET

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (3)  (0)

Este artigo tem o objetivo de mostrar algumas das ferramentas que são usadas na construção de relatórios em ASP.Net os quais são utilizados com bastante freqüência pelos desenvolvedores, e nada melhor que mostrar exemplos das funcionalidades básicas e vantagens que cada uma pode oferecer na hora da escolha.

Este artigo tem o objetivo de mostrar algumas das ferramentas que são usadas na construção de relatórios em ASP.Net os quais são utilizados com bastante freqüência pelos desenvolvedores, e nada melhor que mostrar exemplos das funcionalidades básicas e vantagens que cada uma pode oferecer na hora da escolha.

Auxilia na visualização de informações que estão armazenadas em fonte de dados diversas, sendo esses relatórios integrados nas páginas web ou aplicativos Windows forms, que nos possibilita exibir informações de maneira em que os dados fiquem bem organizados e formatados.

No dia-a-dia dos desenvolvedores, analistas, gerente de projetos, arquitetos dentre outros, os quais precisam tomar decisões de qual ferramenta, que melhor vai atender as necessidades do projeto. Por isso, é interessante saber se o que estamos utilizando vai atender. Sendo também uma maneira bem ágil para mostrar as informações ao usuário do sistema, que sempre estão em busca de relatórios para as tomadas de decisões na empresa.

As ferramentas que serão abordadas são: o MicrosoftReportViewer e o CrystalReportViewer que já vem no Visual Studio. No entanto serão feitos exemplos das principais funcionalidades dessas ferramentas, nos dando uma visão de qual ferramenta se adéqua ao nosso projeto.

O banco de dados que nos dará suporte será o Northwind que pode ser baixado através do link Clique aqui. Após fazer o download do banco restaure no SQL Server Management Studio Express que pode ser baixado aqui. Quanto a IDE para desenvolvimento dos exemplos o Visual Studio 2008 no link aqui.

Microsoft Report Viewer

É um Package que permite mostrar relatórios em sua aplicação, o mesmo apresenta em duas versões tanto para Web para projetos ASP.Net, quanto para Windows Forms para aplicações Windows, que são voltados para a visualização de relatórios que podem ser baixados tanto para o .NET Framework version 2.0 quanto para o .NET Framework version 3.5. O Report View não apresenta qualquer restrição quanto a distribuição de um projeto em .Net.

Vamos mostrar nesse momento como criar um relatório através desse controle, primeiro abrir o Visual Studio em Iniciar /Programas /Microsoft Visual Studio 2008. Depois criar um novo WebSite em File /New /WebSite a Figura 1 mostra a fase inicial de como construir o relatório, perceba que o Item 1 representa o template do projeto que vai ser do tipo ASP.NET Web Site e o Item 2 é o Location que pode ser selecionado como File System onde possibilita que o sistema seja salvo em um diretório da escolha do desenvolvedor, nesse caso foi salvo em C:\Report conforme o Item 3 e por fim o Item 4 é em qual linguagem que vai ser desenvolvido o WebSite que é Visual C#.

Figura 1: Novo Web Site

Vamos organizar o nosso projeto criando uma pasta chamada de Forms que vai guardar páginas Web , a pasta Reports os relatórios e a pasta Images as imagens, na aba Solution Explorer com o botão direito clicar no projeto e selecionar New Folder com isso as pastas são criadas.

Em cima da pasta Forms com o botão direito selecione Add New Item Figura 2, será mostrada uma tela, Figura 3, onde será selecionado o Templates do tipo WebForm que é uma página web Item 1 e o nome da página é Exemplo01.aspx   Item 2.

Ferramentas para relatórios no ASP.NET

Figura 2: Adicionando uma nova página

 Ferramentas para relatórios no ASP.NET Figura 3: Escolhendo o template We Form

A página será criada e nesse momento será adicionado o controle MicrosoftReportViewer  , mas antes para mostrar o Design da página clique em Design Figura 4. Pronto agora vamos arrastar e soltar o controle na página, que está na janela ToolBox Figura 5.

Ferramentas para relatórios no ASP.NET

Figura 4: Mostra o Design na página.

Ferramentas para relatórios no ASP.NET

Figura 5: Janela ToolBox

É necessário criado um Typed DataSet que é um arquivo .xsd e representa um Schema XML que é um documento XML onde é definido as propriedades e métodos que tem o mesmo schema (colunas, tipos de dados) da tabela que é utilizado no database Northwind. No entanto não entraremos em detalhes quanto aos métodos de Insert, Update e Delete do DataTable.

Para adicionar no Solution Explorer o dataset clique no projeto com o botão direito e selecione Add New Item, como você pode conferir na Figura 6, onde será selecionado o template DataSet   Item 1 e o nome do arquivo é NorthwindProducts.xsd  Item 2.

Ferramentas para relatórios no ASP.NET

Figura 6: Escolhendo o template DataSet

Um forma de manipular o DataSet é utilizando o Editor para criar e modificar graficamente um arquivo XSD. Para isso clique no DataSet com o botão direito e clique em Open With, conforme mostra a Figura 7 e 8.

Ferramentas para relatórios no ASP.NET

Figura 7: Escolhendo o template DataSet

Ferramentas para relatórios no ASP.NET

Figura 8: Escolhendo o programa o qual será aberto o arquivo

 

Uma das formas bem rápida se criar o dataset é pela Janela do Server Explorer que possibilita criar a conexão com o banco Northwind, depois de criada a conexão, clicar na tabela Products e arrastar para o DataSet Desinger, como mostra a Figura 9.

Ferramentas para relatórios no ASP.NET

Figura 9: DataSet Designer

 

Na aplicação web falta adicionar e formatar o relatório, com o botão direito na pasta Report add new item a Figura 10 mostra o Item1 que é o template Report e o nome do relatório é ReportProducts.rdlc conforme Item 2. Dessa forma o processamento é local no computador que hospeda aplicação é quem se encarrega de processar.

Ferramentas para relatórios no ASP.NET

Figura 10: Template Report Wizard

Primeiramente vamos habilitar o Page Header no menu Report / Page Header do relatório, que vai conter uma imagem e o título, mas antes é necessário informar as imagens que vão ser vinculadas ao relatório, através do menu Report / Embedded Images   como mostra a Figura 11. Como você pode ver a Figura 12 mostra através do Item 1 como adicionar o objeto Image clicando e arrastando para o Page Header do relatório, no Item 2 o source será selecionado para a opção Embedded que é forma que foi feita anteriormente onde vincula as imagens e em value as imagens que foram vinculadas, vão aparecer. Arraste também um textbox onde será colocado o título do relatório que é “Products”.

Ferramentas para relatórios no ASP.NET

Figura 11: Importando as imagens para o relatório.

Ferramentas para relatórios no ASP.NET Figura 12: Adicionando o objeto imagem e configurando    Ferramentas para relatórios no ASP.NET

Figura 13: Formatando o relatório

A janela toolbox permitirá definir um layout para o relatório, que vai conter duas Data Regions a Table e o Chart que são vinculadas a fonte de dados como você pode ver na Figura 13.   A Figura 14 mostra a janela WebSite Data Sources com o dataset que foi disponibilizado, nesse momento clique e arraste no campo ProductName e UnitPrice para a Table conforme mostra o Item 1 e 2. Acabamos de definir duas colunas no relatório que é o nome do produto e o preço. Para fazer à somatória do preço dos produtos é feita através da fórmula =Sum(Fields!UnitPrice.Value) que faz a somatória do campo UnitPrice o Item 3 mostra com detalhes.   Ferramentas para relatórios no ASP.NET

Figura 14: Colocando os campos que serão visualizados no relatório

Quanto ao gráfico, será mostrado a comparação do preço com os produtos, com o botão direito do mouse no chart, selecione Properties e na aba Data da janela tem um dropdownlist com a legenda DataSet Name onde será selecionado o dataset: NorthwindProducts_Products de acordo com o Item1 da Figura 15, já no Item 2 será mostrado os valores que são os preços e que vão ficar disponibilizados no eixo do Y, então clique em editar e coloque na aba Values as informações como mostra a Figura  16. No Item 3 são os nomes dos produtos que vão ficar disponibilizados no eixo do X que vão se relacionar com os preços, preencher conforme Figura 17.   E para finalizar na aba legend desmarcar a opção Show Legend para não mostrar a legenda no gráfico.

Ferramentas para relatórios no ASP.NET

Figura 15: Propriedade do Gráfico

Ferramentas para relatórios no ASP.NET

Figura 16: Editar Valores do Gráfico

Ferramentas para relatórios no ASP.NET

Figura 17: Valor que se relaciona com o preço

Voltando para a página web criada o Exemplo01.aspx , no code-behind da página colocar o código da Listagem 1 que faz a conexão com o banco, tem um select que retorna os seis últimos produtos e associa o dataset com o ReportViewer datasource. Uma das vantagens do ReportView é que o relatório pode ser exportado para PDF ou Excel. O resultado do relatório pode ser visto na Figura 18.

Listagem 1  
using System;
using System.Data;

using System.Data.SqlClient;

using Microsoft.Reporting.WebForms;

 

public partial class Exemplo01 : System.Web.UI.Page

{

 

    #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=seusuario;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();

 

        //Associa o dataset com o ReportViewer datasource

        ReportDataSource rpda = new ReportDataSource();

        rpda.Name = "NorthwindProducts_Products";

        rpda.Value = dt;

 

        ReportViewer1.LocalReport.DataSources.Clear();

        //Adiciona o objeto rpda ao controle ReportViewer

        ReportViewer1.LocalReport.DataSources.Add(rpda);

 

        //Local que está o relatório

        ReportViewer1.LocalReport.ReportPath = "Reports/ReportProducts.rdlc";

 

        ReportViewer1.LocalReport.Refresh();

    }

 

    #endregion

}

Ferramentas para relatórios no ASP.NET

Figura 18: Mostra o relatório gerado pelo controle ReportView

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.

Ferramentas para relatórios no ASP.NET

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 .

Ferramentas para relatórios no ASP.NET

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.

Ferramentas para relatórios no ASP.NET

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.

Ferramentas para relatórios no ASP.NET

Figura 22: Adicionando o Typed DataSet

Ferramentas para relatórios no ASP.NET

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.

Ferramentas para relatórios no ASP.NET

Figura 24: Colocando os campos que serão visualizados no relatório

Ferramentas para relatórios no ASP.NET

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.

Ferramentas para relatórios no ASP.NET Figura 26: Inserindo o gráfico

Ferramentas para relatórios no ASP.NET

Figura 27: Escolhendo o tipo de gráfico

Ferramentas para relatórios no ASP.NET

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

}

Ferramentas para relatórios no ASP.NET

Figura 29: Mostra o relatório gerado pelo controle Crystal Reports

Conclusão

As ferramentas discutidas neste artigo são as principais utilizadas no Visual Studio, e por esse motivo despertou o interesse em mostrar o que é possível fazer em cada uma delas 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.

Espero que tenham gostado, até o próximo artigo e fiquem com Deus.

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?