Problema com relatorio iReport, [ gera pdf em branco ]

4 respostas
mateusprado

pessoal, to com um problema ao pegar o relatorio gerado pelo ireport.

esse é meu main:

public class TestaRelatorio {

	public static JasperPrint loadReport(String arquivo) throws JRException {

		InputStream is = TestaRelatorio.class
				.getResourceAsStream("/relatorios/" + "DANFE" + ".jrxml");

		JasperReport report = JasperCompileManager.compileReport(is);
		Session s = HibernateUtil.getSession();
		Connection con = s.connection();
		JasperPrint print = JasperFillManager.fillReport(report, new HashMap(),
				con);

		s.close();

		return print;

	}

	public static void main(String[] args) throws JRException {
		JasperExportManager.exportReportToPdfFile(TestaRelatorio
				.loadReport("DANFE"), "DANFE.pdf");
	}
}

não da erro nenhum, o problema é que quando abro o pdf gerado, está em branco.

alguem pode me ajudar?

valew desde já.

4 Respostas

A

Estou com o mesmo problema!

Conseguiu resolver? :?:

TheKill

vc não ta mandando nada para o relatório.

quer q ele descubra na bolinha mágica oque quer q apareça? LOL
mandar sómente a conn nao resolve…

mande o query ou collection ou seja la oque for que tenha os dados do relatorio…

A
import controller.ControllerInterface;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import model.dao.ConnectionManager;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;

public class ImprimirSolicitacao implements ControllerInterface {
    public String gerarPDF(HttpServletRequest request, HttpServletResponse response) {

        Connection con = ConnectionManager.getConexao();
        Connection con2 = ConnectionManager.getConexaoAdm();

        PrintWriter out = null;
        String caminho = "Financeiro/Solicitacao/PDF/";

        String query = "SELECT c.CodSolicitacao,c.Ano,CONVERT(CHAR, c.Data, 103) AS Data,"
                + "FROM SolicitacaoCompra c ";

        HashMap parametros = new HashMap();
        parametros.put("SQL", query);
        parametros.put("conexao", con2);
        parametros.put("SUBREPORT_DIR", caminho);

        try {
            out = response.getWriter();
            JasperReport jasperReport = JasperManager.loadReport(request.getServletContext().getRealPath(caminho + "SolicitacaoCompra.jasper"));
            JasperPrint jasperPrint = JasperManager.fillReport(jasperReport, parametros, con);
            JasperExportManager.exportReportToPdfFile(jasperPrint, request.getServletContext().getRealPath(caminho + "SolicitacaoCompra.pdf"));
            out.println(request.getServletContext().getRealPath(caminho + "SolicitacaoCompra.jasper"));

        } catch (IOException ex) {
            Logger.getLogger(ImprimirSolicitacao.class.getName()).log(Level.SEVERE, null, ex);
        } catch (JRException ex) {
            Logger.getLogger(ImprimirSolicitacao.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            out.close();
        }
        return caminho + "SolicitacaoCompra.pdf";
    }

    public String call(HttpServletRequest request, HttpServletResponse response) {
        return gerarPDF(request, response);
    }
}
TheKill

comenta isso:

out = response.getWriter();

Criado 23 de junho de 2008
Ultima resposta 28 de mai. de 2010
Respostas 4
Participantes 3