關於iReport報表的分頁


問題:二手車認證系統的檢測報告采用iReport開發,開發者自定義了一張超級長的紙張,導致打印時自動縮放到了一張A4紙上。需要修改使之能夠合理的分頁打印,這是來到新公司的第一個任務。

Image
解決方案一:

1、iReport報表自定義頁面,需要分頁的地方使用分頁符 進行分頁
2、生成PDF報表

3、按照如下說明進行打印

Image


采用這種方式,顯示出的PDF報表有大片空白,但是打印是正常的。查看PDF時每頁下方大片的空白導致用戶體驗極差,不采用此方式。

方案二:

還是使用“自定義”紙張,采用“海報”方式打印,PDF會自動把一張很長的頁面的內容拆分到多個A4頁面上,需要仔細調整每頁的內容。

Image


注:得用IE瀏覽器,360、谷歌等瀏覽器需要先另存到本地,然后再使用Adobe Reader自己提供的打印功能。



教客戶使用時又發現問題了,因為是使用 Image開發和調試的,但是到了實際的打印機上分頁效果不一樣。
方案三:

把每一頁的內容單獨放到一個子報表上,然后父表去調用6個子報表。每個子表前放一個分頁符。這樣終於完美解決問題了。














iReport分頁打印開發調試過程中遇到的坑總結如下:

1、如果在子表中使用 Text Field 控件直接顯示參數,那么不要放在 Detail 區,顯示不出來(如果也同時顯示從數據庫中查詢出的表數據,那么 Detail 區應該能顯示出來);要放在 Page Header 或者 Title 區。

2、Field放在Detail區,也可以在 Page Header 區。

3、報表的 When No Data 屬性,選擇“All Sections,No Detail”。

4、在[窗口]-[組件面板]中可以找回組件面板。

5、主表的數據是從Java代碼中通過JSON格式傳進去的,主表中定義了200來個Field,如果需要在子表中使用這些數據,那么需要在子表中定義參數,然后在主表 Subreport 控件的 Parameters 屬性中對子表參數賦值。

Image1



菊子曰 本文用 菊子曰發布


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM