JSF + iReport

5 respostas
ricardocomp

Olá pessoal,
eu já procurei em tudo qto é canto um exemplo completo
de geração de relatório usando o JSF, mas todos os exemplos que eu encontrei
não consegui gerar o relatório. No meu projeto a única coisa que esta
faltando é chamar o relatório que eu já criei através do JSF para exibir o pdf
no browser, será que alguém poderia me mostrar um exemplo simples e completo
de como chamar o relatório através do JSF?

[]'s.

5 Respostas

D

Segue um exemplo:

No JSP:

<h:form>
                <t:commandLink target="_blank" action="#{RegistradaMB.printCartaPDF}" value="PDF" />
            </h:form>

No ManagedBean:

/** iReport */
    public String printCartaPDF() {
        try {
            InputStream isReport = this.getClass().getResourceAsStream("/br/com/banstur/reservas/resources/jr/rptCartaExtraBloqueio.jasper");
            JasperReport jrReport = (JasperReport) JRLoader.loadObject(isReport);
            Map parameters = new HashMap();
            parameters.put("LOGO_EMPRESA", JSFHelper.getRealPath());
            parameters.put("HOTEL", this.getCurrentHotel());
            byte[] bytes = JasperRunManager.runReportToPdf(jrReport, parameters, new JREmptyDataSource());
            HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
            response.setContentType("application/pdf");
            response.setContentLength(bytes.length);
            ServletOutputStream outputStream = response.getOutputStream();
            outputStream.write(bytes, 0, bytes.length);
            outputStream.flush();
            outputStream.close();
            FacesContext.getCurrentInstance().responseComplete();
            return "go_con_hotel_roomlist";
        } catch (Exception e) {
            String msgError = "Erro ocorrido ao gerar relatorio(pdf) - rptCartaExtraBloqueio.jasper";
            JSFHelper.setSessionAttribute("session.SystemException", new SystemException(msgError, e));
            return "go_error_page";
        }
    }

Tente adaptar…

walacy
protected void exportarParaPDF(String pathRelatorio, JRDataSource ds,
			Map&lt;String, Object&gt; params) throws IOException, JRException,
			DocumentException {

		params.put("SUBREPORT_DIR", getRealPath());

		FacesContext context = getFacesContext();
		HttpServletResponse response = (HttpServletResponse) context
				.getExternalContext().getResponse();

		ServletOutputStream servletOutputStream = response.getOutputStream();
		InputStream reportStream = context.getExternalContext()
				.getResourceAsStream(pathRelatorio);

		JasperRunManager.runReportToPdfStream(reportStream,
				servletOutputStream, params, ds);
		reportStream.close();

		response.setContentType("application/pdf");
		response.setHeader("Content-Disposition",
				"attachment;filename=relatorio.pdf;");
		servletOutputStream.flush();
		servletOutputStream.close();
		context.responseComplete();
	}

Já tentou isso…

ricardocomp

Jóia walacy e demys?
Será que não teria como um de vc’s dois me mandar o projeto completo
do exemplo postado aqui no fórum, fazendo o favor?

vou deixar o meu e-mail:[email removido],

se um de vocês dois puder me fazer esse favor. :lol:

[]'s.

walacy

quando chegar em casa, eu tento… (sexta-feira é complicado) hehehehe

ricardocomp

Blz walacy,
mas será que tem como vc me enviar amanhã então fazendo o favor?

[]'s.

Criado 19 de fevereiro de 2010
Ultima resposta 19 de fev. de 2010
Respostas 5
Participantes 3