Tutorial Criando Relatórios com JasperReports – Primeiros Passos

Tudo bem, galera!

Aprenderemos neste tutorial como criar um relatório JasperReports e preenche-lo a partir de uma Lista de Beans, ou seja, sem a necessidade de acesso ao banco de dados. Este tutorial é direcionado aos iniciantes e que provavelmente estão em seu primeiro contato com JasperReports.

 Introdução

O que motivou a escrever este tutorial, foi o fato de não encontrar um tutorial deste tipo, o básico o bastante para guiar o desenvolvimento. E, para contribuir com algum desenvolvedor que estiver passando pelo mesmo caminho, este tutorial viria como “mão na luva”.

Meu problema surgiu do seguinte senário (pode ser semelhante a de alguém). Escrevi toda a aplicação utilizando JPA para camada de persistência. Após terminar todas as classes e métodos, passei para a parte de criar relatórios. Iniciei a elaboração dos relatórios escrevendo sentenças SQL, quando parei e pensei que criar relatórios tendo a escrever sentenças SQL, seria um retrocesso, pois já contava com todo o mapeamento necessário para gerar as informações. Então, surgiram as dúvidas, e a solução foi passar um lista de objetos para o relatório.

Este tutorial está organizado em 5 partes:

  1. Preparando o Ambiente
  2. Criando a Classe de Dados
  3. Criando o Relatório
  4. Configurando os JARs para o JasperReport
  5. Criando a Classe Para Manipular o Relatório

 

Vamos então colocar a mão na massa \0/

1.       Preparando o Ambiente

Primeiro, vamos pensar na organização/pacotes de nosso pequeno projeto. Estou utilizando o Eclipse Kepler mas, nada o impedirá de usar sua IDE favorita.

Crie um projeto JavaSE nomeado RelatorioJasper

Utilizaremos os seguinte pacotes para organizar nosso projeto

figura1

 

jasper – Arquivos JasperReports

model – Beans que servem para representar nossos dados

relatorio – Classes responsáveis por gerar nosso relatórios

testes – Nossas classes para testar o relatórios

 

2.       Criando a Classe de Dados

Primeiro, criaremos a classe/bean que representará nossos dados. Utilizaremos uma classe Cliente neste tutorial.

3.       Criando o Relatório

Utilizaremos a ferramenta iReport5.0 para criar nosso relatório. Ele pode ser baixado aqui http://www.4shared.com/zip/ZtsRzMJFce/iReport.html

Acessando a ferramenta iReport5.0

1º Clique no menu “Arquivo” e então “New…” será apresentada uma tela contendo diversas opções de relatório. Escolheremos a primeira opção “Report” e “Blank A4”

Existem outros templantes interessantíssimos, mas por hora, utilizaremos o Blank A4

2 º Clique em “Open this Template”

figura2

Figura 2- Primeiro acesso ao iReport

 

Definindo o nome e o lugar do relatório

Em report name, defina o nome do relatório, em nosso caso será: Clientes

Em location, defina o diretório onde será salvo. Notem que utilizei o workspace do Eclipse e salvei direto no package br.com.rdtecnologia.jasper. Clique em Próximo e depois em Finalizar.

 figura3

Figura 3 – Definindo o nome para o relatório

figura4

Após salvar o relatório, ele deve aparecer no package Jasper, conforme imagem ao lado.

Caso não aparecesa, clique sobre o package e pressione F5.

 

 

 

 

Primeira visão ao relatório

Será apresentado um relatório em branco para podermos começar a brincar.

Criaremos os campos(fields) do relatório. Estes campos devem ter o nome correspondente às propriedades da classe Cliente. Ex: (nome, endereco, complemento, uf, telefone)

1º Clique com botão direito em “fields” e “Adicionar Field”

figura5

Figura 5 – Primeira visão do relatório (relatório em branco)

Vamos criar o campo: nome.

2º Clique no campo que acabou de criar

3º Expanda a aba Propriedades

4º Configure o nome do campo.

figura6

Figura 6- Criando os campos do relatório

Agora que você já sabe criar um campo, crie os demais.

Após criar todos os fileds, seu relatório deve se parecer conforme imagem abaixo:

figura7

Figura 7 – Visualização dos campos

 

Para nosso relatório não ficar horrível muito feio, vamos inserir um título.

1º Expanda a aba Paletas;

2º Clique no componente Static Text e arraste-o até o relatório;

3º Clique no componente que acabou de inserir no relatório e edite-o com o texto “Relatório de Clientes”.

figura8

Figura 8 – Inserindo um título ao relatório

Pronto \0/! Nosso relatório está preparado para receber uma lista de clientes. Salve e feche o relatório.

 

4.       Configurando os JARs para o JasperReport

Para que o JasperReports se comporte da forma esperada, temos que adicionar algumas bibliotecas ao projeto.

1º Clique com o botão direito sobre o projeto, em Build Path e Configure Build Path;

figura9

Figura 9 – Configurando os JARs do JasperReports

2º Clique em Add External JARs;

3º Selecione todos os JARs relativos ao JasperReport. Você pode baixar esse pacote de JARs aqui: http://www.4shared.com/zip/M15ld3lQce/JasperReport.html

4º Clique em Abrir.

figura10

Figura 10 – Carregando os JARs para o BuildPath do projeto

Após adicionar todos os JARs do JasperReports, sua aba de Libraries deve ficar assim:

figura11

Figura 11 – Visão após configuração do  BuildPath

5.       Criando a Classe Para Manipular o Relatório

No package relatorio, criaremos a classe que fara a ligação de nossa lista de Cliente com o relatório Jasper.

Nesta classe, implementaremos o método imprimir que receberá uma lista de clientes, a qual será enviada ao relatório.

Crie a classe com o seguinte código fonte:

Agora, temos que criar uma classe para testar nosso relatório. Criaremos esta nova classe no package testes. Crie a classe conforme o código fonte abaixo:

Então, acabamos de terminar nosso pequeno projeto RelatorioJasper.figura14

E esperado que sua estrutura de pacotes e classes fique conforme imagem ao lado.

 

Então, nos resta rodarmos a classe RelatorioTeste.java e verificar em “c:/Relatorio_de_Clientes.pdf” se o arquivo foi gerado com sucesso.

O relatório deve estar como demostrado na figura abaixo:

figura15

Figura 15 –  Relatório gerado em PDF

A partir de agora, sua imaginação é seu guia!

Este projeto pode ser baixado pelo GitHub, em: https://github.com/romerodias/RelatorioJasper

 

Abraço!

 

Leave a Comment