我有一个带有饼图的 Jasper 报告,该报告正在 group_footer 为我的组“合同”绘制。合同组此时返回两行,我使用的是整数 1 和 3 的合同 ID。当我在 group_footer 中打印合同 ID 时,它会按预期打印 1 和 3。但是,当我尝试将相同的合同 id 传递到同一个 group_footer 中饼图的 datasetrun 时,两个图表的传递给参数的值都是 3(我正在使用数据库服务器上的语句记录查看 SQL) . 我无法弄清楚它是如何两次发送第二个值“3”的。正如我所提到的,合同 ID 在图表旁边的报告上打印为“1”组中的第一项。
这是我的带有参数“currentContractId”的子数据集:
<subDataset name="age_stats" uuid="44847f01-474b-4228-96e9-ea5ab992f67b">
<property name="....data.defaultdataadapter" value="database"/>
<parameter name="currentContractId" class="...Integer" isForPrompting="false"/>
<queryString>
<![CDATA[SELECT * FROM table WHERE column = $P{currentContractId}]]>
</queryString>
<field name="age" class="java.lang.String"/>
<field name="count" class="java.lang.Long"/>
</subDataset>
这是我试图将字段“id”传递到上面的子数据集的“currentContractId”参数的图表数据集运行:
<pieDataset maxCount="6">
<dataset>
<datasetRun subDataset="age_stats" uuid="75d14f7c-f94e-4749-860f-ea95c2134e9c">
<datasetParameter name="currentContractId">
<datasetParameterExpression><![CDATA[$F{id}]]></datasetParameterExpression>
</datasetParameter>
</datasetRun>
</dataset>
</pieDataset>
我很高兴将完整的 jrxml 提供给任何认为会有所帮助的人。