Ireports - Ajuda: Imprimir "Sim" quando bool = true

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! :wink:

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! :smiley:

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