Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jasper reports 如何从报表中的列表中获取XML重复元素值的总和?_Jasper Reports - Fatal编程技术网

Jasper reports 如何从报表中的列表中获取XML重复元素值的总和?

Jasper reports 如何从报表中的列表中获取XML重复元素值的总和?,jasper-reports,Jasper Reports,我有XML数据源,它提供了的xpath列表。在列表中,有一个名为的xpath,它与xpath列表一起重复。我想取所有的总和 目前我正在使用一个表和变量声明来生成 这是源子数据集: <subDataset name="Dataset2"> <queryString language="xPath"> <![CDATA[/AUWrite/cacheDB/RetrievePolicyListResponse/policy/RetrievePoli

我有XML数据源,它提供了
的xpath列表。在
列表中,有一个名为
的xpath,它与
xpath列表一起重复。我想取所有
的总和

目前我正在使用一个表和变量声明来生成

这是源子数据集:

<subDataset name="Dataset2">
    <queryString language="xPath">
        <![CDATA[/AUWrite/cacheDB/RetrievePolicyListResponse/policy/RetrievePolicyRiderListResponse/RLSPolicy/policyRiders]]>
    </queryString>
    <field name="sumInsuredAmount" class="java.lang.Integer">
        <property name="net.sf.jasperreports.xpath.field.expression" value="sumInsuredAmount"/>
        <fieldDescription><![CDATA[sumInsuredAmount]]></fieldDescription>
    </field>
    <variable name="ridersSumInsuredAmount" class="java.lang.Integer" resetType="None" calculation="Sum">
        <variableExpression><![CDATA[$F{sumInsuredAmount}]]></variableExpression>
    </variable>
</subDataset>

这是表源代码:

<componentElement>
    <reportElement isPrintRepeatedValues="false" x="20" y="40" width="129" height="10">
        <property name="com.jaspersoft.studio.layout" value="com.jaspersoft.studio.editor.layout.VerticalRowLayout"/>
    </reportElement>
    <jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" whenNoDataType="AllSectionsNoDetail">
        <datasetRun subDataset="Dataset2">
            <datasetParameter name="XML_DATA_DOCUMENT">
                <datasetParameterExpression><![CDATA[$P{XML_DATA_DOCUMENT}]]></datasetParameterExpression>
            </datasetParameter>
            <datasetParameter name="XML_INPUT_STREAM">
                <datasetParameterExpression><![CDATA[$P{XML_INPUT_STREAM}]]></datasetParameterExpression>
            </datasetParameter>
            <datasetParameter name="XML_FILE">
                <datasetParameterExpression><![CDATA[$P{XML_FILE}]]>/datasetParameterExpression>
            </datasetParameter>
            <datasetParameter name="net.sf.jasperreports.xml.source">
                <datasetParameterExpression><![CDATA[$P{net.sf.jasperreports.xml.source}]]></datasetParameterExpression>
            </datasetParameter>
            <datasetParameter name="XML_DATE_PATTERN">
                <datasetParameterExpression><![CDATA[$P{XML_DATE_PATTERN}]]></datasetParameterExpression>
            </datasetParameter>
            <datasetParameter name="XML_NUMBER_PATTERN">
                <datasetParameterExpression><![CDATA[$P{XML_NUMBER_PATTERN}]]></datasetParameterExpression>
            </datasetParameter>
            <datasetParameter name="XML_LOCALE">
                <datasetParameterExpression><![CDATA[$P{XML_LOCALE}]]></datasetParameterExpression>
            </datasetParameter>
            <datasetParameter name="XML_TIME_ZONE">
                <datasetParameterExpression><![CDATA[$P{XML_TIME_ZONE}]]></datasetParameterExpression>
            </datasetParameter>
            <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
        </datasetRun>
        <jr:column width="138">
            <jr:detailCell height="24">
                <textField isBlankWhenNull="true">
                    <reportElement isPrintRepeatedValues="false" x="0" y="0" width="138" height="24" isRemoveLineWhenBlank="true" isPrintWhenDetailOverflows="true"/>
                    <textFieldExpression><![CDATA[$V{ridersSumInsuredAmount}]]></textFieldExpression>
                </textField>
            </jr:detailCell>
        </jr:column>
    </jr:table>
</componentElement>

/datasetParameterExpression>
实际结果:

合计总和的实际结果,显示20000100000并重复列表元素

它不应该重复,因为总SumsuredAmount应该从一个字段生成

总保险金额应为150000,加上100000和50000

预期结果:


您使用表时出错。您可以使用“组页脚”或“表页脚”来显示聚合数据(总和)。感谢@AlexK我可以使用“表页脚”在不重复行的情况下获取投保总额。您使用的表是错误的。您可以使用组页脚或表页脚显示聚合数据(总和)。感谢@AlexK我可以使用表页脚在不重复行的情况下获得保险总额。