0

我有一个使用 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>

您会看到,这两个子报表具有相同的代码。

奇怪的是,两个子报表显示,但第一个子报表的数据不完整,而那些丢失的数据在第二个子报表中。预期的行为是,两个子报表应该是两个相同的完整数据。

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

4

1 回答 1

0

只是在这里猜测,但也许您只看到完整的第一个子报告..?您不能在不倒带的情况下使用相同的数据源两次,请参阅: 如何在 JasperReports/iReport 中使用相同的数据源两次

于 2012-12-19T13:46:44.780 回答