jasper 2.0.5中的子报表未显示在主报告pdf中

时间:2019-04-12 14:34:18

标签: java jasper-reports

我正在为Java应用程序在主报告jrmxl中设置一个子报告。我目前正在使用iReports 2.0.5进行开发,无法使用其他版本。

当我运行测试以生成带有报告的pdf时,在日志中似乎可以识别它并运行stringquery并在输出中设置参数,但是在pdf中仅显示主报告数据。

这是主要报告子报告标记

<jasperReport
         name="triageSummary"
         columnCount="1"
         printOrder="Vertical"
         orientation="Portrait"
         pageWidth="595"
         pageHeight="842"
         columnWidth="519"
         columnSpacing="0"
         leftMargin="51"
         rightMargin="25"
         topMargin="20"
         bottomMargin="20"
         whenNoDataType="NoPages"
         isTitleNewPage="false"
         isSummaryNewPage="false">
    <property name="ireport.scriptlethandling" value="0" />
    <property name="ireport.encoding" value="UTF-8" />
    <import value="java.util.*" />
    <import value="net.sf.jasperreports.engine.*" />
    <import value="net.sf.jasperreports.engine.data.*" />

    <parameter name="SubRel_Cabecalho" isForPrompting="false" class="java.net.URL"/>

    <subreport  isUsingCache="true">
        <reportElement
            x="1"
            y="3"
            width="481"
            height="18"
            key="subreport-1"/>
        <subreportParameter  name="I_LANG">
            <subreportParameterExpression><![CDATA[$P{ID_LANGUAGE}]]></subreportParameterExpression>
        </subreportParameter>
        <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
        <subreportExpression  class="java.net.URL"><![CDATA[$P{SubRel_Cabecalho}]]></subreportExpression>
    </subreport>

</jasperReport>

在我的Java中,我配置了一个Hibertante连接以便生成报告并将参数作为资源传递

this.putParameterResource("SubRel_Cabecalho", "/reports/audit/edis_audit_cabecalho_analise.jasper");

我的主要问题是在生成报告时,仅显示主报告的数据,而不打印子报告。我缺少一些配置以显示子报表?

1 个答案:

答案 0 :(得分:1)

尝试一下,

SubRel_Cabecalho定义为数据类型为`class =“ java.lang.String”

的参数
<parameter name="SubRel_Cabecalho" isForPrompting="false" class="java.lang.String/>

然后使用它传递子报告文件路径

HashMap<String, Object> parameterMap = new HashMap<String, Object>();
parameterMap.put("SubRel_Cabecalho", "/reports/audit/edis_audit_cabecalho_analise.jasper");