Olá pessoal seguinte,
Tenho um servlet que compila o .jasper e gera o pdf:
package br.com.xyz.jasper.util;
import java.io.IOException;
import java.sql.Connection;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.JasperRunManager;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.view.JasperViewer;
/**
* Classe que compila o .jasper gera o pdf e exibe ao client.
* @author Guilherme I. Keller
*/
public class ReportBoleto extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet( HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse ) throws ServletException, IOException {
System.out.println(" vou gerar o relatorio.. ");
//Variaveis locais..
JasperReport jasperReport = null;
byte[] pdfSegundaVia = null;
HttpSession httpSession = httpServletRequest.getSession();
//Obtem o caminho do .jasper
ServletContext servletContext = super.getServletContext();
String caminhoJasper = servletContext.getRealPath("/WEB-INF/reports/boleto_web.jasper");
//Carrega o arquivo com o jasperReport
try {
jasperReport = (JasperReport) JRLoader.loadObject( caminhoJasper );
} catch (JRException jre) {
jre.printStackTrace();
}
//Passa os parametros para o relatorio ( Todos sao pegos da Session. )
// TODO - Testing!
Map parametros = new HashMap();
parametros.put( "aceite", "NÃO" );
parametros.put( "codigoBaixa", "" );
parametros.put( "codigoBoleto", "74891.10622 00061.102299 02014.761098 4 32070000001000" );
parametros.put( "codigoCedente", "0229.02.01476" );
parametros.put( "dataDocumento", "05/07/2006" );
parametros.put( "dataProcessamento", "05/07/2006" );
parametros.put( "dataVencimento", "19/07/2006" );
parametros.put( "desconto", "" );
parametros.put( "especieDocumento", "RC" );
parametros.put( "instrucoes", "" );
parametros.put( "moraMulta", "" );
parametros.put( "nomeCedente", "103 NOME DO CEDENTE" );
parametros.put( "nossoNumero", "06/200061-1" );
parametros.put( "numeroDocumento", "TESTE" );
parametros.put( "outrasDeducoes", "" );
parametros.put( "outrosAcrescimos", "" );
parametros.put( "quantidadeMoeda", "" );
parametros.put( "sacado", "1609 NONONONOONONONON" );
parametros.put( "sacadoAvalista", "" );
parametros.put( "valorCobrado", "" );
parametros.put( "valorDocumento", "10,00" );
parametros.put( "valorMoeda", "" );
//Gera o pdf para exibicao..
try {
pdfSegundaVia = JasperRunManager.runReportToPdf( jasperReport, parametros );
} catch (JRException jre) {
jre.printStackTrace();
}
System.out.println( " caminhoJasper: " + caminhoJasper );
System.out.println( " jasperReport: " + jasperReport );
System.out.println( " parametros: " + parametros );
System.out.println( " pdfSegundaVia: " + pdfSegundaVia );
//Parametros para nao fazer cache e o que será exibido..
httpServletResponse.setContentType( "application/pdf" );
httpServletResponse.setHeader( "Cache-Control", "no-store" );
httpServletResponse.setHeader( "Pragma", "no-cache" );
httpServletResponse.setDateHeader( "Expires", 0 );
//Envia para o navegador o pdf..
ServletOutputStream servletOutputStream = httpServletResponse.getOutputStream();
servletOutputStream.write( pdfSegundaVia );
servletOutputStream.flush();
servletOutputStream.close();
}
}
E no iReport adicionei os parametros: View -> Parameters
( parametros .jpg )
E para mostrar o valor do parametro estou fazendo da seguinte
maneira , na "band" title coloco um Field da seguinte maneira…
( parametro.jpg )
Problema: O report gerado esta completamente em branco,
nao acontece nenhuma exception , absolutamente nada…
Alguem ja passou por isso ?
Valeu Pessoal! :thumbup:
