我們平時打印報表中可能遇上很多問題,比如說想通過xml數(shù)據(jù)源制作模板,而非單獨通過數(shù)據(jù)庫sql語句導出數(shù)據(jù),又比如說想實現(xiàn)靜默打印、預覽打印,及批量打印,或者想選擇不同的頁面,系統(tǒng)可根據(jù)自己的選擇,在點擊打印后選擇不同模板進行打印等等這些問題。也許一時半會得不到解決,今天我就來分享一下一些打印報表的問題解決方案。
報表開發(fā)需求描述
系統(tǒng)需求
1、已開發(fā)好的報表模板:供用戶打印及瀏覽;
2、未開發(fā)報表模板:可以讓用戶自主開發(fā)報表模板,并上傳保存到服務器,供后續(xù)打印及瀏覽。
具體需求列表
1、用戶可以通過xml數(shù)據(jù)源制作模板,而非單獨通過數(shù)據(jù)庫sql語句導出數(shù)據(jù);
2、打印系統(tǒng)和報表系統(tǒng)實現(xiàn)單點登錄,以便用戶在系統(tǒng)切換過程中,無需再次登錄便可直接打印;
3、各倉庫報表模板存放于不同目錄下,方便后續(xù)管理;
4、能夠實現(xiàn)靜默打印、預覽打印,及批量打印等;
5、用戶選擇不同的頁面,系統(tǒng)可根據(jù)用戶的選擇,在點擊打印后選擇不同模板進行打印;
6、模板權限控制,用戶只能預覽及打印權限內(nèi)的模板,對于其他模板,則沒有權限進行預覽及打印操作。
工具
報表開發(fā)工具:FineReport
FineReport是一款集數(shù)據(jù)展示(報表)和數(shù)據(jù)錄入(表單)功能于一身,用于快速構建企業(yè)信息系統(tǒng)的Java報表開發(fā)工具。
報表開發(fā)方案概述
報表開發(fā)流程設計
1、業(yè)務人員利用空數(shù)據(jù)的xml數(shù)據(jù)源制作報表;
2、將報表上傳至服務器;
3、用戶選擇打印模塊箭頭;
4、通過動態(tài)生成xml,打印出有數(shù)據(jù)的模板。
業(yè)務人員制作報表
1、通過加載空數(shù)據(jù)的xml數(shù)據(jù)源,獲取數(shù)據(jù)字段;
2、拖拽數(shù)據(jù),制作模板;
3、將制作好的模板,通過開發(fā)的上傳頁面,將模板分類保存到不同目錄下(finereport無法直接完成、需自主編寫上傳)。
業(yè)務人員打印
1、業(yè)務人員在已開發(fā)好的頁面,選擇要打印的模塊;
2、選擇要打印的報表;
3、后臺生成有數(shù)據(jù)的xml,推送給報表模板(有接受參數(shù)接口);
4、直接打印(靜默打印)、或打印預覽(有打印接口)。
xml格式要求
生成的xml,須為二維表結構數(shù)據(jù)

Xml數(shù)據(jù)源轉換
用戶在制作報表時,用的是空數(shù)據(jù)的xml,但打印時,需實時連接有數(shù)據(jù)的xml。通過xml文件名,用參數(shù)形式實現(xiàn)動態(tài)轉換。

批量打印接口調用
直接通過Get或Post方式批量調用模板打印功能即可,如下function
