2015-11-02 51 views
-2

請幫我我有該項目的最後期限。將子報表的所有迭代細節帶到一起。在下一個細節樂隊印前

我有SubReportdetailBand1,它有List dataSource迭代。

第二detailBand2具有一定的靜態數據和它後面是detailBand3再次具有List dataSource一個subreport

  1. 我想首先迭代的detailBand1(取決於 元素數列表。)要打印

  2. 然後DetailBand2一旦印刷(因爲它有靜態文本)。

  3. 後面跟着DetailBand3及其所有元素。

例子:

Example

報告佈局 Image of jasper report layout

+0

爲什麼所有這些細節樂隊?,子報表需要重複或不重複...從我看到的不是!!,重複是在子報表內!嘗試使用其他樂隊..標題ecc。並考慮組,如果你需要控制分頁 –

+0

@PetterFriberg子報告需要重複,它正在重複。但是在打印一次之後,打印出詳細的band2數據,然後在detailBand1的第二次迭代中打印完畢。例如在上面的代碼中,如果有2個位置。對於第一個位置,子報表數據被打印,然後是詳細band2的內容​​,然後是第二個位置的detailBand1內容被打印。我希望首先將detail1的所有迭代都打印在一起,然後是detailBand2的內容​​。謝謝。 –

回答

0

Simplifing你的問題是它不可能性呢?

頻帶1(記錄1)

頻帶1(記錄2)

波段2(記錄1)

波段2(記錄2)

在不改變數據源此不可能

因此,頻帶2實際上是詳細信息區域

<detail> 
    <band/> //Band 1 
    <band/> //Band 2 
</detail> 

內部,以便執行將是

頻帶1(記錄1)

波段2(記錄1)

頻帶1 (記錄2)

Band2(記錄2)

如果你是絕對不想重新考慮你的報表結構,這可以achived在您的數據源複製數據,設置上覆制數據屬性來理解,如果在band1band2寫,然後使用上的Print When Condition帶。

在這種情況下,您的數據源變爲:

  • 記錄1(屬性:帶1)
  • 記錄2(屬性:帶1)
  • 記錄1(屬性:帶2)
  • 記錄2(屬性:頻帶2)

band1具有Print When Condition: property=band 1

band2Print When Condition property=band 2

不過,我建議你使用組樂隊和子報表才達到期望的結果重新考慮你的報告和數據結構。

+0

感謝您的快速響應。對於這些報告來說,新手可以分享使用組樂隊和子報告的一些示例。我可以更改報告的結構。感謝 –

+0

網絡上有很多示例(使用您最喜愛的搜索引擎),嘗試找出什麼是您的主要數據集(也許沒有,可以是JREmptyDataSource(1),在子報表中完成的所有查詢都是多個)。假組的樂隊(你分組的價值,總是相同的,所以你只有一個組),是有效的控制分頁,因此,你可以設置最小高度屬性ecc。如果你制定了一些可以工作的問題,並且在發佈新問題時仍然有問題,請記住包括相關代碼和明確的問題描述。 –

+0

@Abhinav Sharma考慮接受答案,關閉這個問題 –