如何使用另一个字段对 subDataset 中分组的数据进行排序,例如姓名姓氏?

问题描述 投票:0回答:1

我正在尝试对已按 pId 分组的现有数据集进行排序。我尝试了sortField,但它是在摸索之前应用的,实际上,期望的是先groupBy然后sort。

这是我的 subDataSet 和 datasetRun:

<subDataset name="currentDuesDataSet" uuid="c3f7bf4a-f29f-4ea2-82ec-16e32eb83f03">
        <field name="cId" class="java.lang.String"/>
        <field name="mId" class="java.lang.Integer"/>
        <field name="pId" class="java.lang.Integer"/>
        <field name="nameFirst" class="java.lang.String"/>
        <field name="chaser" class="java.lang.String"/>
        <field name="pName" class="java.lang.String"/>
        <field name="nameLast" class="java.lang.String"/>
        <field name="totalPremium" class="java.lang.Double"/>
        <variable name="totalPremiumCost" class="java.lang.Double" resetType="Group" resetGroup="RECORDS_PER_PURCHASER" calculation="Sum">
            <variableExpression><![CDATA[$F{totalPremium}]]></variableExpression>
        </variable>
        <group name="RECORDS_PER_PURCHASER">
            <groupExpression><![CDATA[$F{pId}]]></groupExpression>
        </group>
    </subDataset>

<datasetRun subDataset="currentDuesDataSet" uuid="c211cfad-9404-4469-af7d-e4b2df7ba716">
        <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{list})]]></dataSourceExpression>
</datasetRun>

尝试参考:

如何对jasper报表中的字段进行排序

https://community.jaspersoft.com/jasperreports-library/issues/4807

感谢提前回复。

jasper-reports
1个回答
0
投票

如果您想在添加排序字段时保留组,则必须在所需排序字段之前添加组值的排序字段。

所以你会有这样的东西:

<sortField name="pId"/>
<sortField name="fieldToBeSortedOn"/>

请注意,这将导致数据按 pId 排序(如果尚未排序)。

© www.soinside.com 2019 - 2024. All rights reserved.