Sco*_*mos 7 variables counter report jasper-reports ireport
这应该是关于JasperReports的一个简单问题.我试图在整个报告中做一个简单的计数器,它应该根据条件递增.但是,无论我尝试什么,无论变量表达式如何,似乎计数器变量总是递增.我的变量的定义属性如下:
类:整数
计算:计数
重置类型:报告
增量类型:无
变量表达式:初始值:$F{on_target}.doubleValue() >= 0.0
Integer.valueOf(0)
我在数据集中总共有23行,并且根据标准,计数器最终应该等于18.我在摘要带中输出变量,评估时间为现在.但是,无论评估时间如何,甚至将变量表达式设置为Boolean.valueOf(true == false),变量的值总是最终为23.
我忘了什么简单的小事?
我想我已经明白了。这似乎没有任何意义,但是......(请注意,这是我第一次使用 Jasper 变量,所以这是反复试验)。
变量表达式并不完全是布尔值,如果表达式为 false,计数器类型变量不会递增,就像您想象的那样。如果表达式中计算了任何值,则变量会递增。因此,对我来说,最终的工作如下:
$F{on_target} >= 0 ? 1 : null
如果表达式应该为 false,请注意 null 的用法。
它的意义模糊而扭曲。但绝不是直观的。哦,好吧,就这么过去了……
或者换句话说:
当您使用Jasper 定义的变量的Calculation:Count函数时,您希望变量表达式 :
这就是上面列出的测试有效的原因