我有一个使用 iReport 在 jasperreports 2.0.4 中创建的报告。我有两个子报告。这两个子报表共享相同的 jrxml。我将 jrxml 作为参数中的子报表的报表表达式传递。我有这个参数的代码
<parameter name="SUB_EXP" class="net.sf.jasperreports.engine.JasperReport"/>
一切正常。问题在于两个子报表数据源
这些子报表的数据源来自作为参数传递的相同POJO 列表
<parameter name="SUB_SRC" class="com.mycompany.myapplication.core.persistence.MyListDataSource"/>
这是两个子报表的子报表 jrxml 代码
第一
<subreport>
<reportElement positionType="Float" x="0" y="0" width="570" height="1"/>
<dataSourceExpression>
<![CDATA[$P{SUB_SRC}]]>
</dataSourceExpression>
<subreportExpression class="net.sf.jasperreports.engine.JasperReport">
<![CDATA[$P{SUB_EXP}]]>
</subreportExpression>
</subreport>
第二
<subreport>
<reportElement positionType="Float" x="0" y="1" width="570" height="1"/>
<dataSourceExpression>
<![CDATA[$P{SUB_SRC}]]>
</dataSourceExpression>
<subreportExpression class="net.sf.jasperreports.engine.JasperReport">
<![CDATA[$P{SUB_EXP}]]>
</subreportExpression>
</subreport>
您会看到,这两个子报表具有相同的代码。
奇怪的是,两个子报表显示,但第一个子报表的数据不完整,而那些丢失的数据在第二个子报表中。预期的行为是,两个子报表应该是两个相同的完整数据。
我在这里面临某种并发问题吗?如果有人可以验证...