2016-04-24 198 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