Estou utilizando o IReport 2.0.4
Necessito identificar a última página de um grupo do relatório. Pensei em criar duas variáveis, uma $V{Var1} para armazenar o valor total de páginas do grupo e outra, $V{Var2} para ir contando página por página. Quando $V{Var1}=$V{Var2} então estou na última página do grupo, assim eu poderei colocar uma mensagem que necessito. Meu relatório tem dois grupos: primeiro descrição de itens e outro de anexos(figuras). Necessito colocar uma mensagem apenas no final do primeiro grupo(grupo de descrição de itens).
Foram então criadas as duas variáveis da seguinte maneira:
$V{Var1}
Tipo de Classe de Variável: java.lang.Integer
Tipo de Cálculo: Nada
Resetar Tipo: Nenhum
Tipo de Incremento: Nenhum
Variável de Expressão: $V{PAGE_NUMBER}
Valor Inicial da Expressão: new Integer(“1”)
$V{Var2}
Tipo de Classe de Variável: java.lang.Integer
Tipo de Cálculo: Nada
Resetar Tipo: Nenhum
Tipo de Incremento: Página
Variável de Expressão: new java.lang.Integer( ($V{PAGE_NUMBER}.intValue()) +(1) )
Valor Inicial da Expressão: new Integer(“1”)
É criado um label no relatório com:
Na guia: Campo texto:
Classe de Expressão de Campo de Texto: java.lang.String
Tempo de Avaliação: Agora
Expressão de Campo de Texto: “Mensagem teste.”
Na guia Comum:
Imprimir quando a expressão:
new java.lang.Boolean($V{Var1}.toString().equals($V{Var2}.toString()) ? true : false)
Quando arrasto para a banda pageFooter, para criar um If para colocar a mensagem no final do grupo, os valores das variáveis ficam erradamente sempre $V{Var1}=1 e $V{Var2}=1
O valor das duas variáveis ficam sempre iguais. Parece que, quando eu coloco as variáveis no relatório, elas não apresentam os valores corretamente.
Alguém já teve a necessidade de validar por If duas variáveis no IReport? Como fizeram?
Já tentei em outras bandas e nada. Já tentei trocar Tempo de Avaliação, Tipo de incremento, Resetar Tipo e Tipo de Cálculo.
Será que a solução poderia ser através de Scriptlet?
Se alguém tiver alguma sugestão, desde já agradeço.