Como imprimir mais de um relatório de uma vez no iReport?

Galera,

Tenho um formulário com uma tabela e tenho que imprimir um novo relatório a cada linha dessa tabela, sendo que cada linha há informações diferentes.

Tipo o usuário vai informar seus dados e marcar na tabela quais os grupos que ele deseja participar, após a confirmação tenho que gerar um relatório novo (não uma página, mas sim abrir um relatório mesmo) para cada grupo.

Ex: Fulano participa do grupo 1; Fulano participa do grupo 2. etc …

Como posso fazer isso com Java e iReport ?

Carlos.

Se entendi bem, você precisa usar o componente subreport.


Abs

Bruno Tafarelo

[quote=btafarelo]Carlos.

Se entendi bem, você precisa usar o componente subreport.


Abs

Bruno Tafarelo[/quote]

Bruno, como sou iniciante em iReport e nunca usei subreport:
O subreport vai abrir um novo relatório mesmo ou seria um novo relatório dentro do principal ? (preciso que seja um novo relatório separado, não pode ser dentro do principal não)
A qtd de subreport deve ser dinamica neste caso, pois deve ser de acordo com as linhas que o usuário selecionar na tabela. Entendeu ?
Me explica. Como fazer isso ?

Carlos.

Entendi, então até onde sei o iReport não permite isso. Só relatórios estáticos.

Nesse caso, acho que a melhor ferramente seria o pentaho ou então desenvolver “sua própria tela”.


Abs

Bruno Tafarelo

Carlos, pelo que entendi, basta você passar um parâmetro no iReport que receberá o código (ID do banco de dados) ao selecionar a linha tal da tabela no formulário.
Pode ser colocando um JButton para imprimir o relatório com as informações selecionada, sempre que mudar a seleção na tabela exibirar um novo relatório.

Acho que isso resolve.

[quote=JMARQ]Carlos, pelo que entendi, basta você passar um parâmetro no iReport que receberá o código (ID do banco de dados) ao selecionar a linha tal da tabela no formulário.
Pode ser colocando um JButton para imprimir o relatório com as informações selecionada, sempre que mudar a seleção na tabela exibirar um novo relatório.

Acho que isso resolve.[/quote]

JMARQ, mas no meu caso o usuário apenas escolhe as linhas e confirma, daí então o sistema exibe todos os relatórios de acordo com as linhas que ele selecionou na tabela, o usuário não irá imprimir a parte, ele apenas irá selecionar as linhas e será um único botão imprimir que imprimirá de uma vez todos os relatórios de acordo com todas as linhas que ele selecionou.
Ah, os dados vem direto do formulário, não consulta no banco, eu não salvo essa informação no banco não.

Entendeu ?

Um relatório por linha?
Considerando que o relatório é montado com base nas colunas (atributos) de uma tabela (objeto), como pretende fazer isso?
Um subrelatório pode atender ao que você aparentemente quer.
Quando colocamos um subreport na banda details, ele se repetirá N vezes, de acordo com a quantidade de resultados (linhas) existentes para a consulta que foi realizada para construir o relatório.

[quote=drsmachado]Um relatório por linha?
Considerando que o relatório é montado com base nas colunas (atributos) de uma tabela (objeto), como pretende fazer isso?
Um subrelatório pode atender ao que você aparentemente quer.
Quando colocamos um subreport na banda details, ele se repetirá N vezes, de acordo com a quantidade de resultados (linhas) existentes para a consulta que foi realizada para construir o relatório.[/quote]

Pois é, um relatório por linha mesmo! foi assim que me passaram … =§

Irei tentar dessa forma que vc me falou, usar um subreport na Detail, mas uma dúvida. Como uso uma Collection para a passagem dos parâmetros para o relatório, irei usar um Map , dese jeito pode-se colocar na mesma chave vários valores, dessa forma ele irá duplicar a cada valor que tiver nessa chave ?
Por ex: Eu crio um subreport no detail, passo um Map com (“campo”, “valores”), a cada valor irá repetir o subreport ?

Crio um Map assim: map.put(“dados”,“aaa,bbb,ccc,ddd”);
Preencho uma Collection com esse Map e alimento o relatório.
No subreport terá um campo F${dados}, e assim a cada valor desse campo o subreport vai repetir na detail com o novo valor ?

é isso ?

Vai aí um exemplo, está horrível, mas dá para ter idéia de como fazer.

Valeu, dei uma olhada no seu código, faço parecido, a lógica é a mesma com ArrayList.
Não consegui abrir os jasper, na verdade abre mas só mosta um traço e nada mais.
Mas pelo que vi no pdf, são várias páginas, que não é o meu caso, teria que ser um pdf pra cada.

Neste caso, não tem segredo. Crie a estrutura do relatório e faça um loop no java, cada iteração deverá gerar um relatório, de acordo com o que deve existir neles.
Ah, existe algumas linhas, você precisa abrir o sub relatório.