如何在页面上创建一个总计?

时间:2017-11-26 07:27:13

标签: sum jasper-reports accumulate

我想要实现的是每页底部的累积小计。

在第一页上,将显示该列页面的总数(让我们调用此列A)。在第二页上,显示A列的第1页和第2页的总数,依此类推,直到显示总计的总页数为止。

有人可以为我提供实现这个目标的方法吗?

1 个答案:

答案 0 :(得分:0)

要在页面,列,群组上创建累积总和,您可以使用textField

上的evaluationTime属性

设置为:

创建一个计算值的变量值(在您的情况下是字段的总和)

<variable name="mySumVar" class="java.lang.Double" calculation="Sum">
    <variableExpression><![CDATA[$F{myFieldToSum}]]></variableExpression>
</variable> 
  

重要的是不要在变量上设置resetType,这会相应地重置值,而是我们想要一个累积值

现在报告正在运行(细节带迭代),这个变量将具有当前值(迭代的字段总和)。

要显示相对于页面,组等的累积值,我们使用带有相对评估时间的textField(如果在页面底部,例如在columnFooter中,如果在顶部,则可以使用columnHeader)。

在您的情况下,您希望累积页面,以便设置evaluationTime="Page"

<textField evaluationTime="Page">
    <reportElement x="0" y="0" width="100" height="30" uuid="6736d772-987d-4ad0-af4c-9d19e631eb07"/>
    <textFieldExpression><![CDATA[$V{mySumVar}]]></textFieldExpression>
</textField>