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