Pessoal segue uma classe fornecida pelo Marcos Vinícius para chamar o relatório gerado pelo IReport
1. /*
2. * @(#)Relatorio.java 1.0
28/04/2006
3. *
4. * Copyright 2006 Marcos Vinícius
Soares. Todos os direitos reservados.
5. * mvsoares@estadao.com.br
6. *
7. */
8.
9. import java.sql.*;
10. import java.net.URL;
11. import java.util.HashMap;
12. import net.sf.jasperreports.engine.util.JRLoader;
13. import net.sf.jasperreports.view.JasperViewer;
14. import net.sf.jasperreports.engine.*;
15. import conexao.Conexao;
16.
17. /**
18. * Relatorio.java
19. *
20. *
A classe Relatorio deve ser utilizada para emissão
de relatórios. Após a
21. * criação de algum relatório é possível
exibí-lo na tela, exportá-lo para um
22. * arquivo pdf/html ou enviá-lo direto
para impressão.
23. *
24. *
A classe manipula relatórios desenvolvidos
utilizando-se a ferramenta
25. * iReport e utiliza a ferramenta
JasperReports para emissão dos relatórios
26. *
27. * @author Marcos Vinícius Soares
28. */
29. public class Relatorio {
30.
31. /** Representa o relatório gerado. */
32. private JasperPrint jasperPrint_;
33.
34. /**
35. * Cria um novo Relatorio.
36. *
37. * @param conn Conexão com o banco de
dados.
38. * @param parameters Parâmetros a serem
exibidos no relatório.
39. * @param localRelatorio Localização do
relatório.
40. * @throws JRException Caso o relatório
não seja encontrado ou haja
41. * algum problema com ele, uma exceção é
gerada.
42. */
43. public Relatorio(Conexao conn, HashMap parameters,
URL localRelatorio) throws JRException{
44.
45. try {
46.
47. // O objeto JasperReport representa o
objeto JasperDesign (arquivo .jrxml) compilado.
48. // Ou seja, o arquivo .jasper
49. JasperReport jr =
(JasperReport)JRLoader.loadObject(localRelatorio);
50.
51. // JasperPrint representa o relatório
gerado.
52. // É criado um JasperPrint a partir de
um JasperReport, contendo o relatório preenchido.
53. this.jasperPrint_ = JasperFillManager.fillReport(jr,
parameters, conn.getConnection());
54.
55. } catch (JRException e) { throw e; }
56. }
57.
58.
59.
60. /**
61. * Cria um novo Relatorio.
62. *
63. * @param conn Conexão com o banco de
dados.
64. * @param parameters Parâmetros a serem
exibidos no relatório.
65. * @param localRelatorio Localização do
relatório.
66. * @throws JRException Caso o relatório
não seja encontrado ou haja
67. * algum problema com ele, uma exceção é
gerada.
68. */
69. public Relatorio(Conexao conn, HashMap parameters,
String localRelatorio) throws JRException{
70.
71. try {
72.
73. // O objeto JasperReport representa o
objeto JasperDesign (arquivo .jrxml) compilado.
74. // Ou seja, o arquivo .jasper
75. JasperReport jr =
(JasperReport)JRLoader.loadObject(localRelatorio);
76.
77. // JasperPrint representa o relatório
gerado.
78. // É criado um JasperPrint a partir de
um JasperReport, contendo o relatório preenchido.
79. this.jasperPrint_ = JasperFillManager.fillReport(jr,
parameters, conn.getConnection());
80.
81. } catch (JRException e) { throw e; }
82. }
83.
84.
85.
86. /**
87. * Cria um novo Relatorio.
88. *
89. * @param conn Conexão com o banco de
dados.
90. * @param sql Expressão SQL (SELECT...)
a ser utilizada para preenchimento do relatório
91. * @param parameters Parâmetros a serem
exibidos no relatório.
92. * @param localRelatorio Localização do
relatório.
93. * @throws JRException Caso o relatório
não seja encontrado ou haja
94. * algum problema com ele, uma exceção é
gerada.
95. * @throws SQLException Caso exista
alguma divergência ou problema com
96. * a Expressão SQL passada como
parâmetro, uma exceção é gerada.
97. */
98. public Relatorio(Conexao conn, String
sql,
99. HashMap
parameters, URL localRelatorio) throws SQLException,
JRException {
100.
101.
try {
102.
103.
// O
objeto JasperReport representa o objeto JasperDesign (arquivo .jrxml)
compilado.
104.
//
Ou seja, o arquivo .jasper
105.
JasperReport
jr = (JasperReport)JRLoader.loadObject(localRelatorio);
106.
107.
//
Resultado da consulta
108.
ResultSet rs =
conn.executeQuery(sql);
109.
110.
//
JRResultSetDataSource é uma implementaçao de JRDataSource, o qual é requerido
111.
//
como parametro para preencher o relatório criado.
112.
//
Ele armazena o dados do ResultSet
113.
JRResultSetDataSource jrRS
= new JRResultSetDataSource(rs);
114.
115.
//
JasperPrint representa o relatório gerado.
116.
// É
criado um JasperPrint a partir de um JasperReport, contendo o
117.
//
relatório preenchido.
118.
this.jasperPrint_ =
JasperFillManager.fillReport(jr, parameters, jrRS);
119.
120.
rs.close();
121.
122.
}
123.
catch (SQLException
e) { throw e; }
124.
catch (JRException
e) { throw e; }
125.
}
126.
127.
128.
129.
/**
130.
*
Cria um novo Relatorio.
131.
*
132.
*
@param conn Conexão com o banco de dados.
133.
*
@param sql Expressão SQL (SELECT...) a ser utilizada para preenchimento do
relatório
134.
*
@param parameters Parâmetros a serem exibidos no relatório.
135.
*
@param localRelatorio Localização do relatório.
136.
*
@throws JRException Caso o relatório não seja encontrado ou haja
137.
*
algum problema com ele, uma exceção é gerada.
138.
*
@throws SQLException Caso exista alguma divergência ou problema com
139.
* a
Expressão SQL passada como parâmetro, uma exceção é gerada.
140.
*/
141.
public Relatorio(Conexao conn, String
sql,
142.
HashMap parameters, String
localRelatorio) throws SQLException,
JRException {
143.
144.
try {
145.
146.
// O
objeto JasperReport representa o objeto JasperDesign (arquivo .jrxml)
compilado.
147.
//
Ou seja, o arquivo .jasper
148.
JasperReport
jr = (JasperReport)JRLoader.loadObject(localRelatorio);
149.
150.
//
Resultado da consulta
151.
ResultSet rs =
conn.executeQuery(sql);
152.
153.
//
JRResultSetDataSource é uma implementaçao de JRDataSource, o qual é requerido
154.
//
como parametro para preencher o relatório criado.
155.
//
Ele armazena o dados do ResultSet
156.
JRResultSetDataSource jrRS
= new JRResultSetDataSource(rs);
157.
158.
//
JasperPrint representa o relatório gerado.
159.
// É
criado um JasperPrint a partir de um JasperReport, contendo o
160.
//
relatório preenchido.
161.
this.jasperPrint_ =
JasperFillManager.fillReport(jr, parameters, jrRS);
162.
163.
rs.close();
164.
165.
}
166.
catch (SQLException
e) { throw e; }
167.
catch (JRException
e) { throw e; }
168.
}
169.
170.
171.
172.
/**
173.
*
Cria um novo Relatorio.
174.
*
175.
*
@param parameters Parâmetros a serem exibidos no relatório.
176.
*
@param localRelatorio Localização do relatório.
177.
*
@throws JRException Caso o relatório não seja encontrado ou haja
178.
*
algum problema com ele, uma exceção é gerada.
179.
*/
180.
public Relatorio(HashMap
parameters, URL localRelatorio) throws JRException
{
181.
182.
try {
183.
184.
// O
objeto JasperReport representa o objeto JasperDesign (arquivo .jrxml)
compilado.
185.
//
Ou seja, o arquivo .jasper
186.
JasperReport
jr = (JasperReport) JRLoader.loadObject(localRelatorio);
187.
188.
//
JREmptyDataSource é uma implementaçao de JRDataSource, o qual é requerido
189.
//
como parametro para preencher o relatório criado.
190.
//
Ele armazena o dados do ResultSet, que, neste caso, é vazio
191.
JREmptyDataSource
jrEDS = new JREmptyDataSource();
192.
193.
//
Jasper Print representa o relatório gerado.
194.
// É
criado um JasperPrint a partir de um JasperReport, contendo o
195.
//
relatório preenchido.
196.
this.jasperPrint_ =
JasperFillManager.fillReport(jr, parameters, jrEDS);
197.
198.
} catch (JRException e) { throw e; }
199.
}
200.
201.
202.
203.
/**
204.
*
Cria um novo Relatorio
205.
*
206.
*
@param parameters Parâmetros a serem exibidos no relatório.
207.
*
@param localRelatorio Localização do relatório.
208.
*
@throws JRException Caso o relatório não seja encontrado ou haja
209.
*
algum problema com ele, uma exceção é gerada.
210.
*/
211.
public Relatorio(HashMap
parameters, String localRelatorio) throws JRException
{
212.
213.
try {
214.
215.
// O
objeto JasperReport representa o objeto JasperDesign (arquivo .jrxml)
compilado.
216.
//
Ou seja, o arquivo .jasper
217.
JasperReport
jr = (JasperReport) JRLoader.loadObject(localRelatorio);
218.
219.
//
JREmptyDataSource é uma implementaçao de JRDataSource, o qual é requerido
220.
//
como parametro para preencher o relatório criado.
221.
//
Ele armazena o dados do ResultSet, que, neste caso, é vazio
222.
JREmptyDataSource
jrEDS = new JREmptyDataSource();
223.
224.
//
Jasper Print representa o relatório gerado.
225.
// É
criado um JasperPrint a partir de um JasperReport, contendo o
226.
//
relatório preenchido.
227.
this.jasperPrint_ =
JasperFillManager.fillReport(jr, parameters, jrEDS);
228.
229.
} catch (JRException e) { throw e; }
230.
}
231.
232.
233.
234.
/**
235.
*
Exibe o relatório na tela.
236.
*/
237.
public void exibirRelatorio() {
238.
//
emite o relatório na tela
239.
//
false indica que a aplicação não será finalizada caso o relatório seja fechado
240.
JasperViewer.viewReport(this.jasperPrint_, false);
241.
}
242.
243.
244.
245.
/**
246.
*
Grava o relatório em um arquivo de formato pdf.
247.
*
248.
*
@param caminhoDestino Caminho onde o arquivo será gravado.
249.
*/
250.
public void exportaParaPdf(String caminhoDestino) throws JRException {
251.
252.
try {
253.
//
Gera o arquivo PDF
254.
JasperExportManager.exportReportToPdfFile(this.jasperPrint_, caminhoDestino);
255.
} catch (JRException e) { throw e; }
256.
257.
}
258.
259.
260.
261.
/**
262.
*
Grava o relatório em um arquivo de formato html.
263.
*
264.
*
@param caminhoDestino Caminho onde o arquivo será gravado.
265.
*/
266.
public void exportaParaHtml(String caminhoDestino) throws JRException {
267.
268.
try {
269.
//
Gera o arquivo PDF
270.
JasperExportManager.exportReportToHtmlFile(this.jasperPrint_, caminhoDestino);
271.
} catch (JRException e) { throw e; }
272.
273.
}
274.
275.
276.
277.
/**
278.
*
Envia o relatório para impressão, exibindo uma caixa de dialogo de impressão ou
não.
279.
*
280.
*
@param exibeCaixaDialogo Boolean indicando se será exibida uma caixa de diálogo
ou não.
281.
*/
282.
public void imprimir(boolean exibeCaixaDialogo) throws JRException {
283.
284.
try {
285.
//
Imprime o relatório
286.
// o
segundo parâmetro indica se existirá uma caixa de dialogo antes ou nao
287.
JasperPrintManager.printReport(this.jasperPrint_, exibeCaixaDialogo);
288.
} catch (JRException e) { throw e; }
289.
290.
}
291.
292.
293.
294.
}
Esse objeto conexão representa uma conexão com o banco de dados, e o método getConn retorna o objeto Connection associado a ele. No caso, você deve implementar o seu, pois não sei qual banco de dados você está utilizando.
Um comentário:
Se você gostou do artigo, compartilha com seu coletas
Postar um comentário