Alguem sabe como usar “IF” no iReport;
Necessito mostrar o numero da pagina, caso for > 1
caso contrario ele oculte o campo.
Alguem teria alguma ideia?
Vlw.
Alguem sabe como usar “IF” no iReport;
Necessito mostrar o numero da pagina, caso for > 1
caso contrario ele oculte o campo.
Alguem teria alguma ideia?
Vlw.
Você que fazer um contador de páginas?
E só mostrar se for mais de uma página?
Não, eu quero mostrar um contador, mais só se o relatorio tiver 2 paginas ou mais.
=)
Tu precisa usar um comparador ternário, ficaria mais ou menos assim:
(expressao==true ? então : senão )
Tudo bem.
Não vejo porque não mostrar se tiver uma página só, até porque você mostra para o usuário que o relatório só gerou uma página.
Vamo la.
Primeiro, você baixou as video aulas que eu te falei ontem? Tudo que eu sei de relatório aprendi la, me livrou de criar dezenas de tópicos aqui no forum.
Não é uma crítica, é só uma dica, vai te poupar muito trabalho.
Mas vamos ao que interessa.
Selecione o campo que você quer imprimir e nas propriedades dele tem um campo “Print When Expression”, abra ele.
Isso faz com que ele só imprima o campo(campo, quadrado, linha, etc) quando a expressão retornar verdadeira.
Então la você escreve:
new Boolean($V{PAGE_COUNT}.intValue() > 1)
Só pra entender. Criei uma condição booleana, usei a variável do iReport que conta as páginas, peguei o valor e verifiquei se é maoir que 1, se for ele imprime.
PS: Não testei, escrevi direto aqui.
@EDIT
A variável é PAGE_COUNT e não REPORT_COUNT.
O REPORT_COUNT conta a quantidade de registros ^.^"
juliocesarss.
Como sempre me salvando, em relação as video aulas ainda não tive a oportunidade de baixar cheguei tarde ontem em casa ( morto de cansado estressado e com sono^^ )
mas hoje sem duvias eu baixo.
então continuando a minha duvida, o “Print When Expression” funcionou perfeitamente, mas ainda “não esta bom pra mim”
estou desenvolvendo um relatorio para Escrivanias de Paz, e a legislação vigente a este relatório que foi me passado é a seguinte :
[list] Se o documento conter uma pagina, não aparece o número da pagina. [/list]
[list] Se o documento possuir mais de 1 pagina a seguinte mensagem deve aparecer em todas as paginas “Continua na próxima página…(Folha 1/8 )” exceto na ultima que mostrara “(Folha 8/8 )”. [/list]
na segunda folha obviamente a mensagem que sera exibida vai ser “Continua na próxima página…(Folha 2/8 )”.
minha ficou mais clara?
Ah … assim tudo bem, ja que é um padrão que você deve seguir
Você não sabe fazer o contador?
Se não sabe faça o seguinte:
Você vai usar dois TextFields.
No primeiro você coloca:
"Página " + $V{PAGE_NUMBER} + " de "
PS: O que está entre “” é texto estático, no seu caso você vcai colocar “Continua na próxima página”.
PS: PAGE_NUMBER é que conta as páginas.
E nas propriedades desse campo você vai procurar por “Evaluation Time” e vai escolher a opção “Now”
O que isso quer dizer? Quer dizer que ele vai contar a página atual do relatório.
Agora no segundo campo você vai colocar só a variável $V{PAGE_NUMBER}
E vai deixar o Evaluation Time em Report, ou seja ele vai contar as páginas em tempo de relatório, vai mostrar a quantidade total de folhas.
É isso, dai só modificar o texto que está entre “” da maneira que você precisar.
Depois posta ae se deu certo.
PS: Você tem que colocar a condição booleana nos dois campos para não imprimir se for só uma página.
PS: No caso do última página você usa o Last Page Footer e coloca só a contagem de páginas sem o texto.
Por incrivel que pareça eu avia feito tudo isso antes de ver o seu tutorial, até chequei para ter certeza.
Prós para mostrar o total de paginas e ele só aparecer se for > 1 aparece perfeitamente.
Problemas constatados :
Se colocar na primeira field
new Boolean($V{PAGE_NUMBER}.intValue() > 1)
ele só mostrara a mensagem na segunda folha
Se colocar na primeira field
new Boolean($V{PAGE_NUMBER}.intValue() > 0)
ele mostra mesmo tendo 1 pagina só ( sem o total de paginas )
Não teria a possibilidade de trabalhar variaves e setar valores ou qualquer coisa do genero.
Ou comparar se field “B” ( no caso o numero total de paginas ) > 1, o field A apareça, senão não.
Ahh … calma ae…
Você quer que só apareça esse contador se houver mais de um página neh
Então você tem que colocar essa expressão no segundo field que é o fild que tem o número total de de páginas.
Se o total de páginas for > 1então ee exibe, se não, não mostra nada.
Vo faze um teste aqui, porque até agora só to fazendo as coisa da minha cabeça sem testar nada ^.^"
Sim sem preça, estou fazendo tambem alguns testes aqui, o meu gerente de grupo esta tranquilo em relação a isto pois meu projeto esta bem adiantado^^
É soh seguir a logica que o juliocesarss comentou.
Não tem galho… Mas vou lhe dar uma dica…
É muito importante tentar adquirir um livro sobre o assunto, tem alguns por preços acessíveis que vão te salvar a vida… com dicas valiozas
TheKill sem duvidas irei atraz das video aulas que o juliocesarss me passou.
o meu problema é que comecei segunda a ver iReport onde trabalho.
nunca tive contato com a ferramenta, por isso estou apanhando um pouco, mas sem duvidas esse final de semana todo sera dedicada as video aulas e exercicios para fixação.
AHHHHHHH … Achei
coloca no Print When Expression dos dois TextField
$V{PAGE_COUNT} > 1
Se for só uma página não mostra nada, se for mais de uma mostra. ^^
juliocesarss,
Não funcionou o que você me passou
segue em anexo o meu relatório.
@EDIT
Aceito Milagres -^^
AHHHH >.<
No meu funciona… porque no seu não vai.
Sem o Print When Expression o contador funciona certinho?
Eu não consigo rodar o seu relatorio direito aqui, ta usando banco nele?
Porque no meu funcionou perfeitamente
Estou com o mesmo problema!
Olha … Fiz um simple aqui… abre e testa ae
Ele ta da forma eu que falei pra você fazer
Como ele só tem um página, ele não aparece o contador.
Troca o >1 por >0, dai ele vai imprimir, veja que funcionaperfeitamente
Não saio daqui hoje enquanto esse relatório não sair … ^^
com o “PAGE_COUNT” não funciona o contador, com o PAGE_NUMBER sim. mas não consigo fazer a validação.
não estou usando banco de dados apenas parametros, a versão que uso é a 3.7.6 ( não sei se existem incompatibilidades )
teria como postar o seu exemplo para eu comparar?
É eu sei… o PAGE_NUMBER é pra usar no contador e o PAGE_COUNT na condição… ve o arquivo ae e compara.
Desculpe me expressei mal,
sim o “$V{PAGE_COUNT} > 0” esta no “Print When Expression”.
Qual é o erro que da quando você executa o meu relatorio?
@EDIT
$V{PAGE_COUNT} > 1
só que pelo que percebi “não conta”, por mais que voce tenha N paginas.