首页 > 解决方案 > 列总和(显示在页脚中)在第一页上不起作用。但是在第二页上工作

问题描述

我正在撰写一份碧玉报告。我的要求是将我从 java 获得的借方和贷方列的运行总计显示为 JRBeanCollectionDataSource。我创建了一个变量并将 resetType="Page" 和计算设置为 Sum。第一页上的总数始终为零,而第二页上的总数是正确的。

我的字段在子数据集中。我从 datasetRun 返回借方和贷方值的总和。

子数据集:

<subDataset name="TransactionDataSet" uuid="1c386547-d313-475c-b023-9f1b6f198535">
        <property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
        <queryString>
            <![CDATA[]]>
        </queryString>
        <field name="accountTypeName" class="java.lang.String"/>
        <field name="accountNum" class="java.lang.String"/>
        <field name="name" class="java.lang.String"/>
        <field name="transactionText" class="java.lang.String"/>
        <field name="currencyCode" class="java.lang.String"/>
        <field name="amountDebited" class="java.math.BigDecimal"/>
        <field name="amountCredited" class="java.math.BigDecimal"/>
        <field name="regionId" class="java.lang.String"/>
        <field name="departmentId" class="java.lang.String"/>
        <field name="costCenterId" class="java.lang.String"/>
        <variable name="debitSumForPage" class="java.math.BigDecimal" resetType="Page" calculation="Sum">
            <variableExpression><![CDATA[$F{amountDebited}]]></variableExpression>
            <initialValueExpression><![CDATA[java.math.BigDecimal.ZERO]]></initialValueExpression>
        </variable>
        <variable name="creditSumForPage" class="java.math.BigDecimal" resetType="Page" calculation="Sum">
            <variableExpression><![CDATA[$F{amountCredited}]]></variableExpression>
            <initialValueExpression><![CDATA[java.math.BigDecimal.ZERO]]></initialValueExpression>
        </variable>
</subDataset>

全局变量:

<variable name="totalDebitForPage" class="java.math.BigDecimal" calculation="Sum">
        <initialValueExpression><![CDATA[java.math.BigDecimal.ZERO]]></initialValueExpression>
</variable>
<variable name="totalCreditForPage" class="java.math.BigDecimal" calculation="Sum">
        <initialValueExpression><![CDATA[java.math.BigDecimal.ZERO]]></initialValueExpression>
</variable>

返回码:

<datasetRun subDataset="TransactionDataSet" uuid="c6dc230d-6e84-4618-b973-c5cedc63dcaf">
                        <dataSourceExpression><![CDATA[$P{TransactionDatasource}]]></dataSourceExpression>
                        <returnValue fromVariable="debitSumForPage" toVariable="totalDebitForPage"/>
                        <returnValue fromVariable="creditSumForPage" toVariable="totalCreditForPage"/>
</datasetRun>

我需要获取所有页面的总页数。

标签: jasper-reports

解决方案


推荐阅读