Rafael Costa

Gerando Relatórios com JasperReports e iReports

leave a comment »

Introdução

Um relatório é uma maneira agradável de apresentar os dados vindos de alguma base de informação com sua aparência formatada. Por menor que seja o sistema, a geração de relatórios será um de seus requisitos. Este “mercado” era dominado pelo Software Crystal Reports da Seagate Software, após o desenvolvimento do JasperReports, e da popularização da linguavem JAVA, muitos usuários migraram para a nova ferramenta já que ela é gratuita e fazia simples integração com diversos bancos de dados. Mas ocorria um problema, para se desenvolver um relaório usando a biblioteca JasperReports era necessário um bom conhecimento de xml. E para resolver isso foram desenvolvidas as ferramentas de interface gráfica do utilizador/usuário (GUI). E, ao meu ver, a que tem o uso mais simples é o iReport, também desenvolvida pela JasperSoft. sem mais delongas vamos ao tutorial / artigo / chame como quiser.

IMPORTANTE
Este tutorial não é completo sobre a ferramenta, são opiniões e descobertas minhas após um trabalho feito para a faculdade. Algumas informações aqui podem estar, e, provavelmente estão, erradas.

IMPORTANTE 2
Para fazer este exemplo funcionar você vai precisar do banco de dados MySql. Para fazer o download do MySql Server é necessário um cadastro no site do MySql. Você ainda vai precisar baixar o iReport, a versão que eu escolhi utilizar é a 3.0 que você pode pegar gratuitamente. Já está disponível a versão 3.5.1 escolha a que preferir e vamos lá.

Criando o Banco de Dados de exemplo no MySql

Vamos começar criando o banco de dados no Mysql Server.
Abra o MySQL Command Line Client.
Entre com a sua senha.
Digite no prompt:
create database exemploInfodrama;
Se tudo ocorreu corretamente a janela deverá exibir a mensagem
Query OK, 1 Row Affected
Seu banco de dados foi criado, mas ele está vazio. Você pode criar tabelas e tuplas ou pode rodar esse script que eu vou disponibilizar.

/*
MySQL Backup
Source Host: localhost
Source Server Version: 5.0.18-nt
Source Database: exemploinfodrama
Date: 2009/05/15 21:27:23
*/

SET FOREIGN_KEY_CHECKS=0;
use exemploInfodrama;
#—————————-
# Table structure for tb_produtos
#—————————-
CREATE TABLE `tb_produtos` (
`idProd` int(11) NOT NULL auto_increment,
`descricao` varchar(50) character set latin1 collate latin1_general_ci default NULL,
`preco` double default NULL,
PRIMARY KEY (`idProd`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
#—————————-
# Records for table tb_produtos
#—————————-

insert into tb_produtos values
(1, ‘Lapis’, 20000),
(2, ‘Borracha’, 10000),
(3, ‘Caneta’, 13000),
(4, ‘Caderno’, 5000),
(5, ‘A4 1000 folhas’, 1000),
(6, ‘A4 500 folhas’, 10000),
(7, ‘A4 100 folhas’, 15000);

#—————————-
# Table structure for tb_funcionarios
#—————————-

CREATE TABLE `tb_funcionarios` (
`idFunc` int(11) NOT NULL auto_increment,
`Nome` varchar(50) character set latin1 collate latin1_general_ci default NULL,
`Salario` double default NULL,
PRIMARY KEY (`idFUnc`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

#—————————-
# Records for table tb_produtos
#—————————-

insert into tb_funcionarios values
(1, ‘Caio’, 550),
(2, ‘Alexandre’, 700),
(3, ‘Ivan’, 700),
(4, ‘André’, 900),
(5, ‘Erick’, 600),
(6, ‘Sonia’, 10000),
(7, ‘Fabiano’, 1000);

#—————————-
# Table structure for tb_clientes
#—————————-

CREATE TABLE `tb_clientes` (
`idCli` int(11) NOT NULL auto_increment,
`Nome` varchar(50) character set latin1 collate latin1_general_ci default NULL,
`Cidade` varchar(50)character set latin1 collate latin1_general_ci default NULL,
PRIMARY KEY (`idCli`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

#—————————-
# Records for table tb_cliente
#—————————-

insert into tb_clientes values
(1, ‘João Paulo’, ‘Resende’),
(2, ‘Gilber’, ‘Resende’),
(3, ‘Alexandre Belchior’, ‘Itatiaia’),
(4, ‘Rodrigo’, ‘Quatis’);

Cole o script no bloco de notas e salve como exemploinfodrama.sql na raiz
Para rodar o script digite no prompt:
c:\source exemploinfodrama.sql;
 
Pronto, agora o banco de dados já está criado! Vamos para o iReport.

Configurando o iReport

No menu Data, clique em Conexões / Fontes de dados.
Na janela que abriu clique no botão Novo.
A seguinte Janela deve aparecer:

Escolha Conexão de Banco de Dados JDBC e clique em próximo.
Preencha os campos da seguinte maneira:
Nome: exemploInfodramaconect
Driver JDBC: com.mysql.jdbc.Driver
Caminho do JDBC: jdbc:mysql://localhost/exemploinfodrama
usuário: root
Senha: a senha quê voce escolheu na instalação do MysqlServer.
Teste a conexão e se tudo der certo clique em salvar, senão repita os passos acima.


Criando um relatório simples

 

Depois de configurado o banco de dados, vamos criar um relatório simples.
Abra o menu arquivo e escolha Assistente de relatório.
No campo consulta sql é onde voce pode fazer uma consulta normal usando comandos sql.


Mas o interessante nessa janela é o Design query. clique nele.


Selecione nome e cidade na tabela e clique em ok.
Depois selecione próximo e mova todos os dados para a área da direita.
Clique em Próximo mais 2 vezes e depois escolha o layout do relatório.
Clique em encerrar para gerar o relatório.

No menu Criar (build) clique em compilar para gerar o arquivo.jrxml.
Depois escolha qual formato você quer exportar o seu relatório e finalize o processo clicando em executar relatório (usar conexão ativa).
Vá até a pasta do iReport e veja o seu arquivo pronto. Você acaba de gerar um relatório sem digitar nenhuma linha de código!
Creative Commons License
Este artigo é licenciado a Rafael Costa // Infodrama Sob uma licença Creative Commons Atribuição-Uso Não-Comercial 2.5 Brasil License.

Written by rafaelscosta

19 de maio de 2009 às 03:34

Publicado em JAVA, Mini Tutorial

Deixe um comentário