não.
eu passo os parâmetros dos subreports para o relatório principal.
os subreports coloquei na aba details do relatório principal.
estou chamando o viewer assim:
String master = “C:\Java\iReport-3.0.0\relatorios\Contrato_.jasper”;
String coobrigados = “C:\Java\iReport-3.0.0\relatorios\Coobrigados.jasper”;
String intervenientes = “C:\Java\iReport-3.0.0\relatorios\Intervenientes.jasper”;
String produtos = “C:\Java\iReport-3.0.0\relatorios\Produtos.jasper”;
String titulos = “C:\Java\iReport-3.0.0\relatorios\Vencimentos.jasper”;
Map param = new HashMap();
param.put("pathSubRelCoobrigados", coobrigados );
param.put("pathSubRelProdutos", produtos );
param.put("pathSubRelIntervenientes", intervenientes );
param.put("pathSubRelVencimentos", titulos );
ContratoDataSource cds = new ContratoDataSource(campanha);
JasperPrint print = JasperFillManager.fillReport(
master,
param,
cds );
JasperViewer jasper = new JasperViewer( print, true );
jasper.setVisible( true );
neste “ContratoDataSource”, dentro do método “getFieldValue(JRField field)”, faço a chamada para os dados dos subreports assim:
…
else if ( “ListaVencimentos”.equals( field.getName() ) ) {
valor = new TitulosDataSource( campanha.getLstTitulos() );
}
else if ( “ListaProdutos”.equals( field.getName() ) ) {
valor = new ProdutosDataSource( campanha.getLstProdutos() );
}
else if ( “ListaCoobrigados”.equals( field.getName() ) ) {
valor = new CoobrigadosDataSource( campanha.getLstCoobrigados() );
}
else if ( “ListaIntervenientes”.equals( field.getName() ) ) {
valor = new IntervenientesDataSource( campanha.getLstIntervenientes() );
}
…
o estranho é q somente o primeiro subreport mostra os dados…
se eu trocar de posição, o que não mostrava passa a mostrar os valores…