[Ireport] Acessar propriedades de objeto dentro de um list

Galera, boa tarde.

Estou com uma questão no ireport que gostaria de sugestões de como poderia ser feito.

necessidade: preciso fazer com que cada elemento de uma lista, saia numa nova pagina do relatório. Então se eu passar uma lista com 5 elementos, ele deve gerar 5 páginas de relatório, se passar 10, gerará 10 páginas.

como estou tentando: Como esse relatório já recebe uma lista no dataSource:

JRDataSource jrds = new JRBeanCollectionDataSource(lista); JasperPrint print = JasperFillManager.fillReport( pathArquivoRelatorio, parametros, jrds );

Tentei passar essa segunda lista no Map de parametros e no ireport criei um grupo, para que ele iniciasse cada elemento para iniciar em uma nova página.

Porém, eu não estou conseguindo recuperar essa segunda lista e acessar as propriedades de cada elemento dentro da lista.

exemplo:

tenho uma lista de pedidos, que é passada para o datasource, conforme código acima.
dentro de um pedido, eu vou ter a lista de itens… já tentei recuperá-la tanto tentando pegar direto do objeto pedido, como passando ela num parametro direto no Map de parametros.

Preciso acessar essa lista de itens (a segunda lista) e pegar suas propriedades (id, descrição, etc) e cada item dessa lista gerar uma nova página no relatório.

Alguem sabe me dizer se consigo no ireport acessar essa lista, pegar o elemento (objeto) e imprimir suas propriedades,

ou o que poderia ser feito, talvez subrelatorio (não sei como faria ou se daria para iniciar cada item em uma nova pagina)

tentei inclusive mandar uma matriz bidimensional para o ireport, porém não achei como recebe-la tambem.

Se alguém puder me ajudar a encontrar uma saida para esse problema…

Grato desde já…

Abs galera.

Cara eu estou fazendo assim:

Passo o dataSource como parametro para o proximo subreport.

Tipo assim:

	map.put("subreport_datasource", new JRBeanCollectionDataSource(services));

Mas ainda não cheguei a testar !!

E no SubSubReport eu passo para o outro subreport declarando a expression assim:

new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{rows})

e para o subreport DO subreport passo assim:

new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{records})

E assim vai… Como disse ainda não testei , mas foi uma longa pesquisa pra chegar nisso aí. :slight_smile:
abraços

PS: o tipo desses Fields é java.util.List

Abraços.

Boa tarde galera,

quero agradecer a ajuda do usuário d34d_d3v1l,

Usei

para passar a lista do relatório para um subrelatorio, e no subrelatorio criei um “grupo” para conseguir separar as páginas como precisava.

Já tinha feito outros relatorios utilizando subrelatorios, mas não tinha pensado na possibilidade de criar o grupo dentro do subrelatorio, em vez de cria-lo no relatorio principal.

É isso, problema resolvido. Caso alguém precise.

Abs!