2016-04-24 5 views
-1

У меня проблема с этим кодом ниже. Это операция с пятью условиями. Когда он переходит к четвертому состоянию ($F{field}.equals("text here4")), он считает, что строка: $F{total}.doubleValue()*Double.valueOf(100)/Double.valueOf(220), и сделать доступной даже для пятого состояния.jasper report error error error

$F{field}.equals("text here1") 
? $F{total}.doubleValue()*Double.valueOf(100)/Double.valueOf(360) 
:$F{field}.equals("another text here2") 
? $F{total}.doubleValue()*Double.valueOf(100)/Double.valueOf(390) 
:$F{field}.equals("text here3") 
? $F{total}.doubleValue()*Double.valueOf(100)/Double.valueOf(190) 
:$F{field}.equals("text here4") 
? $F{total}.doubleValue()*Double.valueOf(100)/Double.valueOf(290) 
:$F{total}.doubleValue()*Double.valueOf(100)/Double.valueOf(220) 

Когда я использую JasperiF:

new JasperIf(). 
jif($F{cond}.equalsIgnoreCase("")).jthen("!") 
.jelseif($F{cond}.equalsIgnoreCase(""), "!") 
.jelseif($F{cond}.equalsIgnoreCase(""), "!") 
.jelse("") 

я получил ошибку: яшма, если тип не может быть разрешен к типу

+0

Что такое 'JasperIf'? –

+0

Я прочитал его здесь [link] (https://raymondhlee.wordpress.com/2012/10/06/if-else-in-jasper-reports-expressions/), и я подумал, что это синтаксис отчета о яшме. извините – user3224701

ответ

0

Является ли ваше состояние работает только для пятого состояния? Если да, то:

Не можете найти более подробные данные о вашем $F{field}? Также проверьте для чувствительности к регистру слово, которое вы используете в .equals("check this").

+0

, чтобы получить четкое представление: '$ F {field} .equals (" text here1 ") ? $ F {total} .doubleValue() * Double.valueOf (100) /Double.valueOf (360) : $ F {field} .equals ("другой текст здесь2") ? $ F {total} .doubleValue() * Double.valueOf (100) /Double.valueOf (390) : $ F {field} .equals ("text here3") ? $ F {total} .doubleValue() * Double.valueOf (100) /Double.valueOf (190) : $ F {field} .equals ("text here4") ? $ F {total} .doubleValue() * Double.valueOf (100) /Double.valueOf (290) : $ F {field} .equals ("text here5") ? $ F {total} .doubleValue() * Double.valueOf (100) /Double.valueOf (220) : "null" ' Но это не работает, не читает пятое условие – user3224701

+0

Возможно ли, что $ F {field} может быть нулевым? если да, вам тоже нужно обработать это условие. иначе это не сработает. –

+0

Я решил, ребята, просто измените места между истинным кодом (?) И ложным кодом (:) спасибо за ваше время – user3224701