前一段時間,被導師安排對報表開發工具做調研,之后就一度泡在各大博客、論壇里,盡可能全面的搜集了幾款報表工具的優缺點,攢成了《java報表工具報表軟件選型經驗總結分享》。不過大多都是直接抄的百度百科的介紹(嘿嘿…),並沒有真的去挨個進行試用。還好導師看過后基本認可,接下來就只安排了對其中兩種報表工具做深入對比,同樣要求提交書面對比報告……
對比報表工具:
BIRT、潤乾報表
原因:
一個是開源的免費,另一個是商用最便宜的……好吧,我承認我們真的很窮~~~
意外的是,在試用潤乾報表的過程中,在論壇上發現居然有免費的版本,相信到時心里的天平又會傾斜一點了吧。潤乾報表免費版參考鏈接是:
http://c.raqsoft.com.cn/article/1543913283529
試用環境:
Window 10 操作系統、JDK 1.8.0_73
對比內容
1. 通過DEMO演示初步了解
BIRT:
暫時沒找到相關信息。
潤乾報表:
地址:http://report5.raqsoft.com.cn/ ,包括:大屏多組件展示,基本報表(分組報表、網格式報表、報表組等),參數查詢(模糊查詢、下拉選擇、下拉日歷等),圖形展示(儀表盤、地圖、線圖、柱狀圖、餅圖等),復雜報表(折疊表、交叉報表等),填報表,多種打印導出方式…,等等。
小結:
大致看完,潤乾報表的demo演示,不管是不是老王賣瓜,總體感覺功能比較全面。而BIRT因為沒有找到demo演示,所以需要在后面的具體試用中慢慢積累總結和體會。
2. 下載和安裝
BIRT
下載地址:http://download.eclipse.org/birt/downloads/ ,如下圖所示,直接點擊“Download Now”進行下載,建議下載All-in-One版本。下載完成后,是一個包含了birt報表插件的eclipse文件夾。選擇下載All-in-One版本可以避免不少麻煩事,特別是:在eclipse中安裝birt插件時出現的各種問題。
安裝BIRT時,需要注意All-in-One版本是免安裝的,直接解壓就可以使用(如下圖),前提是操作系統事先要配置好java環境變量且版本高於jdk 1.7。
然后,點擊“eclipse.exe”啟動,之后就可以開發報表了。
另外,對於英文水平不咋地的我,為了更方便地試用,在網上專門找了漢化包,但是漢化似乎不太完全,還有好多地方是英文,后面也就只能自求多福了,呵呵呵…
潤乾報表
下載地址:http://www.raqsoft.com.cn/download/download-jsbb ,根據自己的操作系統選擇下載相應的安裝包,如下圖,點擊”windows版”進行下載,下載完成后,是一個壓縮包,例如report-v2018-install-2018-1122.zip。
緊接着,下載授權文件,地址:http://c.raqsoft.com.cn/article/1543290396308 ,下載完成后,同樣是一個壓縮包reportV2018trialLicense20181231.zip,解壓后是一個以xml結尾的文件reportV2018trialLicense20181231.xml,其中包含了潤乾報表工具的授權控制信息。
解壓report-v2018-install-2018-1122.zip壓縮包,運行report-V2018-install-20181122.exe,下一步……下一步……進行安裝。
安裝后,桌面會生成如下快捷方式
雙擊運行”潤乾報表v2018” ,然后根據提示指定授權文件(就是前面提到的xml文件)。然后,打開設計界面如下:
小結:
對比兩個工具的下載和安裝:
a). 安裝包獲取都比較容易;
b).安裝BIRT需要事先准備JAVA環境,而潤乾報表不需要此操作,安裝包自帶一套完整的應用體系;
c).BIRT運行沒有授權證書控制,而潤乾報表運行需要授權證書,不過好在這個授權永久免費也還可以。
3. 清單式報表對比開發
初步設想,先使用示例數據庫,做一個比較簡單的清單式報表。效果如下:
具體操作:
BIRT:
a). 首先新建一個Report Project項目, 在”導航器”tab頁中右鍵->新建->Project->選擇"Business Intelligence and Reporting Tools"節點下的"Report Project"->點擊【Next】->輸入項目名字為:My Project ->點擊【Finish】,這時項目已經創建完成了。緊接着出現的一個對話框會詢問是否打開關聯的視圖(報表視圖),點擊【Yes】進入報表視圖,出現如下圖說明項目已經創建成功了。
b). 創建報表 右鍵My Project項目-> 新建 -> Report ,輸入文件名為:Customers.rptdesign(rptdesign后綴為birt報表文件),點擊“Next” ,然后選擇“Simple Listing”(列表模板),然后點擊“Finish”,切換到報表視圖。
c). 建立數據源 切換到“Data Explorer”視圖,選中“Data Sources”,右鍵點擊它,在右鍵菜單中點擊“New Data Source” 出現了“New Data Source”對話框,選中“Classic Models Inc. Sample Database”數據庫(這個是birt提供的示例數據庫),然后輸入數據源的名字:Sample,點擊下一步,再點擊完成,數據源就創建完成了。
d). 建立數據集 切換到Data Explorer視圖,右鍵“Data Sets”,在出現的右鍵菜單中,選擇"New Data Set",“New Data Set”對話框出現了 選擇剛才所創建的“Sample”數據源,選擇“Data Set Type”:SQL Select Query,輸入"Data Set Name":Customer
點擊下一步,輸入查詢語句:select * from customers where country = ‘USA‘
點擊完成后,出現數據集編輯對話框,如下圖:
其中
- Data Source --- 顯示數據集用到的數據源,你也可以改變它
- Query -- 可以用來查看和編輯查詢語句,你可以在"Available Items"里查看數據庫和表
- Output Columns -- 顯示在查詢語句里的列,你能為這個列起別名。
- Computed Columns -- 經過計算而得到的列,跟其他列類型
- Parameters -- 這些參數能包含在查詢語句中,根據條件來進行過濾
- Filters -- 對查詢結果進行過濾
- Preview Results – 預覽前面的查詢語句所查詢到結果
做到這里就有了數據集,接下來,就是把數據以清單的方式在頁面上呈現了。
e). 制作報表 打開“Data Explorer”視圖,選擇“Data Sets”節點下面的“Customer”節點下面的字段名稱如“STATE”,然后將其拖拽到表格中帶有灰色字體“Detail Row”的行單元格中。 其他字段操作同STATE,拖拽后的效果如下圖:
f).保存,預覽
g). 最終效果
至此,終於是畫出來了一張報表,真是歷經千辛萬苦啊… 潤乾報表:
a).啟動示例數據庫,鏈接demo數據源 菜單欄中選擇”本地應用”,然后下拉列表中點擊”啟動示例數據庫”,數據庫啟動完成后,菜單欄中選擇”工具”,然后下拉列表中點擊”數據源”,再打開的數據源列表框中選中”[系統] demo [未連接]”,點擊右側”連接”,就可以連接上demo數據源了,此時demo數據源為字體為粉色” [系統] demo [已連接]”如圖。
b). 創建報表(包含建立數據集) 菜單欄中選擇”文件”,然后在下拉列表中點擊”新建報表” 彈出向導界面,報表類型選擇”普通報表”,數據源為”demo”,數據集名稱為”ds1”(可以按需要修改),數據集類型選擇”sql 檢索”,
其中
- SQL檢索 --- 表示數據集的數據來自數據庫,它是通過SQL語句到數據庫中檢索滿足一定條件的數據,從而形成一個數據集
- 存儲過程 --- 表示數據集的數據來自存儲過程
- 集算器 --- 表示數據集中的數據是從集算器文件中獲取到的,集算器是潤乾特有的數據計算中間產品,能夠連接豐富的數據源並進行高效、靈活的計算,將計算結果直接返回用作潤乾報表的數據集。
- 腳本數據集 --- 表示可直接在腳本編輯區添加遵循集算器語法的計算表達式,是集算器類型的簡約版。
- 文件數據集 --- 表示數據集的數據是從文件中獲取到的,目前支持txt、xls、xlsx、csv、btx(集文件)、ctx(組表文件)六種最常見的文件類型。
- 內建數據 --- 表示數據集的結構和數據都已存入報表模板,運算報表時不需要從數據源取數了 。
- 自定義 --- 表示報表的數據來源比較特殊,需要程序員自己處理生成結果集類文件供報表引用。 在選擇了“SQL檢索”后,在彈出窗口”SQL編輯器”中,雙擊選擇數據表,切換至”數據字段”tab頁選擇需要從數據表中查出的字段
最后,切換到”語法”tab頁可以看到已經自動生成了一個完整的查詢語句
點擊”確定”,返回到向導窗口的”報表類型”界面,點擊下方的”生成網格報表”,可以看到報表已經被程序自動畫好了。(小竊喜……)
c). 保存,預覽
報表文件保存為report_1.rpx,rpx是報表文件的后綴。
d). 最終效果
4. 總結
工具 對比項 |
BIRT |
潤乾 |
開發難度 |
偏難 |
容易 |
耗時 |
2天 |
0.5天 |
清單式報表 |
可以實現 |
可以實現 |
許可證 |
不需要 |
需要,入門版永久免費 |