[RESOLVIDO]Primefaces + JasperReports , relatório é gerado em branco

4 respostas
K

Bom dia caros gujeiros de plantão. Estou desenvolvendo uma aplicação Web com JSF2, Primefaces, Facelet’s e nesse momento comecei a fase de desenvolvimento de relatórios e tenho o seguinte problema,
o meu relatório é gerado em branco, estou tentando gerar em pdf.

Segue meu código:

public void imprimeComprovante(){
		
		HttpServletResponse res = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
	    // Configura o response para suportar o relatório
	    res.setContentType("application/pdf");
	    // response.addHeader("Content-disposition", "inline; filename=\"arquivo.pdf\"");
	    res.addHeader("Content-disposition", "attachment; filename=\"relatorio.pdf\"");
		
		String pathJasper = FacesContext.getCurrentInstance().getExternalContext().getRealPath("/WEB-INF/classes/br/ufu/prograd/siprot/relatorios/requerimento/")+"/";
		
		String path = FacesContext.getCurrentInstance().getExternalContext().getRealPath("/");
		
		//DAOFactory fab_postgres = DAOFactory.getDAOFactory(DAOFactory.POSTGRES);
		
		Map parametros = new HashMap();
		parametros.put("PathRequerimentoSimples", pathJasper+"requerimentoDinfa.jasper");
		parametros.put("matricula", "93280");
		parametros.put("nmAluno", "Anelita Florentino Leal Basílio");
		parametros.put("nmCurso", "Curso de Graduação em Enfermagem : Bacharelado e Licenciatura");
		parametros.put("nrProtocolo", getProtocolo().getNrNumeroProtocolo());
		parametros.put("nmSolicitacao", getSol().getNmSolicitacao());
		
		try {
			
			// Aqui ele cria o relatório
			JasperPrint impressao = JasperFillManager.fillReport(pathJasper+"requerimentoDinfa.jasper", parametros);
			// Grava o relatório em disco em pdf
			JasperExportManager.exportReportToPdfFile(impressao, path+ "/relatorio.pdf");
			// Redireciona para o pdf gerado
			JasperExportManager.exportReportToPdfStream(impressao, res.getOutputStream());
            // Salva o estado da aplicação no contexto do JSF
			FacesContext.getCurrentInstance().getApplication().getStateManager().saveView(FacesContext.getCurrentInstance());
            // Fecha o stream do response
			FacesContext.getCurrentInstance().responseComplete();
			
			res.sendRedirect("relatorio.pdf");
			
		} catch (Exception e) {
			log.error(e.getMessage(),e);
		}
		
	}

Alguém poderia me dar um help?

4 Respostas

V

Mas não esta dando erro de nada?

Olha ai no log que deve estar gerando algum erro.

Att

K

ta não brother, vou postar o jrxml, outra coisa, meu dataSource é vazio, e tem um esquema de quando o Detail estiver vazio, setei para mostrar todas as sessões.

K

Abaixo segue o jrxml:

<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="requerimentoDinfa" language="groovy" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
	<property name="ireport.zoom" value="1.0"/>
	<property name="ireport.x" value="0"/>
	<property name="ireport.y" value="279"/>
	<property name="ireport.background.image" value="/home/tarcisio/workinf/SIPROT/Source Codes/Siprot/WebContent/resources/img/relatorios/LOGO FUNDO.gif"/>
	<property name="ireport.background.image.properties" value="true,true,0.2,519,-566,386,808,16,16"/>
	<parameter name="nrProtocolo" class="java.lang.String"/>
	<parameter name="matricula" class="java.lang.String"/>
	<parameter name="nmCurso" class="java.lang.String"/>
	<parameter name="nmAluno" class="java.lang.String"/>
	<parameter name="nmSolicitacao" class="java.lang.String"/>
	<queryString>
		<![CDATA[]]>
	</queryString>
	<background>
		<band splitType="Stretch"/>
	</background>
	<title>
		<band height="79" splitType="Stretch">
			<staticText>
				<reportElement x="119" y="0" width="317" height="79"/>
				<box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0"/>
				<textElement textAlignment="Center">
					<font fontName="Arial" size="11" isBold="true"/>
				</textElement>
				<text><![CDATA[UNIVERSIDADE FEDERAL DE UBERLÂNDIA
Criada pelo Decreto Lei 762 de 14 de Agosto de 1969
Modificada pela Lei 6.532 de 24 de Maio de 1978

Diretoria de Administração e Controle Acadêmico
Divisão de Administração Escolar
]]></text>
			</staticText>
			<image>
				<reportElement x="20" y="7" width="72" height="72"/>
				<imageExpression><![CDATA["/home/tarcisio/workinf/SIPROT/Source Codes/Siprot/WebContent/resources/img/relatorios/BRAZAO.gif"]]></imageExpression>
			</image>
			<image>
				<reportElement x="509" y="29" width="29" height="20"/>
				<imageExpression><![CDATA["/home/tarcisio/workinf/SIPROT/Source Codes/Siprot/WebContent/resources/img/relatorios/Ufu.jpg"]]></imageExpression>
			</image>
			<image>
				<reportElement x="436" y="29" width="63" height="20"/>
				<imageExpression><![CDATA["/home/tarcisio/workinf/SIPROT/Source Codes/Siprot/WebContent/resources/img/relatorios/logo-prograd.jpg"]]></imageExpression>
			</image>
		</band>
	</title>
	<pageHeader>
		<band height="35" splitType="Stretch"/>
	</pageHeader>
	<columnHeader>
		<band height="382">
			<staticText>
				<reportElement x="4" y="72" width="72" height="20"/>
				<textElement/>
				<text><![CDATA[Protocolo Nro:]]></text>
			</staticText>
			<textField>
				<reportElement x="88" y="72" width="100" height="20"/>
				<textElement>
					<font isUnderline="true"/>
				</textElement>
				<textFieldExpression><![CDATA[$P{nrProtocolo}]]></textFieldExpression>
			</textField>
			<staticText>
				<reportElement x="4" y="10" width="57" height="20"/>
				<textElement/>
				<text><![CDATA[Matrícula:]]></text>
			</staticText>
			<staticText>
				<reportElement x="188" y="10" width="37" height="20"/>
				<textElement/>
				<text><![CDATA[Aluno:]]></text>
			</staticText>
			<staticText>
				<reportElement x="4" y="40" width="57" height="20"/>
				<textElement/>
				<text><![CDATA[Curso:]]></text>
			</staticText>
			<staticText>
				<reportElement x="4" y="102" width="127" height="20"/>
				<textElement/>
				<text><![CDATA[Natureza Requerimento:]]></text>
			</staticText>
			<rectangle>
				<reportElement x="0" y="136" width="555" height="54"/>
			</rectangle>
			<staticText>
				<reportElement x="4" y="136" width="137" height="14"/>
				<textElement/>
				<text><![CDATA[Atestamos que o discente]]></text>
			</staticText>
			<staticText>
				<reportElement x="4" y="161" width="528" height="14"/>
				<textElement/>
				<text><![CDATA[realizou a solicitação descrita neste comprovante.]]></text>
			</staticText>
			<staticText>
				<reportElement x="4" y="356" width="84" height="12"/>
				<textElement>
					<font fontName="Arial"/>
				</textElement>
				<text><![CDATA[Uberlândia/MG,]]></text>
			</staticText>
			<textField>
				<reportElement x="76" y="10" width="100" height="20"/>
				<textElement>
					<font isUnderline="true"/>
				</textElement>
				<textFieldExpression><![CDATA[$P{matricula}]]></textFieldExpression>
			</textField>
			<textField>
				<reportElement x="76" y="40" width="100" height="20"/>
				<textElement>
					<font isUnderline="true"/>
				</textElement>
				<textFieldExpression><![CDATA[$P{nmCurso}]]></textFieldExpression>
			</textField>
			<textField>
				<reportElement x="236" y="10" width="100" height="20"/>
				<textElement>
					<font isUnderline="true"/>
				</textElement>
				<textFieldExpression><![CDATA[$P{nmAluno}]]></textFieldExpression>
			</textField>
			<textField>
				<reportElement x="141" y="102" width="100" height="20"/>
				<textElement>
					<font isUnderline="true"/>
				</textElement>
				<textFieldExpression><![CDATA[$P{nmSolicitacao}]]></textFieldExpression>
			</textField>
			<textField pattern="dd MMMMM yyyy">
				<reportElement x="92" y="356" width="100" height="12"/>
				<textElement/>
				<textFieldExpression><![CDATA[new Date()]]></textFieldExpression>
			</textField>
			<textField>
				<reportElement x="141" y="136" width="100" height="20"/>
				<textElement>
					<font isUnderline="true"/>
				</textElement>
				<textFieldExpression><![CDATA[$P{nmAluno}]]></textFieldExpression>
			</textField>
		</band>
	</columnHeader>
	<detail>
		<band height="131" splitType="Stretch"/>
	</detail>
	<columnFooter>
		<band height="45" splitType="Stretch"/>
	</columnFooter>
	<pageFooter>
		<band height="54" splitType="Stretch"/>
	</pageFooter>
	<summary>
		<band height="42" splitType="Stretch"/>
	</summary>
</jasperReport>
K

Dei um clean na IDE e o relatório funcionou. Cada vez que eu edito o jrxml eu o salvo dentro da aplicação, depois disso eu dou um refresh mas aparentemente não foi suficiente. Obrigado pela atenção de todos.

Criado 27 de dezembro de 2011
Ultima resposta 27 de dez. de 2011
Respostas 4
Participantes 2