1

我有一个带有饼图的 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 提供给任何认为会有所帮助的人。

4

1 回答 1

2

我发现了问题。除了图表数据集向导中的选项外,图表属性下还有一个单独的选项,称为“评估时间”。我将评估时间选项设置为我的集团“合同”,问题就解决了。

于 2013-07-19T03:22:51.787 回答