Galera,
Tenho um relatório que chama um subrelatorio, que por sua vez chama um subrelatório que chama outro subrelatório. Dá certo até o 2º nível, do 3º em diante o subrelatóri vêm em branco. Postarei meu código na esperança de algum guru poder me ajudar:
private void abreRelatorioGeral() throws JRException, Exception {
try {
InputStream pathRelGeral = getClass().getClassLoader().getResourceAsStream("RelatorioGeral.jasper");
InputStream pathRelTempLivre = getClass().getClassLoader().getResourceAsStream("RelatorioGeral_subreportTempoLivre.jasper");
// TEMPO LIVRE
Map<String, Object> paramsRelTempoLivre = new HashMap<String, Object>();
paramsRelTempoLivre.put("TempoLivre", jLabelTempoDuracao.getText());
paramsRelTempoLivre.put("Percent", jLabelTotalPercentual.getText());
// PAUSA RESUMO
Map<String, Object> paramsRelPausaRes = new HashMap<String, Object>();
paramsRelPausaRes.put("relTempoLivre", pathRelTempLivre);
// PAUSA DETALHE
PausaDetalheTableModel tmPausaDetalhe = (PausaDetalheTableModel) jXTablePausasDetalhe.getModel();
tmPausaDetalhe.setColumnName(0,"Motivo");
tmPausaDetalhe.setColumnName(1,"DataI");
tmPausaDetalhe.setColumnName(2,"HoraI");
tmPausaDetalhe.setColumnName(3,"DataT");
tmPausaDetalhe.setColumnName(4,"HoraT");
tmPausaDetalhe.setColumnName(5,"Duracao");
Map<String, Object> paramsRelPausaDet = new HashMap<String, Object>();
paramsRelPausaDet.put("relPausaResumo", new JRTableModelDataSource(jXTablePausasResumo.getModel()));
// LOGIN/LOGOUT
AgentesLoginLogoutTableModel tmLoginLogout = (AgentesLoginLogoutTableModel) jXTableLoginLogout.getModel();
tmLoginLogout.setColumnName(0,"Data1");
tmLoginLogout.setColumnName(1,"Hora1");
tmLoginLogout.setColumnName(2,"Data2");
tmLoginLogout.setColumnName(3,"Hora2");
tmLoginLogout.setColumnName(4,"Duração");
Map<String, Object> paramsRelGeral = new HashMap<String, Object>();
paramsRelGeral.put("agente", jComboBoxAgente.getSelectedItem().toString());
paramsRelGeral.put("dataini", dataini);
paramsRelGeral.put("datafim", datafim);
paramsRelGeral.put("relPausaDet", new JRTableModelDataSource(jXTablePausasDetalhe.getModel()));
try {
JasperPrint jasperPrintRelGeral = JasperFillManager.fillReport(pathRelGeral, paramsRelGeral, new JRTableModelDataSource(jXTableLoginLogout.getModel()));
JasperViewer.viewReport(jasperPrintRelGeral, false);
} catch (JRException ex) {
ex.printStackTrace();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
O de LOGIN/LOGOUT chama o de PAUSA DETALHE correntamente. O de PAUSA DETALHE não consegue chamar o de PAUSA RESUMO e nem o PAUSA RESUMO consegue chamar o de TEMPO LIVRE.
Lembrando que meus relatórios não recebem os dados de uma conexão de banco de dados e sim de tabelas da minha view.
No ireport criei os parâmetros, já conferi, já refiz e nada. O que não entendendo é que até o primeiro subrelatório funciona. Já a partir do subrelatorio do primeiro subrelatório não funciona. Aparece os títulos, mas os dados ficam em branco.
Outra questão é que não é lançado nehum erro.
Espero muito poder ser ajudado, afinal tô quebrando a cabeça tem umas 2 semanas.
Abraços 