Galera boa tarde, existe algum meio de colocar uma condição if dentro de um campo field do ireport,
faço uma busca na base e jogo esse valor no campo, dentro dele uso um if para ver se o valor que vem da base é igual “valor a ser comparado”.
Até onde eu sei não é possível usar o loop condicional if dentro do iReport. Porém, é possível usar o operador ternário (inclusive vários aninhados) e fazer uma alusão ao if. Seria mais ou menos assim:
($F{CampoHora}==null?"00:00:00":new SimpleDateFormat ("HH:mm:ss").format($F{CampoHora}))
Você pode até criar uma variável no iReports e jogar isso dentro dela e depois só mandar apresentar a variável. Esse código fazer o seguinte. Ele compara o CampoHora e verifica se ele é igual à null se for igual à null ele mostra a hora como sendo “00:00:00” senão ele formata a data e apresenta apenas a hora real da data passa pelo campo. O operador ternário é assim:
condição ? se verdade : se falso
Até!
Ahhh, agora que vi, outra pessoa já deu a mesma resposta em outra área do forum. Nem vi, esquece então!
Mas mesmo assim valeu pela dica… Grande abraço!
e ai pessoal
eu tentei fazer como no exeplo acima e nao deu certo.
tentei fazer dessa forma:
$F{ckl_110doc} == true ? "Verdadeiro" : "Falso"
sendo que o campo $F{ckl_110_doc} no banco é do tipo boolean.
ai tah dando esse erro:
pelo amor de Deus, será que vcs poderiam me ajudar?
já tentei fazer de td…nda dá certo!
desde já agradeço a atenção de vcs.
flws
Sabendo que Boolean != boolean, então o que podes fazer é:
-Ou pegar o valor do objeto e comparar com o tipo primitivo;
-Ou pegar o primitivo e transformar em objeto e depois comparar os valores internos.
Boa sorte aí!
desculpe a minha ignorância mas…
como eu faço isso?
eu tentei da seguinte maneira:
(String)$F{ckl_110doc} == “true” ? “Verdadeiro” : “Falso”
e também não deu certo.
diz que não é possível converter Boolean para String.
Não costumo colocar código pronto, mas aí vai:
$F{ckl_110doc}.booleanValue() == true ? "Verdadeiro" : "Falso"
Teste aí e conte o resultado!
amigo, não tenho nem palavras pra te agradecer.
deu certinho!
tu não sabes de qta importância foi sua ajuda.
mto abrigado.
flws
Beleza então!
Quer saber o porque disso? Em quando tu compilas o jasper, ele transforma $F{ckl_110doc} em algo do tipo: public Boolean ckl_110doc = new Boolean("valor que você inicializou");
Então como você já tem um objeto do tipo Boolean, quando fazes a comparação, fica: ckl_110doc.booleanValue() == true ? "verdadeiro" : "falso"
Todos os Campos, Parâmetros e Variáveis no JasperReports viram objetos correspondentes ao tipo, e com isso, trazem todos os métodos relativos.
Até!
Olá, bom dia
tentei utilizar essa expressao no ireports 3.7.3 dessa forma,
$F{funcionamento}.booleanValue() == false ? "Não" : "Sim"
e me retornou esse erro:
Cannot cast from String to Boolean
Alguem pode me ajudar???
Flws.
Descobri. Tinha que mudar o tipo da variável de Boolean para String.
Valeu.
Bom dia galera, ja usava o IF “aninhado” no ireport, mas agora me deparei com uma coisa aqui:
if($F{genero}==0) “Masculino”;
if($F{genero}==1) “Feminino”;
if($F{genero}==2) “Infantil”;
há como fazer uma condição dessas num text field?
grato
Resolvi fazendo
$F{genero} == 0 ? "MAS" : $F{genero} == 1 ? "FEM" : $F{genero}==2 ? "INF" : ""
antes de descobrir isso, tinha usado na própria query
CASE WHEN genero=0 THEN 'MAS' WHEN genero=1 THEN 'FEM' ELSE 'INF' END genero
bom dia … nao estou conseguindo fazer essa expressao . aguem consegue me dizer pq?
$F{RESPOSTA} == 'T' ? "Sim" && $V{SOMASIM} : "Não" && $V{SOMANAO}
se eu tira o && $V{SOMASIM} e o && $V{SOMANAO}
funciona normalmente… mas preciso deles pra contar para fzer a porcentagem de sim e e nao