【问题标题】:jasper report error condition errorjasper 报错条件错误
【发布时间】:2018-04-08 19:33:36
【问题描述】:

我对下面的这段代码有疑问。这是一个五条件操作。 当它进入第四个条件($F{field}.equals("text here4")) 时,它会读取该行:$F{total}.doubleValue()*Double.valueOf(100)/Double.valueOf(220), 甚至在第五个条件下也可用。

$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("")

我收到错误:jasper if type cannot be resolved to a type

【问题讨论】:

标签: java jasper-reports


【解决方案1】:

您的条件是否仅针对第五个条件运行?如果是:

请检查您的$F{field} 是否有多余的空间?还要检查您在.equals("check this") 中使用的单词是否区分大小写。

【讨论】:

  • 有一个清晰的思路:$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" 但是这个不行,不看第五个条件
  • 是否有可能 $F{field} 可以为 null ?如果是的话,你也必须处理这种情况。否则将无法正常工作。
  • 我解决了伙计们,只需更改真实代码 (?) 和虚假代码 (:) 之间的位置,谢谢您的时间
猜你喜欢
  • 2012-05-22
  • 2013-11-27
  • 1970-01-01
  • 1970-01-01
  • 2018-07-07
  • 2010-09-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多