Galera,
Desculpem o desabafo mas já tô entrando em desespero. Seguinte tenho um RelPrincipal que chama Sub01. O Sub01 chama o Sub02 e o Sub02 chama o Sub03. Porém funciona apenas o RelPrincipal chamando o Sub01. Os demais, aparecem os títulos mas ficam em branco.
Os dados eu estou buscando da minha view, de alguns objetos JTable. Não utilizo conexão com BD, pois recebo os dados a partir de uma operação webservice.
Vejam meu código:
private void abreRelatorioGeral() throws JRException, Exception {
try {
InputStream pathRelGeral = getClass().getClassLoader().getResourceAsStream("RelatorioGeral.jasper");
InputStream pathRelTempLivre = getClass().getClassLoader().getResourceAsStream("RelatorioGeral_subreportTempoLivre.jasper");
// TEMPO LIVRE (Terceiro e último subrelatorio)
// Este relatorio diferentemente dos outros não recebe os dados de uma tabela
Map<String, Object> paramsRelTempoLivre = new HashMap<String, Object>();
paramsRelTempoLivre.put("TempoLivre", jLabelTempoDuracao.getText());
paramsRelTempoLivre.put("Percent", jLabelTotalPercentual.getText());
// PAUSA RESUMO (Segundo subrelatorio)
Map<String, Object> paramsRelPausaRes = new HashMap<String, Object>();
paramsRelPausaRes.put("relTempoLivre", pathRelTempLivre);
// PAUSA DETALHE (Primeiro subrelatorio)
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 (Relatório Principal)
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();
}
}
Segue em anexo os jrxml dos relatórios. O último não deu para enviar pois o GUJ só permite anexar 3 arquivos. Mas de qualquer forma, se alguém puder ajudar, ficarei imensamente grato.
Obrigado!