Jasperreports - 两个子报告,相同的jrxml,相同的pojo数据源

时间:2012-12-12 02:21:17

标签: java jasper-reports datasource ireport pojo

我使用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>

你看,两个子报告具有相同的代码。

奇怪的是,两个子报表显示,但第一个子报表的数据未完成,缺少的数据位于第二个子报表中。预期的行为是,两个子报告应该有两个相同的完整数据。

我在这里遇到某种并发问题吗?如果有人可以验证......

1 个答案:

答案 0 :(得分:0)

只是在这里猜测,但也许你只看到完整的第一个子报告..?如果没有倒带,则不能使用相同的数据源两次,请参阅: How to use the same datasource twice in JasperReports/iReport