我创建了一个变量来保存我的报告位置中所有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
请帮忙, 谢谢!
答案 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