Desenvolvimento - Visual Basic .NET
Relatórios com Active Reports - Parte 1
O Active Reports é uma ferramenta da DataDynamics (www.datadynamics.com), totalmente integrada ao VS.net trazendo uma facilidade muito grande na criação de relatórios tanto em aplicações Windows (winforms) e para aplicações Web.
por Alexandre TarifaCenário
Teremos um arquivo XML simples de clientes chamado alunos.xml. Este arquivo xml será meu repositório de dados, ou seja, a fonte de dados que meu relatório buscará para exibir as informações formatadas. O arquivo terá a seguinte estrutura:
<?xml version="1.0" encoding="iso-8859-1" ?> <tblAluno> <aluno> <matricula>00001</matricula> <nome>João Paulo da Silva</nome> <endereco>Rua Bela Moema, 123</endereco> <bairro>Centro</bairro> <cidade>SP</cidade> <estado>SP</estado> <telefone>4359-4857</telefone> </aluno> <aluno> <matricula>00002</matricula> <nome>Ernesto Lopes</nome> <endereco>Rua das tulipas, 45</endereco> <bairro>Tatuapé</bairro> <cidade>SP</cidade> <estado>SP</estado> <telefone>3148-2547</telefone> </aluno> <aluno> <matricula>00003</matricula> <nome>Paulo Manga</nome> <endereco>Rua do Pão, 49</endereco> <bairro>Consolação</bairro> <cidade>SP</cidade> <estado>SP</estado> <telefone>3523-4878</telefone> </aluno> </tblAluno>
Criando Relatório com Active Reports - Winforms
Será um relatório que listará todos os alunos do arquivo XML alunos.aspx. Através de um DataSet que vai ler o arquivo alunos.xml, vamos listar todas as informações formatadas.
Inicie um projeto do tipo Visual Basic e selecione o template Windows Application com o nome ActiveReports.
O primeiro passo é a construção do relatório no Active Reports. Clique com o botão direito do mouse no projeto dentro do solution Explorer, Add, Add New Item. Selecione o template ActiveReportsFile.
É criado um formulário com o formato de um relatório. Os controles que compõe o relatório ficam na Toolbox, no grupo ActiveReports. A utilização dos controles é semelhante à de um formulário normal.
O relatório fica dividido em 3 partes: PageHeader (Topo), Detail (Itens) e PageFooter (Rodapé).
No PageHeader vamos adicionar o título do relatório e as descrições dos itens listados no relatório, conforme abaixo:
No Detail teremos que adicionar os TextBox dos campos de detalhe vinculados ao campo que ele se refere no banco de dados. Para fazer isto, basta vincular a propriedade DataField do textbox de acordo com o nome do atributo no arquivo alunos.xml.
TextBox | DataField |
txtMatricula | Matricula |
txtNome | Nome |
txtEndereco | Endereço |
txtBairro | Bairro |
txtCidade | Cidade |
txtUf | Uf |
txtTelefone | Telefone |
Monte os details conforme abaixo:
No PageFooter vamos adicionar o número de páginas do relatório. Basta adicionar um TextBox chamado txtPagina e altera as propriedades SummaryRunning = All e SummaryTupe = PageCount.
Nosso relatório já está pronto, o próximo passo agora será a chamada do relatório. Para realizar a chamada, vamos criar um formulário chamado frmRelatorio.
No frmRelatorio temos que adicionar o Controle de Visualização do Active Reports. Basta adicionar na ToolBox (Add/Remove Itens) o componente Viewer, conforme mostra a imagem abaixo.
Na ToolBox, será adicionado o controle na última posição:
Adicione ao formulário o Viewer e altere as seguntes propriedades:
Propriedade | Valor |
Dock | Button |
Name | vieRelatorio |
Altere algumas propriedades do frmRelatorio:
Propriedade | Valor |
WindowsState | Maximized |
Text | Relatório |
Adicione um Button chamado btnRelatorio com a propriedade Text = "Chama Relatório", a chamada do relatório será feita neste botão da seguinte maneira:
Private Sub btnAbre_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles btnAbre.Click Dim rpt As Object Dim Relatorio As New frmRelatorio "Seleciona o arquivo cliente.xml ofdCaminho.ShowDialog() Dim strCaminho As String = ofdCaminho.FileName If strCaminho = "" Then MsgBox("Selecione um Caminho") Exit Sub End If "Cria o DataSet e abre o XML Dim ds As New DataSet ds.ReadXml(strCaminho) rpt = New rptCliente "Chama a função que gera o relatório Relatorio.GeraRelatorioDS(rpt, ds) Relatorio.ShowDialog() End Sub
Temos que criar a função GeraRelatorioDS:
Public Sub GeraRelatorioDS(ByVal RPT As Object, ByVal DS As DataSet) Try Me.vieRelatorio.Document = RPT.document RPT.DataSource = DS.Tables(0) RPT.Run(True) Catch erro As Exception MsgBox(erro.Message, MsgBoxStyle.Critical + MsgBoxStyle.OKOnly, "Erro") End Try End Sub
Pronto, execute a aplicação e clique no botão Abrir Relatório e o relatório de clientes será exibido abaixo:
Conclusão: A Active reports traz diversas outras funcionalidades que não foram mostradas, em comparação com o Crystal Reports traz algumas funcionalidades a mais... maiores informações sobre o produto entre no site www.datadynamics.com que diversos exemplos podem ser baixado.
O exemplo mostrado foi um exemplo bem simples onde carregamos o relatório a partir de um DataSet, porém pode ser carregado através de um DataReader também. Estarei mostrando na Parte 2 deste artigo como chamar este mesmo relatório na Web. Qualquer dúvida me envie um e-mail.
Agradeço ao David Pomarico pela ajuda na elaboração deste artigo.
Abraço
ONDE COMPRAR:
Comptools: http://www.comptools.com.br/produto.asp?codproduto=CF-00079
- Entity Framework 4: Repositório GenéricoVisual Basic .NET
- As edições 14 da Easy .net Magazine e 88 da .net Magazine já estão disponíveis.ADO.NET
- Postando no Twiiter com .NET e Migre.meC#
- Setup ApplicationsVisual Basic .NET
- Problemas na manipulação de arquivos do MS Excel com .NETVisual Basic .NET