IReport - Mais de 1 Collection via DataSource

Bom dia pessoal!

To com um problema no IReport agora e gostaria de saber se alguem pode me ajudar.

Estou usando o IReport 3.5.2, que possui suporte a múltiplas abas Detail. O conteúdo que é preenchido nas abas Detail é originado por uma classe Java onde eu criei um JRBeanCollectionDataSource.

Em resumo, esta é a parte onde o datasource é preenchido e enviado ao relatório:

JRDataSource jrds = new JRBeanCollectionDataSource(listaAtividadesTotal);
JasperPrint impressao = JasperFillManager.fillReport(new BufferedInputStream(new FileInputStream(caminhoJasper)), paramMap, jrds);
					if (impressao != null && file != null)
					{
						JasperExportManager.exportReportToPdfFile(impressao, file.getAbsolutePath());
						return file;
					}

Até aí tudo bem, a Collection “listaAtividadesTotal” é passada ao relatório via datasource.

O problema é o seguinte. Eu descobri agora que vou precisar de OUTRA Collection e tbm passá-la ao relatório. O problema é que essa outra Collection é totalmente diferente da primeira, entao neste caso eu precisaria enviar OUTRO datasource ao IReport… que será preenchido em outra aba Detail.

Alguem sabe se da pra fazer isso? Em síntese, preciso enviar dois JRDataSource diferentes ao meu relatório.
Eu não gostaria de usar subreports…

Obrigado!!!

Boa tarde.

Não sei se será possivel sem a utilização de subRelatório.

Oque você pode tentar fazer é passar outro JRBeanCollectionDataSource como parameter e tentar recuperar no jasper.

Eu recomendaria e talvez facilitaria a implementacao, vc utilizar 1 relatório principal, que contem chamada as 2 subrelatorios simplesmente.
Vc passaria atraves do map 2 collections, as que vc ira usar.
Na propiedade de cada subrelatorio, vc selecionaria o combobox com a opção “Usar um Datasource” colocaria a seguinte expressões.
new JRBeanCollectionDataSource($F{listaRelatorio1})
new JRBeanCollectionDataSource($F{listaRelatorio2})

Quqalquer coisa adiciona ae no msn, rdmardegam@hotmail.com.

Fala se funciono depois, abraço

Abraço.

Obrigado, estou indo viajar agora, pela segunda feira de manhã vou fazer isso.

Valeu!

Só pra atualizar. Consegui fazer utilizando SubReports mesmo.

Adicionei um subreport, escolhi a opcao “Usar um DataSource” e passei new JRBeanCollectionDataSource($P{lista}) na Expressão do DataSource.
Depois eu fui nas propriedades do parâmetro ($P{lista}) e setei pra java.util.Collection.

Através de minha classe JAVA, criei a Collection e passei por parâmetro pro relatório.

Ficou mto massa.
Valeu!