[RESOLVIDO] Continuar "Caixa" no details mesmo sem dados (iReport)

7 respostas
R

Estou com um problema aparentemente Simples: estou fazendo um DANFE

vejam como ele está saindo

Estão vendo que as colunas (linhas na vertical) param enquanto têm dados.

Alguém sabe como que eu faço para que as linhas continuem até o footer?
já tentei um monte de opções sem solução.

Agradeço de antemão.
Valeu.

7 Respostas

zoren

isso é normal, qdo eu estava fazndo o DANFE tbm tive o mesmo problema

ninguém me disse se havia um jeito, mas eu fiz uma gambi e arrumei.

eu imprimi linha vazias pra completar o espaço que faltava, assim a tabela ia até o fim

R

O problema é que leio o XML diretamente, logo não posso adicionar linhas falsas!

Achei um topico logo antes de sair do trampo, amanhã de manhã vou testar, se funcionar dou a letra!

R

É fiz um teste aqui usando um group falso, mas mesmo assim não funcionou.

Se alguém tiver alguma dica, agradeço.

O pior é que acho q faz uns anos eu fiz algo desse tipo, só não lembro como.
É o mesmo que fazer um zebrado ir até o fim da página.

R

Tive uma idéia que tenho quase certeza que funciona.
Porém preciso saber quando estou na última linha do relatório, alguém sabe como posso fazer um “print when expression” imprimir algo na última linha do relatório?

1

vc pode verificar pela variavel $V{PAGE_COUNT}

por exemplo, vc verifica o numero maximo que ela atinge em uma pagina
ai soh comparar qdo seu valor for < maximo

R

Eu estava falando da linha e não da página.

RESOLVI o problema, vou explicar sucintamente pra quem quiser.

Pelo que pesquisei não existe solução para isso (eu acho q é algo util e podia sair na nova versão).

Fiz uma GAMBI que funcionou mais ou menos para o meu caso da DANFE onde a fonte de dados é um XML que não posso mexer, segue o passo a passo:
1-Antes de chamar o relatório via Java eu interpretei o XML e descobri quantas linhas de detail existiam
2-Com base na quantidade de linhas, quantidade de linhas por página (considerando a primeira página cabendo menos linhas), eu cheguei a um número de quantas linhas são necessárias pra completar a última página, com base nisso criei uma variável AUMENTADOR contendo esse número vezes “\n”, assim supondo que cabem 12 linhas por página e essa danfe vai mostrar 2 itens minha variável conterá 10 \n: "\n\n\n\n\n\n\n\n\n\n"
3-Passei tanto a quantidade de linhas quanto o aumentador como parâmetro pro relatório.
4-No detail do relatório criei um campo pequeno la no meio que mostra o parâmetro AUMENTADOR com um print when expression $V{REPORT_COUNT} == $P{QTDE_LINHAS}. Dessa forma esse aumentador será colocado na última linha.
5-Esse campo também precisa da opção “stretch with overflow” selecionada.

Desse jeito, a última linha da última página aumentará de tamanho de maneira invisível para que complete até o final da página e assim as linhas verticais (que precisam estar com a opção stretch type = relative to band height) esticarão quando algum campo do detalhe aumentar, e no caso o campo invisível aumenta.

Não é a solução ideal pois o tamanho de cada \n não é o mesmo de cada linha de fato do relatório, ou seja, na última página fica um espaço um pouco maior entre o detail e o page footer, mas no geral ficou bom e com uma boa performance.
Espero ter ajudado o próximo a ter esse problema.

dlemes

Eu tenho esse problema e fiz uma gambi diferente, utilizei a banda background com as linhas, ai não fica aquela parte em branco, porque tem o fundo, mas queria uma solução melhor também.

Criado 12 de abril de 2010
Ultima resposta 16 de ago. de 2010
Respostas 7
Participantes 4