SEGUE O CODIGO DA MINHA APLICAÇÃO ESTA RETORNANDO NULL, NO OBJETO
//separa a pesquisa do total encontrado
//possibilitando a utilização também no relatório
public List<?> getRelatorioPesqPoi(){
Map<String, Object> params = new HashMap<String, Object>();
params.put("data1", data1);
params.put("data2", data2);
String query = "SELECT p FROM Poi p WHERE p.dabertura BETWEEN :data1 AND :data2";
return poiDao.listPesqParam(query,params);
}
//inicio
// executa o relatório através de um JRBeanCollectionDataSource
public static void executarRelatorio1(String caminhoRelatorio, Map<String, Object> parametros, String nomeRel,
JRBeanCollectionDataSource fonteDados) throws ParseException, JRException {
FacesContext context = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
// pega o caminho do arquivo .jasper da aplicação
InputStream reportStream = context.getExternalContext().getResourceAsStream(caminhoRelatorio);
/*
* //envia a resposta com o MIME Type
* if(tipoFormatoRelatorio.equals(TipoFormatoRelatorio.ACROBAT_PDF)){
* response.setContentType("application/pdf"); }else
* if(tipoFormatoRelatorio.equals(TipoFormatoRelatorio.PAGINA_HTML)){
* response.setContentType("application/html"); }
*/
response.setHeader("Content-Disposition", "attachment; filename=" + nomeRel + ".pdf");
// response.setContentType(“application/download”);
response.setContentType(“application/pdf”);
response.setHeader(“Pragma”, “no-cache”);
try {
ServletOutputStream servletOutputStream = response.getOutputStream();
// envia parametros para o relatório
if (parametros == null) {
parametros = new HashMap<String, Object>();
}
// envia para o navegador o PDF gerado
JasperRunManager.runReportToPdfStream(reportStream, servletOutputStream, parametros, fonteDados);
servletOutputStream.flush();
servletOutputStream.close();
} catch (JRException e) {
e.printStackTrace();
//throw new Exception("Um erro ocorreu quando o relatório estava sendo executado.");
} catch (IOException e) {
e.printStackTrace();
//throw new JRException(ERRO_MENSAGEM_REPORT);
} finally {
context.responseComplete();
}
}
@SuppressWarnings( { "unchecked" })
public void executarRelatorio(ActionEvent action) throws ParseException, Exception {
List dados = new ArrayList();
Map record = null;
for (Iterator<?> iterator = getRelatorioPesqPoi().iterator();
iterator.hasNext();) {
Poi o = (Poi) iterator.next();
record = new HashMap();
// coloca em um Map cada um dos campos criados
// manualmente pelo relatorio
record.put("id",Long.valueOf(o.getId()));
record.put("cargo", o.getCargo());
// adiciona o List dados
dados.add(record);
}
// cria uma fonte de dados para coleções
JRBeanCollectionDataSource fonteDados = new JRBeanCollectionDataSource(dados);
Map<String, Object> parametros = new HashMap<String, Object>();
// parametros.put("PARAMETRO_TITULO_RELATORIO",
// "RELATÓRIO DE UNIDADES");
executarRelatorio1("/relatorios/relatorio.jasper", parametros, null, fonteDados);
}