【发布时间】:2020-11-19 04:58:59
【问题描述】:
如果我有一个包含两个字段的 Jasper 报告。例如:
<field name="counts" class="java.util.List"/>
<field name="names" class="java.util.List"/>
如果计数字段如下所示,是否可以在报告中使用名称字段“查找”counts 字段中的值:
[{"Bob":10},{"Bill":5},{"John":2}]
所以在报告中我使用 subDataSet 遍历名称:
<subDataset name="nameDetails" uuid="6f0e513d-9659-4dea-8c88-0fa9522d6aef">
<field name="name" class="java.lang.String">
<fieldDescription><![CDATA[name]]></fieldDescription>
</field>
</subDataset>
<componentElement>
<reportElement x="0" y="40" width="200" height="60"/>
<jr:list printOrder="Vertical">
<datasetRun subDataset="nameDetails">
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRMapCollectionDataSource($F{names})]]></dataSourceExpression>
</datasetRun>
<jr:listContents height="60" width="200">
<textField>
<reportElement x="0" y="0" width="200" height="20"/>
<textFieldExpression><![CDATA["Name: " + $F{name}]]></textFieldExpression>
</textField>
...
这会在名称字段中打印出每个人的姓名,但另外我想使用每个人的“姓名”来查找 counts 字段中的人的计数,但不确定我是否可以这样做还是怎么做?
【问题讨论】:
标签: jasper-reports