Bom dia caros colegas, mais uma vez estou por aqui precisando de uma focinha de vcs, estou desenvolvendo um relatório para o balanço financeiro usando o ireport, nesse relatório preciso usar alguns sub-relatórios, eu fiz o relatório principal e sub-relatório executei o mesmo dentro da ferramenta do ireport esta tudo ok. A minha duvida é o seguinte para o relatório principal eu passo a query via programação e a do sub-relatório eu tbm preciso passa via programação mas não sei como chamar e passa a query do sub-relatório. Abaixo eu tenho o modelo do método que utilizo para passa a query para o relatório principal como ficaria para passa a query do sub-relatórios e como eu chamaria o mesmo. Esse método eu chamo só o relatório principal mas não sei como chamar e passa o query para o sub-relatorio.
public class RelatBalancoFinanceiro extends GenericDAO {
Connection con = ConnectionFactory.getConnection();
String query;
public void reportBalancoFinanceiro(Date dt_ini, Date dt_fim) {
query = "select * from xxxx";
}
Map parametros = new HashMap();
parametros.put("titulo", titulo);
parametros.put("data", data);
parametros.put("vencimento", vencimento);
JRResultSetDataSource jrRS = new JRResultSetDataSource(con.createStatement().executeQuery(query));
JasperPrint jasperPrint = JasperFillManager.fillReport(
"src/Relatorios/MovdeContas/reportBalancoFinanceiro.jasper",
parametros,
jrRS);
if (!jasperPrint.getPages().isEmpty()) {
JasperViewer jv = new JasperViewer(jasperPrint, false);
jv.setVisible(true);
jv.setTitle("Relatorio Balanco Financeiro"); //Coloca titulo
} else {
JOptionPane.showMessageDialog(null, "Não existe lançamento neste perÃodo",
"Aviso", JOptionPane.INFORMATION_MESSAGE);
}
} catch (JRException ex) {
Logger.getLogger(RelatContasPagar.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Erro ao gerar relatorio",
"Erro", JOptionPane.ERROR);
}
}
}