IF com operador ternário no Ireport

16 respostas
L

Bom dia a todos!
estou tentando criar um relatório no ireport e preciso fazer um if :
(($F{VLR1}>0 && $F{VLR2}>0)?$F{VLR1}+" - "+$F{VLR2}+" - - - - - - ":$F{VLR1}+" - - - - - - -")

Porem ele sempre fica só na primeira condição, mesmo quando trocando a ordem.
Se alguém puder ajudar ficarei muito grata! :blush:

16 Respostas

jallisson_jallis

Qual a versão do ireport?

L

4.0.1

jallisson_jallis

Então a condição sempre está dando o valor true, não importa se trocar a ordem. Tente mudar a expressão.

L

Esse é o problema, já tentei de várias formas, porem ele sempre cai na primeira condição, pois eu sempre vou ter o “VLR1”, mas haverá casos em que eu terei dois valores, ai que pega!

jallisson_jallis

Vou simular isso aqui aí te falo

jallisson_jallis

Fiz o teste e deu certo, utilizei variáveis inteiros e não coloquei as aspas nas condições.

L

Acredite se quiser, não da certo! fiz da mesma forma que você, mas ele sempre trava na primeira condição.

jallisson_jallis

Qual os valores das variáveis?

L

São valores do tipo double.

rodevops

Tente assim…

($F{VLR1}.doubleValue() > 0 && $F{VLR2}.doubleValue() > 0)...
jallisson_jallis

descreva os valores 1 e 2

L

Que tá no momento é 53.596,67 e 53.596,67

jallisson_jallis

nesse caso é para ter o resultado 0.0

jallisson_jallis

vou te enviar meu relatório de teste para você ver estudo.jrxml (1,7 KB)

L

Não consigo abrir ele aqui!

jallisson_jallis

baixa o ireport 5.6.0

Criado 25 de agosto de 2017
Ultima resposta 31 de ago. de 2017
Respostas 16
Participantes 3