Fiz a seguinte estrutura abaixo, porem quando executo o metodo abaixo aparece os registro, porem o conteudo do detail aparece Null(preview page), porem se dou um preview no ireport aparece no anexo (preview ireport).
Anexei tambem o conteudo “dados”
Alguem pode me dar uma luz…?
public void imprimiratendrealizados() throws ParseException, IOException, JRException {
FacesContext context = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
InputStream reportStream = context.getExternalContext()
.getResourceAsStream("/relatorios/guiaatendrealizadosnovo.jasper");
List<Object> objectList = servico.relatorioendrealizados("");
Iterator iterator = objectList.iterator();
Map record = null;
List dados = new ArrayList();
while (iterator.hasNext()) {
Object[] obj = (Object[]) iterator.next();
record = new HashMap();
record.put("codemp", (String) obj[1]);
dados.add(record);
}
JRBeanCollectionDataSource fonteDados = new JRBeanCollectionDataSource(dados);
Map<String, Object> map = new HashMap<String, Object>();
HttpSession sessao = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
File logoFile = new File(sessao.getServletContext().getRealPath(System.getProperty("file.separator") + "resources" + System.getProperty("file.separator") + "images" + System.getProperty("file.separator") + "logo_unimedfb1.jpg"));
String caminho = logoFile.getAbsolutePath();
InputStream inputStreamDaImagem = null;
try {
File file = new File(caminho);
if (file.exists())//testa se imagem existe
{
inputStreamDaImagem = new FileInputStream(file);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
/////////////////// carrega o logo do relatorio
map.put("nroans", "ANS - n.º " + (String) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("codans"));
map.put("caminhologo", caminho);
map.put("empresa", (String) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("cidade"));
ServicoUtils.startrelatorio(reportStream, response, map, fonteDados);
}
select no ireport :
SELECT t0.codadministradora, t0.codemp, t4.codguia, t2.codbenef, t2.nomeusu, t3.dataini, t3.status,
t5.codproc, t4.qtdexec
FROM cadusu t2 LEFT OUTER JOIN cadcont t1 ON (t1.codtit = t2.codtit), tabproc t5, itensguia t4, cadguia t3, cademp t0 WHERE ((1 = 1) AND ((((t3.codguia = t4.codguia) AND (t2.codbenef = t3.codbenef)) AND ((t0.codemp = t1.codemp) AND (t0.codadministradora = t1.codadministradora))) AND ((t5.codproc = t4.codproc) AND ((t5.seqproc = t4.seqproc) AND (t5.codtab = t4.codtab))))) ORDER BY t0.codadministradora ASC, t0.codemp ASC
select do daoo:
String query = "select codcont.cademp.cadempPK.codadministradora,codcont.cademp.cadempPK.codemp,i.itensguiaPK.codguia "
+ " ,c.codbenef.codbenef, c.codbenef.nomeusu, c.dataini, c.status, i.tabproc.tabprocPK.codproc, i.qtdexec "
+ " from Itensguia i left join i.cadguia c "
+ " left join i.cadguia.codbenef.codtit codcont "
+ " where 1=1";
query = query + "order by codcont.cademp.cadempPK.codadministradora,codcont.cademp.cadempPK.codemp";