0
我已經使用類型Java.util.collection的參數的圖表報告。當我試圖在組帶上使用此圖表作爲具有類似Java.util.collection類似參數的主報告的子報告時,圖表值會在組內保持迭代。例如,如果圖表在兩個單獨的頁面中顯示L1 & L2的值。但是,當添加到主報告中的值爲L1時,子報表將顯示L1 & L2而不僅僅是L1。Jasper -Java.util.collection參數從主要到子報告
當參數作爲L1傳遞時,我能否在子報表中顯示L1,而不是在組中的L2 L?
僅供參考,使用JasperSoft這個工作室5.6.1
編輯:
假設我經過2個項目P1和P2從主報表參數,結果現在我得到的是:
- 第1頁主要報告數據P1
- 子報表數據P1
- 子報表數據P2
- 第2頁主報告中的數據P2
- 子報表數據P1
- 子報表數據P2
但是,理想的結果應該是這樣的:
- 第1頁主要報表數據P1
- 子報告數據P1
- 第2頁主報告數據P2
- 子報告數據P2。
我在其中一個組頭中添加了子報表。
主要報告:
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="test_subreport" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="d2616041-39f3-44ce-a1e4-4ce5a6a1593c">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="Dev DB Conn" />
<parameter name="param_project" class="java.util.collection" nestedType="java.lang.Integer">
<parameterDescription>
<![CDATA[]]>
</parameterDescription>
</parameter>
<queryString language="SQL">
<![CDATA[SELECT
i.id prid,c.INUSAGE,d.CURRUSAGE
FROM
project table i, custom table c
where i.id = c.id and $X{IN,I.id,param_project}
]]>
</queryString>
<field name="prid" class="java.math.BigDecimal" />
<field name="INUSAGE" class="java.math.BigDecimal" />
<field name="CURRUSAGE" class="java.math.BigDecimal" />
<group name="Group1">
<groupExpression>
<![CDATA[$F{INVID}]]>
</groupExpression>
</group>
<columnHeader>
<band height="210">
<textField>
<reportElement x="0" y="80" width="80" height="30" uuid="263d8d17-1c40-4709-ba8f-76e27a976c75" />
<textFieldExpression>
<![CDATA[$F{prid}]]>
</textFieldExpression>
</textField>
<subreport>
<reportElement isPrintRepeatedValues="false" x="80" y="2" width="200" height="200" uuid="da630714-b937-493c-9db5-a4baa7128f3d" />
<subreportParameter name="param_invID">
<subreportParameterExpression>
<![CDATA[$P{param_project}]]>
</subreportParameterExpression>
</subreportParameter>
<connectionExpression>
<![CDATA[$P{REPORT_CONNECTION}]]>
</connectionExpression>
<subreportExpression>
<![CDATA["Workload1_added_collection_group1.jasper"]]>
</subreportExpression>
</subreport>
</band>
</columnHeader>
子報表鏈接:subreport
感謝
Sreeram
請編輯您的問題,並在可能的情況下添加'jrxml'信息以及屏幕截圖。你想要什麼樣的方式?你在主要報告中的位置? Tobi, – tobi6
更新了這個問題。添加了jrxml。假設我經過2個項目P1和P2從主報表參數,結果現在我得到的是, 第1頁 主要報表數據P1,子報表數據P1,子報告數據P2 第2頁 主報告數據P2,子報表數據P1,子報告數據P2 但是,理想的結果應該是這樣的, 第1頁 主要報表數據P1,子報告數據P1 第2頁 主報告中的數據P2 ,子報告數據P2。我在第一個子報表中添加了子報表e組頭。 – user2335123
這是否與子報表有關?通常,子報表只能得到它應該顯示的項目,例如P1的「P1 ID」和P2的「P2 ID」。但是,如果您提供一個集合,它將*總是*循環收集數據。 – tobi6