Estou com uma dúvida no Ireports. Tenho um campo do select que é um boolean e quando esse bool for true eu quero que seja impresso no relatório a palavra “Sim”, caso contrário “Não”.
Alguem pode me ajudar?
[]'s
Estou com uma dúvida no Ireports. Tenho um campo do select que é um boolean e quando esse bool for true eu quero que seja impresso no relatório a palavra “Sim”, caso contrário “Não”.
Alguem pode me ajudar?
[]'s
aproveitar o topico para perguntar outra coisa logo. eu tenho uma tabela do estilo tabular. com varias colunas. quando, por exemplo, na ultima linha da pagina tem uma coluna que extrapola o limite da pagina ele continua SOMENTE essa coluna na proxima pagina … teria como fazer para toda a linha ser escrita apenas na proxima pagina? deixar um espaco em branco e pular para a proxima pagina?
[]'s
edit
ignorem esse segundo post. consegui fazer ele pular para a proxima pagina
pode ser assim:
if($F{suaVariavel}) ? "Sim" : "Não"
Rollei, beleza?
Em função de vários terem uma dúvida parecida com a tua (e mesmo isso estando explanado em outros tópicos), seria interessante que você postasse a sua solução.
Tenho certeza que ela poderia contribuir pro fórum.
Agradecemos.
Eu fiz o seguinte: coloquei uma imagem no campo e na opcao “Imprimir quando” eu coloquei a expressao $F{CEDER}
quando ceder for true ele imprime a image (no caso eh um “V” verde um yes check) e quando é falso ele não imprime. Tentei usar esse condicional, mas ele deu um erro de syntax
Existe algum site explicando melhor a sintaxe dessas expressoes do Ireports?
edit
se eu tento por exemplo comparar $F{CEDER} que é do tipo boleano (está vindo de um select) desse jeito:
$F{CEDER} == false
quando eu tento rodar o relatorio ele me da um erro: Incompatible operand types Boolean and boolean
[quote=rollei]Eu fiz o seguinte: coloquei uma imagem no campo e na opcao “Imprimir quando” eu coloquei a expressao $F{CEDER}
quando ceder for true ele imprime a image (no caso eh um “V” verde um yes check) e quando é falso ele não imprime. Tentei usar esse condicional, mas ele deu um erro de syntax
Existe algum site explicando melhor a sintaxe dessas expressoes do Ireports?
edit
se eu tento por exemplo comparar $F{CEDER} que é do tipo boleano (está vindo de um select) desse jeito:
$F{CEDER} == false
quando eu tento rodar o relatorio ele me da um erro: Incompatible operand types Boolean and boolean[/quote]
Amigo, vc não precisa de explicações sobre a sintaxe dessas expressões no Ireports, como vc disse. Os comandos o IReport TEM QUE SER JAVA! Isso mesmo! O puro java que vc já conhece!!!
O amigo acima te passou uma sintaxe errada, vc pode tentar dessas várias formas:
!$F{CEDER} // qdo o campo for false
$F{CEDER} // qdo o campo for true
($F{CEDER} ? "Sim" : "Não") // imprime Sim quando true e Não quando false
Tendeu? Boa sorte!
Renata, eu ja tinha tentado de todos esses jeitos que voce colocou … o unico que funcionou foi o do meio, que eh o que eu to usando.
Quando eu tento colocar “!” antes da variavel ele diz que “!” nao eh definido para o tipo de argumento Boolean
quando eu tento da o “if”
($F{CEDER} ? “Sim” : “Não”)
ele diz que nao pode converter do tipo boolean para o tipo Boolean
[quote=rollei]Renata, eu ja tinha tentado de todos esses jeitos que voce colocou … o unico que funcionou foi o do meio, que eh o que eu to usando.
Quando eu tento colocar “!” antes da variavel ele diz que “!” nao eh definido para o tipo de argumento Boolean
quando eu tento da o “if”
($F{CEDER} ? “Sim” : “Não”)
ele diz que nao pode converter do tipo boolean para o tipo Boolean[/quote]
Ok! Simples… isso é por causa do tipo do compilador que vc tá usando…
Faça assim:
new Boolean(<sua condicao>)
Ele precisa do tipo Boolean e com aquelas expressões o retorno estava sendo o tipo primitivo boolean. Faça os casts nos lugares certos e vai funfar!
Renata, vlw
consegui fazer a condicao funcionar
($F{CEDER}.booleanValue ? "Sim" : "Não")
funcionou legal, mas de jeito nenhum consegui usar
$F{CEDER}.booleanValue == true
na opcao de “Imprimir quando” do Ireports … tentei dar cast de todos os jeitos e sempre me retornava um erro, cabei por fazer uma outra solucao, na query do banco eu peguei o booleano como um inteiro e fiz
new Boolean($F{CEDER}.intValue() == 0)
consegui fazer o que eu queria, que era exibir uma imagem de um “V” verde quando o booleano fosse true e um “X” vermelho quando o booleano fosse falso.
Obrigado a todo mundo que me deu uma mao.
[]'s