2016-04-24 157 views
-1

我在下面的代碼中遇到問題。這是一個五個條件操作。 當它進入第四個條件($F{field}.equals("text here4"))時,它讀取該行:$F{total}.doubleValue()*Double.valueOf(100)/Double.valueOf(220), 並且即使對於第五個條件也是可用的。jasper報告錯誤狀態錯誤

$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

我在這裏閱讀[鏈接](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(「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 {field} .equals(「text here5」) ?$ F {total} .doubleValue()* Double.valueOf(100)/Double.valueOf(220) :「null」' 但是這個不起作用,不讀取第五個條件 – user3224701

+0

$ F {field}可能爲空嗎?如果是的話,你也必須處理這種情況。否則它將無法工作。 –

+0

我解決了它的傢伙,只是改變真正的代碼(?)和虛假的代碼(:)之間的地方 謝謝你的時間 – user3224701