iReport + JasperReport

3 respostas
L

Bom dia a todos…
Meu problema é o seguinte:
Ao chamar o relatório através de uma pg .jsp, o tomcat está me retornando o seguinte erro:

org.apache.jasper.JasperException: The document has no pages.

No iReport, eu declarei os seguintes parâmetros:
leonardo,leonardo1 e leonardo2.
No details, está assim:
$P{leonardo},$P{leonardo1} e $P{leonardo2}.

Minha aplicação está assim:

<%@page language="java" import="javax.mail.*, javax.mail.internet.*,java.io.*,java.text.*,java.util.*,java.sql.*,java.lang.*,javax.*,java.text.DecimalFormat,java.text.Format,java.text.NumberFormat,leo.*" %>

<%@ page import="com.lowagie.text.*"%>
<%@ page import="dori.jasper.engine.*" %>
<%@ page import="dori.jasper.engine.util.*" %>
<%@ page import="dori.jasper.engine.export.*" %>
<%@ page import="dori.jasper.engine.JRException.*" %>
<%@ page import="dori.jasper.engine.JasperRunManager.*"%>
<%@ page import="java.sql.DriverManager.*"%>
<%@ page import="javax.*"%>


<%

	          String dsn1= "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:/hci.mdb";
			  String usuario1 = "";
			  String senha1   = "";
			  String sql1     = "";
			  Connection conn1 = null; 



			  try {
			    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			  }
			  catch(java.lang.ClassNotFoundException e) {
			    System.err.print("ClassNotFoundException: ");
			    System.err.println(e.getMessage());
			  }


			  try {
			    conn1 = DriverManager.getConnection("jdbc:odbc:BancoInternet", "", "");
			  }
			  catch (Exception e) {
			    e.printStackTrace();
			    System.err.print(e.getClass().getName());
			    System.err.println(e.getMessage());
			  }


			       try {
				     conn1.close();
				   }
				   catch (Exception e) {
				     System.out.println("Connection close failed");
				     System.out.println(e.toString());
			}




	String leonardo="asasasas";
	String leonardo1="klklkl";
	String leonardo2="kjlk";

	File reportFile = new File(application.getRealPath("pedidos.jasper"));

	JasperReport jasperReport = (JasperReport)JRLoader.loadObject(reportFile.getPath());
	Map parameters = new HashMap();
	parameters.put("ReportTitle", "Address Report");
	parameters.put("BaseDir", reportFile.getParentFile());
	parameters.put("leonardowqwq", leonardo);
	parameters.put("leonardo1qwqwqw", leonardo1);
	parameters.put("leonardo2qwqwqwq", leonardo2);
    JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,parameters,conn1);

	byte[] bytes =
		JasperRunManager.runReportToPdf(
			reportFile.getPath(),
			parameters,
			conn1);

	response.setContentType("application/pdf");
	response.setContentLength(bytes.length);
	ServletOutputStream ouputStream = response.getOutputStream();
	ouputStream.write(bytes, 0, bytes.length);
	ouputStream.flush();
	ouputStream.close();
%>
Grato...

3 Respostas

W

Verifica se o SQL do seu IReport tá retornando algum registro…

L

Tá beleza, estou utilizando a opção somente compilar, pois não estou mexendo com banco de dados…

thiagorani

Voce esta usando errado a referencia dos parametros.

Esta passando parameters.put(“leonardowqwq”, leonardo); e tentando recuperar $P{leonardo}???
Isso esta errado, teria que ser $P{leonardowqwq}

Arruma ae!

Criado 26 de janeiro de 2004
Ultima resposta 26 de jan. de 2004
Respostas 3
Participantes 3