0

我创建了一个变量来为我的报告保留一个位置中所有机械零件 ID 的计数。这很好用,现在我想添加一个过滤器,其中仅当机械零件 ID 的数量 > 0 时才计算它们。

这是我必须开始的:

变量名称:PART_COUNT

变量类类型:Java.lang.Integer

计算类型:计数

重置类型:组

重置组:LOCATION_ID

增量类型:无

变量表达式:$F{MACHINERY_PART_ID}

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

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

评估时间:组

评估组:LOCATION_ID

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

新条件是 count(machinery_part_id) group by location_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

请帮忙,谢谢!

4

2 回答 2

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}

问题 我现在如何切换这个表达式以返回一个整数?

感谢您为我指明正确的方向。

于 2013-03-05T16:13:06.237 回答
1

我想到了:

文本域

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

评估时间:报告

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

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

于 2013-03-05T16:57:31.410 回答