1. 程式人生 > >BS系統自定義報表外掛

BS系統自定義報表外掛

設計介面,動態繫結多資料來源等形式,可大大提高開發效率。

於是腦子裡冒出了一個想法,如果fastreport可以用在BS專案中,那麼處理客戶的自定義報表的需求真是非常之方便。萌生了這個想法後,馬上著手進行開發。

開發過程中偶然發現FastReport竟然有一套ClientServer控制元件,它的功能就是客戶機讀取伺服器上的報表檔案進行預覽和列印,我擦~~~~這麼來說我只需客戶端封裝一個activex控制元件不就能實現了麼,這也太~~~~~~簡單了吧。但是後來考慮了下,這樣的話伺服器端必須執行一個server端程式,就只侷限於windows作業系統了。所以果斷pass了這個方案。

FastReport的ClientServer控制元件


最後決定伺服器端還是由java來實現,客戶端通過activex進行呼叫。大家都知道FastReport是通過讀取fr3報表模板檔案來顯示和列印報表的。在BS架構程式中,這些報表模板檔案肯定是要存放在伺服器上。所以我採用了檔案流傳送模式,客戶端發起請求,伺服器將模板檔案以流的形式傳送給客戶端activex控制元件,然後fastreport直接開啟流,進行報表編輯,預覽和列印等操作。同時客戶端如果對報表進行了自定義後也會以流的形式傳回伺服器,然後伺服器會更新相應的報表檔案。

現在客戶可以編輯報表了,最關鍵的問題來了,報表裡的資料怎麼獲取呢?我們都知道在delphi中FastReport是以DateSet作為資料來源來顯示列印資料的。java裡沒有DateSet啊,這可讓老衲如何是好~~~~~

後來上網搜了些資料,發現可以通過xml轉換成DateSet。問題解決。

整個外掛的流程基本上就是在客戶端與伺服器之間的資料轉換~~~~~

目前外掛已經可以自定義報表、預覽報表、列印報表等基本功能。同時加上之前我發的非ie核心支援外掛配合使用,可以支援市面上絕大多數的瀏覽器。

本人已經將兩個外掛打包到了一起。提供給大家下載。同時提供了java呼叫的例子供大家參考。

下載地址:
http://download.csdn.net/detail/xhanhan/4551305


下面一步步的帶著大家對demo進行部署和測試,我們下載的壓縮包解壓後一共有三個資料夾。如下圖



第一個是demo程式、第二個是exe安裝包、第三個是服務端需要引入的jar包

第一步,我們開啟myeclipse將rptDemo專案匯入進來。選擇選單 file-import,彈出如下窗體


選擇“Existing Projects into Workspace”,點選next進入下一個頁面

如圖點選“browse”找到demo程式路徑,選擇然後點選確定,之後點選finish完成匯入,下圖是專案結構

我們只需要修改一下ipConfig.properties檔案



如圖所示rootName為專案跟目錄名稱,這裡不做修改,ip設定為你部署專案機器的ip,port不用說了,大家都懂的。
設定完成以後大家可以將專案部署運行了(具體部署執行就不細說了,大家應該都瞭解)

啟動tomcat後,開啟瀏覽器輸入地址,如下圖


點選報表一,會出現提示未安裝外掛,是否下載。



下載完進行安裝





點選完成完成安裝。接下來回到頁面重新整理一下(如果還提示外掛未安裝,請關閉瀏覽器再開啟即可),會看到四個按鈕,你可以分別點選測試。



1、編輯報表
點選設計報表出現報表編輯窗體。可以看到目前報表顯示編號和姓名兩列,我們可以手動編輯,加入地址列,然後點選儲存(或者按鍵盤ctrl+s),會提示報表儲存成功提示。如下圖





2、預覽
報表儲存後點擊預覽按鈕,可以看到剛才新加的列已經顯示出來,如下圖



您也可以在火狐或者google瀏覽器下測試,目前可支援大部分市面主流瀏覽器

火狐測試效果: