变量表达式:计算满足条件> 0的所有记录

时间:2013-03-01 17:30:43

标签: jasper-reports ireport

我创建了一个变量来保存我的报告位置中所有machinery_part_id的计数。这工作正常,现在我想添加一个过滤器,其中只有当quantity_part_id的数量> gt时才计算。 0

这就是我必须要做的事情:

变量名称:PART_COUNT

变量类类型:Java.lang.Integer

计算类型:计数

重置类型:组

重置组:LOCATION_ID

增量类型:无

变量表达式:$ F {MACHINERY_PART_ID}

我的报告中的字段设置如下:

文本字段表达式类:Java.lang.Integer

评估时间:小组

评估组:LOCATION_ID

文字字段表达式:$ V {PART_COUNT}

新条件是按location_id计数(machinery_part_id)的数量> 0

$F{MACHINERY_PART_ID}$F{QUANTITY_SENT}都是java.lang.double字段,我尝试在变量表达式中输入以下内容:

New Double($F{QUANTITY_SENT} > 0.00 ?  $F{QUANTITY_SENT}.doubleValue() : 0d)

但它出错了:

Syntax error, insert ";" to complete BlockStatements

我正在使用iReport 3.0.0

请帮忙, 谢谢!

2 个答案:

答案 0 :(得分:1)

我明白了:

<强>可变

变量名称:PART_COUNT

变量类类型:Java.lang.Double

计算类型:总和

重置类型:组

重置组:LOCATION_ID

增量类型:无

变量表达式:new Double($F{QUANTITY_SENT}.doubleValue() > 0.00 ? 1.0:0.0)

文字字段

文本字段表达式类:Java.lang.Double

评估时间:小组

评估组:LOCATION_ID

文字字段表达式:$ V {PART_COUNT}

<强>问题 我现在如何切换此表达式以返回整数??

感谢您指出我正确的方向。

答案 1 :(得分:1)

我明白了:

文字字段

文本字段表达式类:Java.lang.Integer

评估时间:报告

文字字段表达式:new Integer($V{PART_COUNT}.intValue())

在这里找到答案: http://community.jaspersoft.com/questions/525053/cannot-cast-int-integer