我可以更改变量的值吗?

时间:2015-12-10 17:11:52

标签: jasper-reports

我是JasperReports的新手,但我觉得我得到了它。毕竟它只是另一种标记语言。

我的方案是我有一个数据表,包含日期和其他一些文本列,我想根据日期显示每个数据部分的小计。我期待在表格中有零,一个或多个日期。

我有一个定义的变量来计算行的总和,但我想将每个子组的总和重置为零,是否可能?

这是我的变量声明:

<variable name="G_COUNT" class="java.lang.Integer" calculation="Sum">
<variableExpression><![CDATA[(($F{ROW_NUMBER}.intValue() != 9)?$F{ITEM_COUNT}:new Integer(0))]]></variableExpression>
<initialValueExpression><![CDATA[new Integer(0)]]></initialValueExpression>

有没有办法可以使用这个变量,当找到新的日期时重置为0,或者我使用错误的类型来做我想做的事情?

作为一个警告,我在文本编辑器中编辑.jrxml文件,而不是iReport。

1 个答案:

答案 0 :(得分:0)

我从阅读dtd中得出的结论是,群组可以触发重置事件。

<variable name="G_COUNT" class="java.lang.Integer" calculation="Sum" resetType="Group" resetGroup="SubCalc">
<variableExpression><![CDATA[(($F{ROW_ORDINAL}.intValue() != 9)?$F{ITEM_COUNT}:new Integer(0))]]></variableExpression>
<initialValueExpression><![CDATA[new Integer(0)]]></initialValueExpression>

<group name="SubCalc">
    <groupExpression><![CDATA[$F{ROW_ORDINAL} == 1]]></groupExpression>
</group>

所以当ROW_ORDINAL == 1时会触发一个重置事件,它将G_COUNT的值设置为initialValueExpression