|
Andre Luiz,
Essa solu��o de compilar o relat�rio pela aplica��o tem um
custo grande de performance, al�m
de gerar a dependencia de ter na m�quina, onde a
aplica��o esteja rodando, o JAVAC, ou seja,
ter uma instala��o completa do J2sdk, n�o bastando somente
o JRE.
Esta compila��o � muito pesada e desnecess�ria. Basta
somente o arquivo ser compilado,
ap�s a cria��o pelo IReport, uma �nica vez.
Abra�os,
Gilvan.
----- Original Message -----
Sent: Wednesday, April 27, 2005 5:23
PM
Subject: Re: [JUG-Petro] iReport, como
chamar o .jasper ?
Anderson,
Tamb�m passei por
diversos problemas ao tentar fazer relatorios da forma como voce
gostaria.
Eu lembro que tive que
ir baixando diversos arquivos .jar, conforme iam aparecendo os erros.
Eu uso as seguintes bibliotecas:
commons-beanutils.jar; commons-collections-3.1.jar; commons-collections-testframework-3.1.jar;
commons-digester.jar; commons-logging.jar; itext-1.02b.jar; jasperreports-0.6.0.jar; xerces.jar
(Lembrando que
os imports do jasper 0.6.0 diferem dos imports da versao 0.5.3 e
anteriores.)
A solu��o que adotei
foi a seguinte: pego o layout do servidor (.xml), compilo e gero um arquivo
jasper compilado na maquina dos usuarios (.jasper). Depois, pego esse arquivo,
gero um pdf e o executo na maquina do usuario, considerando o ambiente
windows.
Ei-la:
public void trataImprimeUsuario()
{ //caminho fisico dos arquivos compilados (.jasper)
String filepath = "C:\\scal\\relatorios\\"; String xmlname = "RelScal_CadastrarUsuario.xml";
String jaspername =
"RelScal_CadastrarUsuario.jasper"; String pdfname = "RelScal_CadastrarUsuario.pdf";
String xmlfilename = filepath +
xmlname; String
jasperfilename = filepath+jaspername; String pdffilename = filepath + pdfname; File xmlReportFile = new File(xmlfilename);
File jasperReportFile = new
File(jasperfilename);
File pdfReportFile = new File(pdffilename); usuario = new Usuario(); //* Seta os atributos do objeto criado setaAtributos(); dbUsuario = new DBUsuario();
AcessoBancoTabAux acessoBanco = new
AcessoBancoTabAux();
campos =
dbUsuario.buscaID(usuario);
Map
parameters = new HashMap();
//atribui o parametro a ser passado, em substitui��o a variavel
$P{PARAMETRO} criada no iReport
parameters.put("IDUSUARIO",new
Integer(campos.get(0).toString())); try {
if (!(xmlReportFile.exists())) {
mensagem.exibirMsgErro(telaAnt, "\nO arquivo RelScal_CadastrarUsuario.xml n�o
foi encontrado no diret�rio\n"+filepath); } else { JasperDesign jasperDesign =
JasperManager.loadXmlDesign(xmlfilename);
JasperManager.compileReportToFile(jasperDesign, jasperfilename);
if (!(acessoBanco.conecta())) {
mensagem.exibirMsgErro(telaAnt, "\nN�o foi poss�vel estabelecer uma conex�o
com o banco de dados.");
} else { if
(!(jasperReportFile.exists())) {
mensagem.exibirMsgErro(telaAnt, "\nO arquivo RelScal_CadastrarUsuario.jasper
n�o foi gerado ou n�o existe no diret�rio\n"+filepath);
} else {
JasperPrint jasperPrint =
JasperManager.fillReport(jasperfilename, parameters, acessoBanco.con);
JasperExportManager.exportReportToPdfFile(jasperPrint,pdffilename);
}
} if
(!(pdfReportFile.exists())) {
mensagem.exibirMsgErro(telaAnt, "\nO arquivo RelScal_CadastrarUsuario.pdf n�o
existe no diret�rio\n"+filepath); } else {
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler
\""+pdffilename+"\""); } }
}catch (Exception
e) {
e.printStackTrace(); } }
Atenciosamente,
||_ _||
(
@ @ ) +----------------oOOo-(_)-oOOo-+ | Andre Luiz Monteiro
da Costa | | Analista de Sistemas-CGM/CIN | |
[EMAIL PROTECTED]
| +-------------------------Oooo-+
oooO ( )
( ) ) /
\ (
(_/
\_)
|
| "Anderson Luis Vaz"
<[EMAIL PROTECTED]> Enviado Por: [email protected]
27/04/2005 15:57
Favor responder a jug-petropolis
|
Para:
<[email protected]> cc:
Assunto: Re: [JUG-Petro]
iReport, como chamar o .jasper ?
|
Ol� Gilvan e demais
amigos da lista, eu tentei criar uma classe a partir de um exemplo que o
Gilvan publicou mas est� dando o erro : "error loading object from
InputStream". A parte
da classe que executa est� abaixo, se alguem puder me ajudar eu
agrade�o. O arquivo Relatorios_Turmas.jasper fica na mesma pasta do
programa e consigo abrir o relatorio de dentro do iReport. Ser� que fiz
alguma coisa errada Gilvan? Grato, Anderson. Londrina PR .//outros imports . . import
java.util.HashMap; import
net.sf.jasperreports.engine.JasperPrint; import
net.sf.jasperreports.engine.JasperManager; import net.sf.jasperreports.view.JasperViewer; import net.sf.jasperreports.engine.JasperReport; import java.net.URL; public class RelatTurmas extends
JFrame//JInternalFrame { //outras vari�veis . . private Connection con; private String url="", usuario="",
senha=""; //construtor . . . //m�todo que executa o relat�rio public void ok()
{
try
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection(url,usuario,senha); Statement
st=con.createStatement(); ResultSet
rs=st.executeQuery("SELECT * FROM TURMA"); String
reportFile="Relatorio_Turmas.jasper"; HashMap parametros=new
HashMap();
URL
urlFile=getClass().getClassLoader().getResource(reportFile);
if(urlFile==null)
throw new Exception("Arquivo "+reportFile+" n�o
localizado"); JasperReport
report=JasperManager.loadReport(urlFile.openStream()); JasperPrint
impressao=JasperManager.fillReport(report,parametros,con);
JasperViewer
viewer=new JasperViewer(impressao,false);
viewer.setTitle("Relat�rio de Turmas");
viewer.setBounds(0,0,400,300); viewer.show();
st.close();
con.close(); }
catch(Exception e)
{
System.out.println(e);
}
-----
Original Message ----- From: Gilvan
Souza To: [EMAIL PROTECTED]
Sent: Monday, April 25, 2005 3:12
PM Subject: Re: [JUG-Petro] iReport, como
chamar o .jasper ?
Um exemplo de c�digo que
eu uso. ... ...
String reportFile = "relatorio.jasper"; Map parametros = new HashMap(); JRDataSource dataSource = new MyDatasource(); URL urlFile =
getClass().getClassLoader().getResource(reportFile); if (urlFile == null) { throw new
Exception("Relat�rio de nome " + reportFile + " n�o foi
localizado"); } JasperReport
report = JasperManager.loadReport(urlFile.openStream());
JasperPrint impressao =
JasperManager.fillReport(report, parametrosRelatorio,
dataSource); JasperViewer viewer = new
JasperViewer(impressao, false); viewer.setTitle("Relat�rio..."); viewer.setBounds(0, 0, 400, 300); viewer.show(); ... ... Abra�os, Gilvan.
Anderson Luis Vaz
<[EMAIL PROTECTED]> wrote: Caros amigos, se alguem da lista puder me ajudar eu agrade�o
antecipadamente. Eu estou fazendo um projeto para a faculdade em java
com : iReport, JCreator e banco de dados Access, eu fiz um relat�rio com
o iReport/Jasper e consigo chama-lo de dentro do iReport, mas
quando tento chama-lo atrav�s de uma classe da "erro na carga do
arquivo jasper". Anderson Vaz, de Londrina PR
Yahoo! Acesso Gr�tis:
Internet r�pida e gr�tis. Instale o discador agora!
Yahoo! Groups Links
Yahoo! Groups Links
|