Java iReport:预览报告,其中子报告已通知参数

Java iReport:预览报告,其中子报告已通知参数,java,jasper-reports,ireport,Java,Jasper Reports,Ireport,如何在iReport中预览以获取包含子报表的报表,并在子报表参数中发送 JRXML中的子报表示例: <subreportExpression class="java.io.InputStream"><![CDATA[$P{SUBREPORT}]]>/subreportExpression> 有错误消息、堆栈跟踪或其他什么吗 subreportExpression标记是子报表所在位置的相对路径或完整路径。 像这样的东西是有效的 <subreportExpres

如何在iReport中预览以获取包含子报表的报表,并在子报表参数中发送

JRXML中的子报表示例:

<subreportExpression class="java.io.InputStream"><![CDATA[$P{SUBREPORT}]]>/subreportExpression>

有错误消息、堆栈跟踪或其他什么吗

subreportExpression标记是子报表所在位置的相对路径或完整路径。 像这样的东西是有效的

<subreportExpression  class="java.lang.String"><![CDATA["..\jasper\subReportInvoice.jasper"]]></subreportExpression>


当您希望将参数或参数传递给子报表时,必须首先在主报表(即调用子报表的报表)中的queryString标记之前声明它

<!-- This is declared before my queryString tag tag -->
<parameter name="AGENCY_ID" isForPrompting="true" class="java.lang.Long"/>
<parameter name="TREATPROC_SUBTYPE_ID" isForPrompting="true" class="java.lang.Long"/>
<parameter name="PRODUCT_TYPE_CATEGORY_ID" isForPrompting="true" class="java.lang.Long"/>

<!-- This goes into my subreport tag -->
<subreport  isUsingCache="true">
                <reportElement
                    mode="Opaque"
                    x="0"
                    y="20"
                    width="900"
                    height="20"
                    forecolor="#000000"
                    backcolor="#FFFFFF"
                    key="subreport-2"
                    stretchType="NoStretch"
                    positionType="FixRelativeToTop"
                    isPrintRepeatedValues="true"
                    isRemoveLineWhenBlank="false"
                    isPrintInFirstWholeBand="false"
                    isPrintWhenDetailOverflows="false"/>
                <subreportParameter  name="AGENCY_ID">
                    <subreportParameterExpression><![CDATA[$P{AGENCY_ID}]]></subreportParameterExpression>
                </subreportParameter>
                <subreportParameter  name="PRODUCT_TYPE_CATEGORY_ID">
                    <subreportParameterExpression><![CDATA[$P{PRODUCT_TYPE_CATEGORY_ID}]]></subreportParameterExpression>
                </subreportParameter>
                <subreportParameter  name="TREATPROC_SUBTYPE_ID">
                    <subreportParameterExpression><![CDATA[$P{TREATPROC_SUBTYPE_ID}]]></subreportParameterExpression>
                </subreportParameter>
                <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
                <subreportExpression  class="java.lang.String"><![CDATA["..\jasper\subReportInvoice.jasper"]]></subreportExpression>
            </subreport>

必须使用subreportParameter和subreportParameterExpression标记传递子报表查询所需的所有参数,如我的示例所示

我希望这有帮助

<subreportExpression  class="java.lang.String"><![CDATA["home\josh\jasper\subReportInvoice.jasper"]]></subreportExpression>
<!-- This is declared before my queryString tag tag -->
<parameter name="AGENCY_ID" isForPrompting="true" class="java.lang.Long"/>
<parameter name="TREATPROC_SUBTYPE_ID" isForPrompting="true" class="java.lang.Long"/>
<parameter name="PRODUCT_TYPE_CATEGORY_ID" isForPrompting="true" class="java.lang.Long"/>

<!-- This goes into my subreport tag -->
<subreport  isUsingCache="true">
                <reportElement
                    mode="Opaque"
                    x="0"
                    y="20"
                    width="900"
                    height="20"
                    forecolor="#000000"
                    backcolor="#FFFFFF"
                    key="subreport-2"
                    stretchType="NoStretch"
                    positionType="FixRelativeToTop"
                    isPrintRepeatedValues="true"
                    isRemoveLineWhenBlank="false"
                    isPrintInFirstWholeBand="false"
                    isPrintWhenDetailOverflows="false"/>
                <subreportParameter  name="AGENCY_ID">
                    <subreportParameterExpression><![CDATA[$P{AGENCY_ID}]]></subreportParameterExpression>
                </subreportParameter>
                <subreportParameter  name="PRODUCT_TYPE_CATEGORY_ID">
                    <subreportParameterExpression><![CDATA[$P{PRODUCT_TYPE_CATEGORY_ID}]]></subreportParameterExpression>
                </subreportParameter>
                <subreportParameter  name="TREATPROC_SUBTYPE_ID">
                    <subreportParameterExpression><![CDATA[$P{TREATPROC_SUBTYPE_ID}]]></subreportParameterExpression>
                </subreportParameter>
                <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
                <subreportExpression  class="java.lang.String"><![CDATA["..\jasper\subReportInvoice.jasper"]]></subreportExpression>
            </subreport>