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 Tarifa



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. Estarei mostrando os dois tipos de aplicação divididos em duas partes. Parte 1 - Windows e parte 2 - Web.

Cená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.

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:

Altere algumas propriedades do frmRelatorio:

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

Alexandre Tarifa

Alexandre Tarifa - Ministra palestras e treinamentos, MVP (Most Valuable Professional), MCAD (Microsoft Certified Application Developer) e MCT (Microsoft Certified Trainer). Bacharel pela UMESP e pós-graduando pela Universidade Federal de São Carlos em Ciência da Computação. Analista de Sistemas e Líder do grupo de usuários Codificando.net São Paulo (sp.codificando.net). Escreve artigos para a revista MSDN Magazine e para os sites Linha de Código, MSDN Brasil e Enterpriseguys.
Visite o blog do autor: http://weblogs.pontonetpt.com/alexandretarifa/.