Jasper reports 具有自己查询的子报表呈现为空(仅显示标题)

Jasper reports 具有自己查询的子报表呈现为空(仅显示标题),jasper-reports,subreport,Jasper Reports,Subreport,我试图用一个子报表执行一个报表,它只填充主报表。我以Java语言生成报告,并用以下内容填充报告: JasperFillManager.fillReport(report, paramsMap, DataSourceUtils.getConnection(SingletonSpring.getDataSource())) 生成的jrxml报告如下所示: .... <parameter name="Subreport0" class="net.sf.jasperreports.en

我试图用一个子报表执行一个报表,它只填充主报表。我以Java语言生成报告,并用以下内容填充报告:

JasperFillManager.fillReport(report, paramsMap, DataSourceUtils.getConnection(SingletonSpring.getDataSource()))
生成的jrxml报告如下所示:

    ....

<parameter name="Subreport0" class="net.sf.jasperreports.engine.JasperReport"/>

    ....

<queryString>
    <![CDATA[...]]]>
</queryString>

    ....

<band>
    <frame>
        <reportElement x="0" y="0" width="960" height="0" uuid="d6549c83-20a3-45b6-bd5e-0f2a545b9aec"/>
        <subreport>
            <reportElement x="0" y="0" width="960" height="0" uuid="5c65dc87-4ff9-4126-ade6-0bf7e76cce5c"/>

            ...[some parameters]...

            <dataSourceExpression><![CDATA[$P{REPORT_DATA_SOURCE}]]></dataSourceExpression>
            <subreportExpression><![CDATA[$P{Subreport0}]]></subreportExpression>
        </subreport>
    </frame>
</band>
。。。。
....
....
…[某些参数]。。。
子报告0
参数中,我传递生成的子报告。在子报表中有一个不同的“一”查询


当我执行此操作时,生成的pdf填充主报表数据,而不是子报表数据,只填充标题。

因为子报表有自己的数据集(您编写它是基于查询的),所以不需要传递父数据源

通过连接后,问题很可能会得到解决。在
$P{report\u connection}
参数和
connectionExpression
属性的帮助下,尝试传递父报表的连接(当然,如果两个报表使用相同的数据库,则是这样),而不是使用
dataSourceExpression
属性传递数据源

子报表元素如下所示:

<subreport>
    <reportElement x="0" y="0" width="960" height="0"/>

    ...[some parameters]...

    <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
    <subreportExpression><![CDATA[$P{Subreport0}]]></subreportExpression>
</subreport>

…[某些参数]。。。

您应该使用
子报表0
参数初始化并通过参数传递代码段您是否尝试将连接(而不是
数据源表达式
)传递到子报表?不,我不尝试。我要试试完美!现在它开始工作了!非常感谢。不客气:)