Eclipse RCP用來開發Java客戶端應用非常爽,現在它本身也有BIRT報表項目 支持Eclipse RCP中使用報表。不過四年前我開始開發時,卻沒這麼幸運,於是怎 麼在RCP中生成報表成我一個頭痛的事情。
琢磨了幾天,終於讓我想出一個在我的Eclipse RCP程序中使用JasperReport 報表的方法:
1、報表模版存放在服務端特定的一個資源目錄下。
2、客戶端獲得客戶輸入的報表參數(查詢范圍、分組條件)及對應報表模版 名稱(與服務端有命名約定)
3、客戶端提交request對象至服務端後,服務端將報表參數、數據庫連接(我 會將jdbc參數從服務端傳入)調用jasperreport報表引擎生成jprint文件。服務 端返回jprint文件內容至客戶端同步方法。
4、客戶端將返回的jprint內容存儲至臨時文件中,通過SWT_AWT橋接器調用 JRViewer顯示jprint文件(即顯示報表)
思路想通,我只用了三個小時就完成了客戶端與服務端通用報表程序的開發, 唉,所以說做事情想清楚最重要,想不清楚時動手還不如多睡會呢!
看看我們系統中的表現吧?
BTW:最後一張圖中的漏斗圖不是JasperReport生成的(它沒做漏斗圖),是 我自己做的一個小控件(不過蠻難看的,幸好大家都安慰我說比沒有強,真是讓 人欣慰呀!!!)