Olá…
Estou com problemas na paginação no meu relatório.
Crio uma variável para a página atual e outra para o total de páginas e depois de compilado, aparece assim nas paginas do relatório: 1/0 , 1/0, 2/0, 3/0 sendo que o relatório tem 4 paginas, e deveria sair assim: 1/4, 2/4…
O que há de errado com o meu código?!??!
<variable calculation="Count" class="java.lang.Integer" incrementType="Page" name="PAG_ATUAL" resetType="None">
<variableExpression>$V{PAGE_NUMBER}</variableExpression>
</variable>
<variable calculation="Count" class="java.lang.Integer" incrementType="Page" name="TOTAL_PAG" resetType="None">
<variableExpression>$V{PAGE_COUNT}</variableExpression>
</variable>
<textField evaluationTime="Now" isBlankWhenNull="true" isStretchWithOverflow="true">
<reportElement forecolor="#000000" height="15" isRemoveLineWhenBlank="true" mode="Transparent" positionType="FixRelativeToTop" width="40" x="458" y="34"/>
<textElement rotation="None" textAlignment="Right" verticalAlignment="Top">
<font size="10"/>
</textElement>
<textFieldExpression class="java.lang.Integer">$V{PAG_ATUAL}</textFieldExpression>
</textField>
<textField evaluationTime="Report" isBlankWhenNull="true" isStretchWithOverflow="true">
<reportElement forecolor="#000000" height="15" isRemoveLineWhenBlank="true" mode="Transparent" positionType="FixRelativeToTop" width="28" x="505" y="34"/>
<textElement rotation="None" textAlignment="Left" verticalAlignment="Top">
<font size="10"/>
</textElement>
<textFieldExpression class="java.lang.Integer">$V{TOTAL_PAG}</textFieldExpression>
</textField>
Obrigada.
Amanda.
Amanda você não precisa controlar a paginação na mão. Existem umas opções do jasper que ele formata a saída da forma q vc está precisando … Do lado direito no Ireport … é só clicar e arrastar a opção Page x of Y que já vai resolver o seu problema …
att.
Mas o meu problema é que uso uma ferramenta própria de layout visual do relatório, e não o iReport, então precisaria saber do código mesmo para poder criar na minha ferramenta.
Será que não tem como ver o jrxml que o iReport cria com esse controle de paginação??? Assim eu posso me basear nele…
Obrigada.
Amanda.
Amanda gera esse fonte aqui :
<textFieldExpression class="java.lang.String"><![CDATA["Page " + $V{PAGE_NUMBER} + " of "]]></textFieldExpression>
<textFieldExpression class="java.lang.String"><![CDATA["" + $V{PAGE_NUMBER} + ""]]></textFieldExpression>
Mas como ele faz o controle de pagina atual e valor total de páginas, se as variaveis têm o mesmo valor $V{PAGE_NUMBER}!?!? não tem nenhum controle de evaluationTime!?!?
Eu vi num outro tópico que precisaria ter esse evaluationTime fazendo o controle de Now para pagina atual e Report para valor total de páginas.
O tópico é esse:
http://www.guj.com.br/posts/list/65550.java
Foi por esse tópico que eu implementei o evaluationTime…até funcionou, mas naum ta contando certo…
Tipo…eu até fiz como está esse código que vc falou
<variable calculation="Nothing" class="java.lang.Integer" incrementType="None" name="PAG_ATUAL" resetType="None">
<variableExpression>$V{PAGE_NUMBER}</variableExpression>
</variable>
<variable calculation="Nothing" class="java.lang.Integer" incrementType="None" name="TOTAL_PAG" resetType="None">
<variableExpression>$V{PAGE_NUMBER}</variableExpression>
</variable>
e aí na variavel textField eu fiz o controle de evaluationTime assim:
<textField evaluationTime="Report" isBlankWhenNull="true" isStretchWithOverflow="true">
<reportElement forecolor="#000000" height="15" isRemoveLineWhenBlank="true" mode="Transparent" positionType="FixRelativeToTop" width="28" x="507" y="34"/>
<textElement rotation="None" textAlignment="Left" verticalAlignment="Top">
<font size="10"/>
</textElement>
<textFieldExpression class="java.lang.Integer">$V{TOTAL_PAG}</textFieldExpression>
</textField>
<textField evaluationTime="Page" isBlankWhenNull="true" isStretchWithOverflow="true">
<reportElement forecolor="#000000" height="15" isRemoveLineWhenBlank="true" mode="Transparent" positionType="FixRelativeToTop" width="40" x="458" y="34"/>
<textElement rotation="None" textAlignment="Right" verticalAlignment="Top">
<font size="10"/>
</textElement>
<textFieldExpression class="java.lang.Integer">$V{PAG_ATUAL}</textFieldExpression>
</textField>
agora ele passa a apresentar as paginas do relatorio de 4 páginas assim: 1/3, 1/3, 2/3, 3/3 …
o que eu faço pra ele contar certo!?!?

Obrigada.
Amanda.
Amanda, eu lembro de ter mexido em um negócio de controle de páginas no Gerador de Relatórios ou no NFex server (não lembro em qual dos dois), para contar as páginas da NFe. O André que tinha criado e depois eu mexi.
Dá uma olhada aí.
[Para o resto do fórum que não entendeu nada com a minha resposta: já trabalhei no mesmo projeto que ela]
Você mexeu no NFex mesmo…criando um método que verifica o numero de itens que tem comparando com o possível por página e se maior, divide…
Mas tem como o próprio Jasper fazer isso…eu consegui fazer como…mas ainda está contando errado…ainda não descobri o detalhe que faz a contagem certa…não sei se é o controle de evaluationTime ou outra configuração do componente Field ou da variável mesmo…
Obrigada.
Amanda.
[quote=AmandaCurty]Você mexeu no NFex mesmo…criando um método que verifica o numero de itens que tem comparando com o possível por página e se maior, divide…
Mas tem como o próprio Jasper fazer isso…eu consegui fazer como…mas ainda está contando errado…ainda não descobri o detalhe que faz a contagem certa…não sei se é o controle de evaluationTime ou outra configuração do componente Field ou da variável mesmo…
Obrigada.
Amanda.[/quote]
Ah, já agora não sei.
Vou perguntar para o André depois, mas não sei se ele vai poder ajudar.
AmandaCurty, o que muda é o tempo de avaliação da variável.
Para o número da página, defina o tempo de avaliação como ‘Agora’. Para o número de páginas do relatório, coloque o tempo como ‘Relatório’, assim ele irá avaliar esta variável apenas no término da montagem do relatório.