Gerando Relatórios com JasperReports

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
 (4)  (0)

Neste artigo será mostrado um passo a passo para a criação de um relatório JasperReports, utilizando a ferramenta iReport que irá nos auxiliar no processo de desenvolvimento do template do relatório.

Do que se trata o artigo:

Neste artigo será mostrado um passo a passo para a criação de um relatório JasperReports, utilizando a ferramenta iReport que irá nos auxiliar no processo de desenvolvimento do template do relatório. Para tal abordagem, será criado um banco de dados com tabelas fictícias, as quais conterão os dados que irão gerar as informações a serem visualizadas.

Em que situação o tema é útil:

O artigo pode servir como base introdutória para o desenvolvimento de relatórios em aplicações Java usando o framework JasperReports, podendo ser aplicado tanto em ambientes Web (Java EE) como Desktop (Java SE). Este framework permite extrair informações de várias fontes de dados, como: arquivos XML, banco de dados, arquivos CSV, dentre outros. Além disso, possibilita a geração de relatórios nos formatos PDF, HTML, Excel, Word e OpenOffice, por exemplo.

Resumo DevMan:

Neste artigo, será apresentado o uso do framework JasperReports, passando pelas fases de criação do arquivo de template, sua compilação, a invocação deste relatório via aplicação web, a geração do relatório com as informações vindas de uma fonte dados, e a exportação deste para outros tipos de arquivos, como PDF.

Neste processo iremos utilizar o iReport, no qual realizaremos um overview apresentando as principais características da ferramenta. O iReport irá simplificar a criação do arquivo de template e sua compilação.

A grande maioria dos sistemas computacionais é criada para que dados sejam inseridos, possibilitando que estes sejam transformados em informações úteis. Com estas informações em mãos, é possível realizar analises e tomada de decisões estratégicas para uma empresa, por exemplo.

Uma das formas mais utilizadas para obtermos tais informações é o bom e velho relatório. Um relatório pode conter grandes quantidades de informações de forma detalhada e organizada, facilitando a leitura das mesmas.

Neste contexto, o JasperReports nos fornece funcionalidades que permitem criar relatórios complexos de forma estruturada, a partir da elaboração de um template. Este template é um arquivo XML com a extensão .jrxml. É neste arquivo que é especificada a estrutura do relatório, ou seja, é nele onde informamos os dados que irão compor o relatório, em que posição e de que forma serão exibidos, formando assim um layout.

A partir da definição do template e com o auxílio do framework JasperReports, conseguimos gerar nossos relatórios e exportá-los para diversos formatos, como: HTML, PDF e DOC.

JasperReports

O JasperReports é um framework open source inteiramente escrito em Java, tendo sido criado e mantido pela organização JasperForge. Ele é um dos mecanismos mais populares para a geração de relatórios na plataforma Java.

Através do JasperReports e sua poderosa API, é possível gerar e exportar relatórios altamente dinâmicos para aplicações Java. Tudo isso é feito de forma descomplicada, intuitiva e escrevendo poucas linhas de código.

Adicionando a biblioteca do JasperReports ao projeto

A biblioteca do JasperReports pode ser obtida diretamente do site, realizando o download do arquivo, ou através de uma ferramenta de gerenciamento e automação de projetos, como o Apache Maven. Até a elaboração deste artigo, a versão mais recente do framework era a 4.5.1, versão esta que iremos adotar em nosso exemplo.

Se a escolha for realizar manualmente o download, o pacote contendo as bibliotecas do JasperReports pode ser obtido através do site oficial do projeto (veja a seção Links). Logo após o download, os JARs devem ser extraídos e incluídos no CLASSPATH da aplicação.

Caso opte pelo Maven, a biblioteca deve ser declarada na seção de dependências do pom.xml do projeto, como mostrado a seguir:

<dependency>
    <groupId>net.sf.jasperreports</groupId>
    <artifactId>jasperreports</artifactId>
    <version>4.5.1</version>
  </dependency>

Etapas do processo de desenvolvimento de um relatório JasperReports

Antes de um relatório ficar pronto para ser visualizado ou impresso, este deve passar por algumas etapas de desenvolvimento.

A primeira etapa é a criação do template. Ela consiste basicamente em criar um arquivo do tipo XML, fazendo uso das tags e atributos definidos no arquivo jasperreports.dtd. O arquivo criado deve possuir a extensão .jrxml, e nele incluímos os campos a serem preenchidos dinamicamente por uma fonte de dados. Além disso, também podemos definir no template outros componentes, como textos fixos, imagens, cálculos, parâmetros, totalizadores, etc.

Na sequência, é preciso realizar a compilação do arquivo de template, criado anteriormente. Este passo é realizado pela API do JasperReports, sendo possível ser feito automaticamente via ferramenta, como iReport, ou pela própria aplicação (veremos ambas as formas de compilação mais adiante).

Após a compilação, um arquivo com a extensão .jasper é gerado. Este arquivo é um arquivo de classe Java, que representa um objeto da classe JasperReport, o qual será utilizado em conjunto com uma fonte de dados.

A fonte de dados, também conhecida como datasource, é usada para popular o relatório, compondo, assim, as informações que irão constituí-lo. Estas informações podem ser importadas através de fontes de dados distintas, como é o caso de arquivos XML, CSV, de forma programática através de coleções ou arrays de JavaBeans, ou até mesmo de uma conexão com o banco de dados. Ao preencher o relatório, criamos então um novo arquivo, agora com a extensão .jrprint. Este também é um arquivo Java, que implementa a interface JarperPrint.

Por fim, com um objeto do tipo JasperPrint, conseguimos exportar o relatório para diversos formatos, como HTML, PDF, TXT, RTF, entre outros, obtendo um relatório final que pode ser visualizado, impresso ou armazenado em disco.

Exemplo de arquivo de template

O arquivo de template, conforme já comentado, nada mais é do que um arquivo XML que define toda a estrutura do relatório, assim como também é definido o local onde cada informação será exibida. O código referente à Listagem 1 é um exemplo de template que gera, como saída, uma página de relatório conforme pode ser visto na Figura 1.

Note que no exemplo temos a declaração da tag <jasperReport>. Este é o elemento principal do template. Esta tag, além de definir os namespaces, define também algumas características gerais do relatório, como por exemplo: margens, tamanho e orientação da página.

Logo abaixo, na sequência, podemos ver as declarações de três bandas: title, detail e pageFooter. Bandas são trechos da página onde são organizados os elementos do relatório. Cada uma destas bandas define os textos exibidos no relatório da "

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

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