0
如何在iReport中預覽以獲取具有子報表的報表,並將其發送到子報表參數中?iReport:帶有子報表的預覽報告通知參數
例子報表在JRXML:
InputStream subreport = new ByteArrayInputStream(reportInBytes);
parameters.put("SUBREPORT", subreport);
如何在iReport中預覽以獲取具有子報表的報表,並將其發送到子報表參數中?iReport:帶有子報表的預覽報告通知參數
例子報表在JRXML:
InputStream subreport = new ByteArrayInputStream(reportInBytes);
parameters.put("SUBREPORT", subreport);
任何錯誤消息,堆棧跟蹤或東西:在Java
<subreportExpression class="java.io.InputStream"><![CDATA[$P{SUBREPORT}]]>/subreportExpression>
實施例參數?
subreportExpression標記是子報表所在位置的相對路徑或完整路徑。 像這樣的東西是有效的
<subreportExpression class="java.lang.String"><![CDATA["..\jasper\subReportInvoice.jasper"]]></subreportExpression>
或
<subreportExpression class="java.lang.String"><![CDATA["home\josh\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標籤所示在我的例子進行傳遞。
我希望這會有所幫助。
我會試試這個方法。謝謝! – 2013-05-13 12:04:29