+ IReport e Jasper

  Olá gente,


             Estou com o seguinte problema: quando mando executar um relatório no iReport blz, ele carrega todos os dados perfeitamente, porém quando mando executar no java, ele só aparece o texto estático.

O código de geração:

    public static byte[] geraRelatorios(String nomeRelatorio, HashMap parameters) {           
        
        byte[] bytes = null;   
        JasperReport reportFile = null;
        
        
        try {   
        
            
            // lendo arquivo jasper   
            reportFile = (JasperReport) JRLoader.loadObject(CAMINHO_RELATORIO+nomeRelatorio+".jasper");   
            try {                   
                bytes = JasperRunManager.runReportToPdf(reportFile, parameters,new JREmptyDataSource());   
                                
            } catch (Exception e) {                   
                return e.toString().getBytes();    
                
            }                                 
               
        } catch (Exception e) {   
            return e.toString().getBytes();   
        }
        return bytes;
    }
           Uso o iReport 3.0.0, e esta aplicação está em ambiente web (esse método é chamado por um servlet).


              Sei que esse jasper e iReport são assuntos já bastantes discutidos mas não consegui resolver esse problema só com o google.....  :)

Obrigado

[color=green]Olá.

Creio que o código abaixo, possa te ajudar.[/color]

HttpServletResponse res;
HashMap<String, String> parametros;
String nomeJasper = new String("");

// Define o Nome do Arquivo Jasper.
nomeJasper=relatorio.jasper

ServletOutputStream servletOutputStream = res.getOutputStream();
    	
File reportFileJasper = new File(getServletConfig().getServletContext() .getRealPath("/reports/"+nomeJasper));
byte[] bytes = null;

try {
	bytes = JasperRunManager.runReportToPdf(reportFileJasper.getPath(), parametros, con);

	res.setContentType("application/pdf");
       	res.setContentLength(bytes.length);
       	servletOutputStream.write(bytes, 0, bytes.length);
       	servletOutputStream.flush();
       	servletOutputStream.close();
} catch (JRException e) {
       	StringWriter stringWriter = new StringWriter();
       	PrintWriter printWriter = new PrintWriter(stringWriter);
       	e.printStackTrace(printWriter);
       	res.setContentType("text/plain");
       	res.getOutputStream().print(stringWriter.toString());
};

[color=green]getServletConfig().getServletContext() .getRealPath(), esta função te retornará a pasta principal de seu projeto web.
A pasta “reports” onde estão todos os meus arquivos jasper, localiza-se juntamente com a pasta WEB-INF, seguindo a seguinte hierarquia:

seuProjetoWeb
– WEB-INF
– reports

Até.[/color]

Isso eu já fiz, tanto que o relatório é aberto normalmente mas SÓ APARECEM OS CAMPOS ESTÁTICOS, o fields que são preenchidos na busca não “carregam”. Os parâmetros são passados normalmente.

Vlw,

Oi,

 Descobri o que aconteceu  :P ..... Sem passar conexão fica difícil conseguir os dados do bd...... :oops:

rsrsrsrsrsrsrs