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

20 respostas
M

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

L
  • 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!
T

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

L

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

M

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.

M

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.

L

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

M

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.

T

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

M

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

T

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

M

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

M

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}.

T

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? --"

T

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

M

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.

T

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

M

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

T

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

T

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

M

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