ASP.NET 2.0 - ReportViewer usando parâmetros
Em meu artigo ASP.NET 2.0- Gerando relatórios com o ReportViewer mostrei como gerar relatórios em páginas ASP.NET 2.0 usando o add-in ReportViewer.
Neste artigo vou mostrar como trabalhar com parâmetros no ReportViewer. Você vai precisar dos seguintes requisitos para acompanhar este artigo:
Vou usar a tabela Customers do banco de dados Northwind.mdf para criar um relatório que exiba os nomes dos contatos para um determinado país, onde o nome do país deverá ser informado pelo usuário na página web e o relatórios será gerado de forma dinâmica exibindo o resultado esperado.
Vamos então mandar bala...
1- Abra o VWD e crie um novo Web Site com o nome de reportViewer1 (ou algo parecido)
2- Selecione a página Default.aspx e altere o seu nome para ContatosPais.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 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:
Altere o nome do relatório para CustomersByCountry.rdlc.
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 Northwind.mdf e clique em Next>
A seguir selecione a tabela Customers e defina uma instrução SQL digitando diretamente ou usando o Query Builder conforme mostrado abaixo:
Na janela do assistente marque somente a opção Return a DataTable informando o nome : GetDataByCountry para o nome do método que irá retornar os dados da tabela Customers.
Ao final teremos um DataSet tipado Northwind.xsd definido com um tableAdpater conforme mostrado a seguir:
Inclua mais duas 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 Customers.
Retorna para a página ContatosPais.aspx e inclua os seguintes controles acima do ReportViewer: Label(ID=Label1), TextBox (ID=txtPais) e Button (ID=btnFiltrar) e no componente selecione o relatório criado CustomersByCountry.rdlc.
Vamos agora configurar o ObjectDataSource clicando na guia objectDataSource Tasks e selecione a opção Configure Data Source. A seguir faça o seguinte:
a - Selecione o Business Object - CustomersTabelAdapter | |
b- Defina o método GetDataByCountry do TableAdapter | |
c- Defina o parâmetro Country cuja origem será um controle chamado txtPais que é o controle TextBox onde o usuário vai digitar o nome do país. |
Finalmente na página ContatosPais.aspx defina o código relacionado ao evento Click do botão - Filtrar:
Protected
Sub btnFiltrar_Click(ByVal
sender As
Object,
ByVal e
As System.EventArgs)
Handles
btnFiltrar.Click ReportViewer1.LocalReport.Refresh() End Sub |
Pronto! Agora basta executar o projeto e quando a página ContatosPais.aspx for apresentada informar o nome do pais para filtro no formulário. O resultado pode ser visto abaixo:
Veja como foi simples , fácil e rápido criar relatórios em página ASP.NET 2.0 usando um componente gratuito; o ReportViewer. (Os relatórios gerados podem ser visualizados também no Visual Basic 2005 Express bastando configurar o mesmo dataset e fazer os ajustes necessários.)
Eu sei é apenas ASP.NET , mas eu gosto...
referências: http://msdn2.microsoft.com/en-us/library/ms251671(vs.80).aspx
José Carlos Macoratti