我使用iReport在jasperreports 2.0.4中创建了一个报告。我有两个子报告。这两个子报表共享相同的jrxml。我将jrxml作为子报表的报表表达式传递给参数。我有这个参数的代码
<parameter name="SUB_EXP" class="net.sf.jasperreports.engine.JasperReport"/>
一切正常。问题在于两个子报告数据源
这些子报告的数据源来自作为参数传递的POJO的 SAME 列表
<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>
你看,两个子报告具有相同的代码。
奇怪的是,两个子报表显示,但第一个子报表的数据未完成,缺少的数据位于第二个子报表中。预期的行为是,两个子报告应该有两个相同的完整数据。
我在这里遇到某种并发问题吗?如果有人可以验证......
答案 0 :(得分:0)
只是在这里猜测,但也许你只看到完整的第一个子报告..?如果没有倒带,则不能使用相同的数据源两次,请参阅: How to use the same datasource twice in JasperReports/iReport