Boa tarde pessoal!
Estou mais uma vez precisando da ajuda de vocês para resolver um “pequeno” detalhe!
Seguinte, criei uma lista de HashMaps para passar algumas listas para o relatório do ireport. Primeiro para efeito de teste, coloquei apenas um HashMap na minha lista de HashMaps, mas quando gero o relatório aparece o campo correspondente na quantidade de vezes que deveria (de acordo com a quantidade de itens na meu HashMap), porém todos com valor null. 
Não sei se estou sendo claro, mas vou postar o código, estou fazendo dessa maneira:
List<HashMap<String, Object>> lista = new ArrayList<HashMap<String, Object>>();
HashMap<String, Object> param = new HashMap<String, Object>();
for (int i = 0; i < listaNomeCargo.size(); i++) {
param.put("nomeCargo", listaNomeCargo.get(i));
lista.add(param);
// System.out.println("b: "+lista.get(i)); o println mostra que a lista está corretamente preenchida
}
// Enviando as informações para gerar o relatório
HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
HashMap<String, Object> parametros = new HashMap<String, Object>();
parametros.put("custoUnitario", custoUnitario);
parametros.put("qtdHorasComum", qtdHorasComum);
parametros.put("totalComum", totalComum);
parametros.put("qtdHorasExtra", qtdHorasExtra);
parametros.put("totalExtra", totalExtra);
parametros.put("listaNomeCargo", listaNomeCargo);
imprimirListaDados("resumoCertificacao", parametros, response, lista);
public void imprimirDados(String relatorio, HashMap<String, Object> parametros, HttpServletResponse response, List<HashMap<String, Object>> lista) {
try {
JRDataSource jrds = new JRBeanCollectionDataSource(lista);
byte[] arquivo = new byte[0];
String caminho = getDiretorioReal(relatorio + ".jasper");
JasperReport jasper = (JasperReport) JRLoader.loadObject(caminho);
JasperPrint print = JasperFillManager.fillReport(jasper, parametros, jrds);
arquivo = JasperExportManager.exportReportToPdf(print);
response.setContentType("application/pdf");
response.setContentLength(arquivo.length);
OutputStream saida = response.getOutputStream();
saida.write(arquivo, 0, arquivo.length);
saida.flush();
saida.close();
} catch (Exception ex) {
System.err.println("O arquivo não foi gerado corretamente!");
ex.printStackTrace();
}
}
Se alguém souber como ajudar, por favor, responda!! rs
Já pesquisei e não consegui resolver isso…
Obrigado!