quinta-feira, 25 de junho de 2009

ireport passando collection para subrelatorio pelo parâmetro

Esse é o modo mais fácil de passar uma coleção (Collection) para um sub-relatório. Crie um parâmetro na sua classe e coloque a coleção que será passada para o sub-relatório:

Collection pessoas = new ArrayList();
parametro.put(“COLECAO”, pessoas);

No ireport crie um parâmetro “COLECAO” do tipo Collection e passe para o sub-relatório tipando o como JRBeanCollectionDataSource.
(REPORT_DATA_SOURCE -> new JRBeanCollectionDataSource($P{COLECAO}))
como mostra a imagem:



O sub-relatório vai iteragir na coleção pelo REPORT_DATA_SOURCE (é um parâmetro padrão do relatório) na banda DETAILS.