ASP.NET 2.0 - Gerando relatórios com o ReportViewer


Este artigo vai mostrar como você pode gerar relatórios em suas páginas ASP.NET 2.0 usando o add-in ReportViewer para o Visual Web Developer. Se você já tem o Visual Web Developer instalado basta fazer o download do add-in  no link : http://msdn.microsoft.com/vstudio/express/vwd/download/default.aspx

Assumindo que você tenha conseguido fazer o download e ter instalado o ReportViewer vamos a um exemplo prático de como você pode criar um relatório em uma página web para exibir os dados de uma tabela Clientes do banco de dados Clientes.mdf

Nota: Para este exemplo eu vou utilizar o SQL Server 2005 Express , criar um banco de dados Clientes.mdf e uma tabela Clientes com os seguintes campos: Codigo,Nome,Endereco,Foto e Renda conforme mostrado na janela DataBase Explorer:

Para saber como criar um banco de dados, uma tabela e incluir dados no SQL Server 2005 Express leia os artigos:

 

Vamos então arregaçar as mangas e por a mão na massa...

1- Abra o VWD e crie um novo Web Site com o nome de aspnetRelatorio (ou algo parecido)

2- Selecione a página Default.aspx e no modo Design abra a ToolBox e procura na aba Data pelo componente ReportViewer.(Se você instalou o add-in corretamente ele deverá aparecer neste local).  Selecione o componente e arraste-o e solte na página Default.aspx e você verá o descritor do ReportViewer exibido conforme a figura abaixo:

3- Selecione a opção Design a new Report do descritor

4- Será exibido a janela Design do ReportView exibindo o relatório Report1.rdlc conforme a figura abaixo:

Perceba que a ToolBox apresenta um novo formato com a Aba Report Items exibindo os objetos : Pointer,TextBox,Line,Table,Matrix,Rectangle,List,etc...

Vamos trabalhar com objeto Table arrastando e soltando o mesmo na seção Body do descrito do ReportViewer. Fazendo isto obtemos:

Altere a visualização para a aba WebSite Data Sources e a seguir clique no em Add New Data Source. O assistente de configuração irá surgir , selecione a banco de dados clientes.mdf e clique em Next>

Prossiga até incluir a tabela Clientes e usando o Query Builder construir a  instrução SQL para exibir os dados da tabela Clientes conforme abaixo:

Ao terminar você será levado de volta ao Descrito do relatório e a aba WebSite Data Sources estará exibindo o dataset conforme figura a seguir:

Inclua mais uma coluna no objeto Table inserido no descritor clicando com o botão direito do mouse sobre o objeto e selecionando a opção: Insert Column to the Right

A seguir arraste cada um dos campos do dataset para o descritor conforme a figura abaixo e o relatório estará pronto para exibir os dados da tabela Clientes.

Você pode configurar o relatório alterando a fonte, a cor , etc. Abaixo o relatório que formatei para exibição:

Volte para a página Default.aspx e selecione em Choose Report selecione o relatório que acabamos de criar acima:

Basta executar a o projeto no servidor ASP.NET e você verá o relatório ser exibido conforme figura abaixo:

Note que você tem a opção de exportar o relatório no formato Excel ou PDF.

Como acabei de mostrar que você tem a disposição uma ferramenta poderosa e grátis para gerar relatórios em páginas asp.net; mas nem tudo são flores e eu gostaria de alertá-lo para os seguintes fatos:

1- Se você distribuir sua aplicação em um computador que não tem o VS 2005 instalado, você não pode assumir necessariamente que o controle ReportViewer esta disponível; mesmo depois de ter instalado a .NET Framework 2.0.  Você pode contornar este problema efetuando o download do Report Viewer Redistributable - http://www.microsoft.com/downloads/details.aspx?FamilyID=8a166cac-758d-45c8-b637-dd7726e61367 - Outra alternativa é construir um programa de Setup a partir do Visual Studio (Professional) para distribuir sua aplicação. Assim que for detectado que sua aplicação usa o ReportViewer o mesmo será incluído na distribuição da sua aplicação.

2- O Visual Basic 2005 Express e C# Express não incluem o controle ReportViewer. Isto significa que se você estiver usando o VB 2005 Express ou C# Express para desenvolver uma aplicação você precisa primeiro efetuar o download e a seguir instalar o Report Viewer redistributable na sua máquina de desenvolvimento a fim de compilar junto com o projeto. Você precisa também instalar o Report Viewer Redistributable em toda a máquina de destino na qual você esta instalando a sua aplicação.

3- O VB 2005 Express e o C# 2005 Express não incluem um descritor para você desenhar os relatórios.

Apesar destas controvérsias você não pode reclamar mais que não tem uma ferramenta para gerar relatórios na web em suas páginas ASP.NET.

Pegue o código completo do projeto aqui : aspnetRelatorio.zip (sem a base de dados)

referências:  http://msdn2.microsoft.com/en-us/library/ms251671(vs.80).aspx


José Carlos Macoratti