Escolar Documentos
Profissional Documentos
Cultura Documentos
TJAVIREP
Setembro/2005
II
Sumrio
1. O que o iReport........................................................................1
Objetivos.......................................................................................................................................2
O que o iReport..........................................................................................................................3
O que o JasperReports................................................................................................................4
Exerccios......................................................................................................................................5
2. Instalando o iReport....................................................................1
Objetivos.......................................................................................................................................2
Aonde obter o iReport...................................................................................................................3
Requisitos mnimos do iReport.....................................................................................................4
Instalando o iReport......................................................................................................................5
3. Acesso ao banco de Dados...........................................................1
Objetivos.......................................................................................................................................2
Configurando DataSource.............................................................................................................3
Definindo a Conexo Ativa..........................................................................................................5
4. iReport Wizard............................................................................1
Objetivos.......................................................................................................................................2
Criando um relatrio no iReport...................................................................................................3
Exerccios......................................................................................................................................8
5. Modelo Relatrio iReport.............................................................1
Objetivos.......................................................................................................................................2
Estrutura de um relatrio..............................................................................................................3
Variveis, Parmetros e campos...................................................................................................7
Arquivos gerados pelo iReport...................................................................................................10
Exerccios....................................................................................................................................11
6. Customizando Relatrios.............................................................1
Objetivos.......................................................................................................................................2
Criando um relatrio.....................................................................................................................3
Inserindo Grficos no relatrio.............................................................................................9
Exerccios....................................................................................................................................13
7. Criando Subrelatrios................................................................15
Objetivos.....................................................................................................................................16
O que um subrelatrio..............................................................................................................17
Criando um subrelatrio.............................................................................................................18
Exerccios....................................................................................................................................25
8. Visualizando e Salvando Relatrios.............................................26
Objetivos.....................................................................................................................................27
Gerando o seu relatrio em formato PDF...................................................................................28
Gerando o seu relatrio em formato HTML...............................................................................30
Exerccios....................................................................................................................................32
T@rgetTrust Treinamento e Tecnologia
III
IV
1. O que o iReport
O que o iReport
Objetivos
O que o iReport
O que o iReport
O iReport uma ferramenta poderosa, intuitva e fcil de usar que
constroi relatrios para JasperReports. O iReport desenvolvido 100% em
Java.
Essa ferramenta permite ao usurio gerar relatrios complexos com
imagens, grficos e subrelatrios. O iReport integrado com o JfreeChart, uma
das bibliotecas Java de gerao de grficos mais difundidas.
Com o iReport possvel gerar relatrios em vrios formatos incluindo
PDF, HTML, XML, XLS, CVS,entre outros.
O que o iReport
O que o JasperReports
JasperReport a biblioteca de classes que torna possvel gerar os
relatrios. O iReport apenas uma interface grfica que faz uso do
JasperReports.
So as classes e mtodos disponibilizados pelo JasperReports que sero
usados para efitivamente gerar e exportar os relatrios.
O que o iReport
Exerccios
1. O que faz o iReport?
2. Para que serve o JasperReports?
O que o iReport
O que o iReport
2. Instalando o iReport
Instalando o iReport
Objetivos
Instalando o iReport
Instalando o iReport
Instalando o iReport
Instalando o iReport
A instalao do iReport bastante simples. preciso apenas
descompactar o arquivo .zip que voc baixou do site da SourceForge.net.
Ao descompactar esse arquivo ele j vai criar toda a estrutura de
diretrios necessrios para que o iReport funcione.
Uma vez descompactado, basta executar o arquivo iReport.bat (para
Windows), ou iReport.sh (para Linux), que o iReport ir ser exeutado.
Instalando o iReport
Objetivos
Configurando DataSource
Logo que o iReport iniciar ser necessrio configurar o DataSource para
que seja possvel acessar o banco de dados, sobre qual vamos trabalhar para
gerar nossos relatrios. A definio do DataSource no obrigatria. Mas se
voc no tiver um banco de dados disponvel no ser possvel testar o
relatrios que voc estar criando.
Para definir a DataSource, clique no menu DataSource e selecione a
opo Connections/DataSource. A janela mostrada na figura 3.1 vai
aparecer. Clique no boto New para criar uma nova conexo.
ser
Caso a porta do seu banco de dados oracle no seja a 1521, voc pode
alterar manualmente. O boto wizard s uma facilidade, se voc j souber a
sua JDBC URL, no precisa fazer o Wizard, basta digitar a URL no campo JDBC
URL.
Uma vez definida a sua JDBC URL clique no boto Test para verificar se a
conexo est funcionando. Caso o teste for bem sucedido uma mensagem
pop-up vai avisar que o teste da conexo foi bem sucedido. Do contrrio.
Aparecer um mensagem de erro.
Clique no boto Save e sua conexo estar salva e pronta para uso.
Isso far com que o iReport utilize a conexo com o Oracle para criar e
visualizar os relatrios.
4. iReport Wizard
iReport Wizard
Objetivos
iReport Wizard
iReport Wizard
iReport Wizard
iReport Wizard
iReport Wizard
iReport Wizard
Exerccios
iReport Wizard
Objetivos
Estrutura de um relatrio
Os relatrio do JasperReports gerados pelo iReport tem a seguinte
estrutura conforme mostra a tabela 5.1.
1. Ttulo
2. Cabealho de Pgina
3. Cabealho de Coluna
4. Cabealho de Grupo 1
5. Cabealho de Grupo 2
6. Detalhe
(repete para cada novo registro no banco de
dados)
7. Rodap do Grupo 2
8. Rodap do Grupo 3
9. Rodap da Coluna
10. Rodap da Pgina
11. Sumrio
Tabela 5.1 Estrutura de um relatrio JasperReports
Clique no Boto New. Uma nova janela vai aperecer conforme mostra
a figura 5.5. Preencha o campo Parameter Name com estado. O campo
Class Type com java.lang.String. Marque o campo Is For Prompting,
assim quando voc executar o relatrio dentro do iReport ele vai perguntar
qual o valor vc quer passar para esse parmetro. O campo Default value
expression indica um valor padro a ser usado caso o valor para o parmetro
estado no seja passado ao relatrio. Preencha esse campo com SP . O
campo Parameter Description contm a descrio do que esse parmetro
representa. Clique em OK e depois feche a janela de parmetros.
Exerccios
1. Como dividio um relatorio? E para que serve cada sesso?
2. Como se referencia uma coluna resultante do SQL do relatrio no
iReport?
3. Como passar um parmetro para um relatrio?
4. O que um arquivo .jrxml?
5. O que um arquivo .jasper?
6. Crie um relatrio que recebe como parmetro um preo mnimo e um
preo mximo e mostre todos os produtos nessa faixa de preo.
a. Clique em File | Report Wizard
b. Entre o comando SQL select * from produto e clique Next
c. Selecione a coluna Nome e clique Next
d. Clique Next novamente
e. Selecione o
classicT.xml
layout
Tabular
da
combobox
template
6. Customizando Relatrios
Objetivos
Criar campos estticos no relatrio
Criar campos para apresentar o resultado do SQL
Criar grficos para seus relatrios
Criando um relatrio
At agora vimos como criar um relatrio a partir do iReport Wizard.
Agora vamos criar um relatrio desde o comeo. Para tanto, clique em File
no menu principal e selecione a opo New Document.
A janela da figura 6.1 ir aparecer. Nela possvel escolher o tamanho,
definir as margens, a orientao do relatrio e o nome. D o nome de
MeuRelatorio e clique no boto OK.
Um novo relatrio em branco vai ser criado como mostra a figura 6.2.
Nele podemos ver que algumas faixas j aparecem com tamanhos prdefinidos. Agora basta colocar os elementos que desejarmos nas faixas para
montar o nosso relatrio.
Agora esconda as demais faixas (colocando sua altura para zero), menos
a faixa de Rodap de Pgina (pageFooter).
Na faixa de rodap de pgina, vamos colocar a data e o nmero da
pgina. Para tanto adicione dois novos campos de texto na faixa de rodap de
pgina. D duplo clique sobre o campo de texto da data. Clique na aba Text
Field, troque o Textfield Expresion Class para java.lang.Date e no campo
Textfield expression entre o comando new Date(). D duplo clique no o
outro campo de texto e clique na aba Text Field. Mude o Textfield
Expression Class para java.lang.Integer e no campo Textfield expression
coloque a referncia a varivel do nmero da pgina, $V{PAGE_NUMBER}.
Para visualizar as variveis pr-disponveis (builtin) em todos os
relatrios basta clicar no menu View e selecionar Report Variables.
O seu relatrio agora deve aparecer como o d figura 6.6. Clique no
menu Build e selcione Execute Report (using active conn.) e veja o
resultado.
Exerccios
1 Crie um relatrio em branco. Utilize a consulta select uf, sum(qtde) as
total from vendas group by produto, uf. Mostre os totais de quantidade de
produtos por estado no seu relatrio em branco. No esquea de dar um ttulo
ao seu relatrio.
7. Criando Subrelatrios
Objetivos
Oque um subrelatrio
Para que serve
Como usar um subrelatrio para gerar relatrios tipo Mestre-Detalhe
O que um subrelatrio
Um subrelatrio um elemento que voc pode adicionar dentro de um
outro relatrio. Um subrelatrio nada mais que um relatrio inserido dentro
de outro. Assim voc pode modularizar seus relatros, criar relatrios
complexos ou construir relatrios do tipo mestre-detalhe.
Criando um subrelatrio
Para criar um subrelatrio primeiro a necessrio criar o relatrio que
esse subrelatrio ir referenciar. Para isso Clique em File e selecione New
Document. Uma janela vai abrir para voc dar o nome do relatrio. Chame o
relatrio de MeuSubrelatorio e clique OK.
Adicione um parmetro que vai ser usado na consulta SQL. Esse parmetro o
ID do produto. Clique em View e selecione Report Parameters. Adicione um
parmetro com o nome de prodid, do tipo java.lang.Integer e valor default
new Integer(1), como mostra a figura 7.1. Clique em OK e feche a janela
anterior.
Exerccios
1 Faa um relatrio mestre-detalhe utilizando um subreport.
a. Crie um relatrio para ser usado como subrelatrio
b. Acicione um parmetro a esse relatrio
c. Crie o relatrio principal
d. Adicione o elemento de Subrelatrio na faixa de Detalhes
e. Edite as propriedades do Subrelatrio e passe o parmetro que o
subrelatrio precisa receber. Configure as demais propriedades.
f. Execute o relatrio.
8. Visualizando e Salvando
Relatrios
Objetivos
Visualizar o relatrio a partir de um programa Java ou de uma pgina
JSP.
Salvar o relatrio nos diferentes formatos como PDF, HTML, XML,
entre outros.
net.sf.jasperreports.engine.*;
net.sf.jasperreports.view.*;
java.sql.*;
java.util.*;
static
static
static
static
final
final
final
final
String
String
String
String
login
Senha
pdf =
relat
= java;
= java;
relatorio.pdf;
= classic.jasper;
}
Cdigo 8.1 - Aplicao Java Desktop
<%@
<%@
<%@
<%@
<%@
page
page
page
page
page
errorPage="error.jsp" %>
import="datasource.*" %>
import="net.sf.jasperreports.engine.*" %>
import="java.util.*" %>
import="java.io.*" %>
<%
String url = jdbc:oracle:thin:@localhost:1521:MYDATABASE;
String login = java;
String Senha = java;
File reportFile = new File(application.getRealPath("classic.jasper"));
if (!reportFile.exists())
throw new JRRuntimeException("Arquivo classic.jasper no
encontrado.");
//Abre conexo com o banco de dados
Class.forName(driver);
Connection conn =
DriverManager.getConnection(url,login,senha);
Map parameters = new HashMap();
parameters.put("ReportTitle", "Address Report");
parameters.put("BaseDir", reportFile.getParentFile());
byte[] bytes =
JasperRunManager.runReportToPdf(
reportFile.getPath(),
parameters,
conn
);
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
%>
Cdigo 8.2 Relatrio em uma aplicao Web (report.jsp)
<%@
<%@
<%@
<%@
<%@
page
page
page
page
page
import="net.sf.jasperreports.engine.*" %>
import="net.sf.jasperreports.engine.util.*" %>
import="net.sf.jasperreports.engine.export.*" %>
import="java.util.*" %>
import="java.io.*" %>
<%
String url = jdbc:oracle:thin:@localhost:1521:MYDATABASE;
String login = java;
String Senha = java;
File reportFile = new
File(application.getRealPath("/reports/WebappReport.jasper"));
if (!reportFile.exists())
throw new JRRuntimeException("Arquivo WebappReport.jasper no
encontrado.");
JasperReport jasperReport =
(JasperReport)JRLoader.loadObject(reportFile.getPath());
//Abre conexo com o banco de dados
Class.forName(driver);
Connection conn =
DriverManager.getConnection(url,login,senha);
Map parameters = new HashMap();
parameters.put("ReportTitle", "Relatorio Web");
parameters.put("BaseDir", reportFile.getParentFile());
JasperPrint jasperPrint =
JasperFillManager.fillReport(
jasperReport,
parameters,
conn
);
JRHtmlExporter exporter = new JRHtmlExporter();
Map imagesMap = new HashMap();
session.setAttribute("IMAGES_MAP", imagesMap);
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);
exporter.setParameter(JRHtmlExporterParameter.IMAGES_MAP, imagesMap);
exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "image.jsp?
image=");
exporter.exportReport();
%>
Cdigo 8.3 Relatrio aplicao web em formato HTML (report_html.jsp)
Exerccios
1 Crie uma aplicao Java que visualize o relatrio gerado pelo iReport
(.jasper) e depois salve o mesmo em um arquivo em fomrato PDF. Abra o PDF
para conferir o seu relatrio.
a. Use o exemplo do cdigo 8.1
2 Crie uma aplicao Web. Construa uma pgina JSP que carregue o relatrio
gerado pelo iReport e mostra como formato PDF.
a. Use o exemplo do cdigo 8.2
3 Crie uma outra pgina JSP na sua aplicao Web que mostra o contedo do
seu relatrio diretamente na pgina JSP com formato HTML.
a. Use o exemplo do cdigo 8.3
4 - Experimente passar parmetros para a sua query atravs das pginas JSP.
No esquea de carregar um relatrio que aceita parmetros e lembre o nome
do parmetro a ser usado.