Preciso de ajuda no IReport
, tenho essa condição aqui:
$F{TOTAL}.multiply($F{TOTALMETA})
e preciso que retorne NULL
quando o valor do campo $F{TOTALMETA} for = 100
.
Tem como fazer isso?
Preciso de ajuda no IReport
, tenho essa condição aqui:
$F{TOTAL}.multiply($F{TOTALMETA})
e preciso que retorne NULL
quando o valor do campo $F{TOTALMETA} for = 100
.
Tem como fazer isso?
Cara, primeiro que isso não deveria ser tratado no relatório, mas, enfim.
O iReport trabalha com operadores ternários, logo:
$F{TOTALMETA} == 100 ? "NULL" : $F{TOTALMETA}
Deve ser algo assim
Bom dia, retorna esse erro:
Errors were encountered when compiling report expressions class file:
Incompatible operand types BigDecimal and int
value = (java.lang.String)(((java.math.BigDecimal)field_TOTALMETA.getValue()) == 100 ? “NULL” : ((java.math.BigDecimal)field_TOTALMETA.getValue())); //$JR_EXPR_ID=30$
Incompatible operand types BigDecimal and int
value = (java.lang.String)(((java.math.BigDecimal)field_TOTALMETA.getOldValue()) == 100 ? “NULL” : ((java.math.BigDecimal)field_TOTALMETA.getOldValue())); //$JR_EXPR_ID=30$
Incompatible operand types BigDecimal and int
value = (java.lang.String)(((java.math.BigDecimal)field_TOTALMETA.getValue()) == 100 ? “NULL” : ((java.math.BigDecimal)field_TOTALMETA.getValue())); //$JR_EXPR_ID=30$
3 errors
Código: CORE_E02510
E porque não retornar 0 (zero)?
A sua expressão deve ter apenas um tipo de retorno (ou String
ou numérico) e ali você está indicando dois tipos. Ou retorna "NULL"
(é considerado como String
por estar dentro de aspas) ou retorna um valor numérico qualquer. Por isso, o erro está acontecendo.
Cara, você vai precisar fazer o cast explícito e, a partir disso, vai precisar invocar o método intValue da variável, que é BigDecimal
Pode ser 0 tbm, não tem problema.
Resolvi de outra forma rapaziada. Obrigado pela ajuda…
Como resolveu?
Coloque a solução que você encontrou, para que outros possam encontrar também.