iReport -> Passar variável para um subrelatório

20 respostas
Murilo_Valadares

Olá amigos,

estou utilizando um relatório com vários subrelatórios.
Preciso fazer com que este relatório imprima rodapé com o nº de página em todas as folhas.

Pesquisei na internet sobre isto e encontrei encontrei uma conversa neste fórum de 2008:
http://jasperforge.org/plugins/espforum/view.php?group_id=102&forumid=103&topicid=48147
falando que eu preciso preciso passar a variável $V{PAGE_NUMBER}
do relatório principal para os seus subs.

Não vejo formar de passar variável para um subrelatório, mas sim apenas parâmetros.
Achei melhor não perguntar isto no fórum que comentei, por ser meio antiga a postagem.
Se alguém souber como fazer isto, gostaria que informasse.

Obrigado pela atenção.

20 Respostas

leoramos
  • Os teus subReports têm rodapé? Bastante incomum, isso.
    Mas vamos lá: em que banda do teu relatório principal estão teus subReports? Tens certeza que precisas desses sub aí?
  • A variável de um pode ser o parâmetro de outro. Inclua a variável no teu map, e era isso.
    Abraço!
TheKill

Acho que ta mal explicado…

Pelo que entendi vc tem
Pagina
SubRelatorio (N)

totalPaginas
Fim da Pagina

Seria isso? Se sim, porque colocar no SubRelatorio?
Adiciona na band de rodapé o seu $V{PAGE_NUMBER} e pronto

leoramos

Exatamente, por isso que eu perguntei se ele tem rodapé nos subReports. Não tá fazendo muito sentido…

Murilo_Valadares

leoramos
os meus subReports têm rodapé sim, pois o rodapé apenas o relatório
pai não imprime o rodapé em todas as páginas.
Estou utilizando subs porque preciso imprimir várias List.

Tentei a sua ideia de passar a variável como parâmetro,
porém desta forma ele não passa o total de páginas e sim a página atual.

Sobre o map, como eu poderei incluir a variável em um map pelo iReport?
É simples fazer isto em java, mas pelo iReport nem imagino.

Murilo_Valadares

Vou fazer o seguinte,
estou na versão 1.3.1, vou testar na versão mais nova.
De repente a ausência de rodapé quando a quebra de página é feita por 1 subRelatório
pode ser algum bug desta versão na qual estou.

Caso dê certo, informo aqui.

leoramos

… ou da banda onde colocasse o subReport.
Tá em que band?

Murilo_Valadares

em várias:
1 na title
1 na columnHeader
2 na summary (sendo 1 delas chama mais uma extra)

Em nenhum dos cados quando há quebra de página dentro de um sub,
o rodapé é impresso.

TheKill

Acho que isto é relativo… Vc esta quebrando a pagina…

Ele vai quebrar onde vc definir… Acho que esta certo…

Tente colocar a quebra de paginas apos o teu conteudo do Rodape

Murilo_Valadares

Tem como postar arquivos aqui?
Para ser mais claro, gostaria de mostrar os arquivos
jrxml’s e o pdf resultante.

TheKill

Claro que dá… Clica no botao Responder e vai ter anexos

Murilo_Valadares

Aqui estão os arquivos.
O jrxml pai que chama os de demais é o informacaoTecnica.jrxml

Murilo_Valadares

Compilei os arquivos pela a mais nova versão do iReport, que é a 4.0.2.
Mas mesmo assim continua sem sair o rodapé, quando um suRelatório faz a quebra de página.

Sendo assim, acredito ter eliminado a possibilidade da falha estar na versão com a qual estou trabalhando.

Então, eu continuo com a ideia de buscar uma solução através da variável $V{PAGE_NUMBER}.

TheKill

TheKill:
Acho que isto é relativo… Vc esta quebrando a pagina…

Ele vai quebrar onde vc definir… Acho que esta certo…

Tente colocar a quebra de paginas apos o teu conteudo do Rodape

Ao menos tentou fazer oque eu comentei? --"

TheKill

Outra coisa, onde esta o Break no relatorio…
Nao consegui localizar

Murilo_Valadares

TheKill,
se você está falando do objeto que força a quebra de página, no local onde eu coloco-o,
fiz o teste removendo-o.
Neste caso a quebra o ocorreu um pouco depois dele, mas a falta do rodapé persistiu.

Estou achando que o meu caso é mais complexo do que geralmente a maioria dos usuários passam,pois este meu relatório é muito grande.
Quando eu encontrar uma solução, a postarei aqui.

Se os amigos aqui não tiverem mais alguma sugestão, agradeço muito a atenção no meu caso.
Abraços.

TheKill

Realmente ta meio estranho… tente diminuir para 1 subrelatorio e veja o resultado… vai aumentando progressivamente pra identificar onde acontece o problema

Murilo_Valadares

O que seria este Break? Um ponto de stop?
Nunca utilizei.

TheKill

Break é a quebra de pagina. Nao tinha nenhum break em seu relatorio… Conforme vc havia mencionado que fazia a quebra de pagina… imaginei que vc estivece controlando isso

TheKill

Você pode definiri os locais (forçando) uma quebra de pagina usando o componente Break do iReport

Murilo_Valadares

Ah sim, usei 1 Break sim. Só não lembrava que tinha esse nome.

Está no arquivo informacaoTecnica_Contribuicoes.jrxml.

Criado 21 de julho de 2011
Ultima resposta 21 de jul. de 2011
Respostas 20
Participantes 3