如何集成開源圖表及報表到自研項目中

自助報表需求已經是越來越普遍,各行業的應用軟件中,不管是主動還是被動,都在思考並在努力實現自助報表功能

這樣做對於用戶來說,可以自由靈活的去分析瞭解數據,不再拘泥於固定格式的數據報表,方便靈活、體驗更好的同時,也能盤活更多數據的價值

對於應用軟件廠商來說,則能省去很多開發和維護成本,還同時拓寬了自己的業務範圍,增強了自身的競爭力

那怎麼實現呢

BI 系統中通常都有這個功能,但並不在應用系統中,使用時,還得兩個系統來回切換,很不方便,還是得應用系統中自己有用起來才更順手

找一個可以被集成的自助報表組件

完全自己做還是比較困難的,工作量非常大。所以,第一步是找個現成的組件

但這一步其實挺難的,市面上有自助報表功能的產品挺多,但基本都是前面說到的完整的 BI 平臺解決方案,把一個系統平臺集成到另一個應用系統中,難度非常大而且還不流暢,而這些平臺也沒有把自助報表當成一箇中間件獨立的拆出來供用戶來集成,所以挺難

方便被集成的,以中間件形式提供產品的,目前貌似也就潤乾報表了

獲取方法:

1 下載安裝包並安裝: http://www.raqsoft.com.cn/download/download-jsbb

2 下載開源依賴文件並替換:http://c.raqsoft.com.cn/article/1619664848326

潤乾自助報表模塊是開源的,在普通安裝包裏替換這個文件後就可以免費使用了

集成過程

我們以方便集成的潤乾報表爲例來看一下集成過程

當前大部分數據信息化項目都是 java 的,潤乾的自助報表是標準的 j2ee 應用,只需要把 jar 包,xml 和 tag 描述文件放到應用下就可以了,並沒有什麼難度

imagepng

第一步:複製jar包

imagepng

把自助報表jar包和相關文件複製到到自己應用對應的目錄中

如果還有一些其他的需求,比如導出EXCEL等,再把需要的包複製一下就可以了,具體操作時可以參考文檔進行

第二步:應用配置

1 把潤乾web.xml中的內容抄進應用的 web.xml 文件中並按要求的順序合併

2 在raqsoftConfig.xml配置要分析的數據源等信息

第三步:準備數據集

準備一個要用來做自助報表的數據集,我們用來自如下訂單表的一句SQL作爲數據集

select * from 訂單

imagepng

第四步:發佈自助報表

在jsp中用tag標籤配置這個數據集,並把jsp發佈到服務器

imagepng

然後就可以通過url訪問了,並進行自助操作

imagepng

imagepng

就這麼簡單,在jsp中加入tag標籤,自助報表功能就集成到自己的應用中了

更完整詳細的集成過程可以參考:

怎樣在應用中集成自助報表功能

另外,潤乾自助報表不僅可以被集成,而且還是開源的,集成以後,還可以對頁面進行更深層次的改造,讓頁面和功能可以更好的適配自己的系統

功能漫遊

基本功能集成後,我們再來看一下自助報表能做到什麼效果

報表樣式

常規的列表、分組、交叉等樣式是所有組件的基本功

imagepng

imagepng

imagepng

複雜程度高一些的,比如下面這個多層分組交叉,能力強一些的製作也都沒有問題

imagepng

這些報表也都可以導出、打印,功能完整

還可以利用現成的模板生成各類統計圖

imagepng

imagepng

imagepng

計算能力

大處看樣式,細節看計算。相同的樣式背後,涉及的計算可能大有不同,有些只需要做簡單的統計彙總,有些則需要做複雜的的排名,佔比,同比環比等

工具的自助能力各有不同,有的製作起來簡單,有的繁瑣,有的也可能做不了

排名

imagepng

佔比

imagepng

同比環比

imagepng

imagepng

累積

imagepng

複雜條件過濾

imagepng

數據來源

自助報表的作用是爲了分析數據,是爲了把各類抽象的數據變成具象易懂的圖表,應用系統集成自助報表後,自然會希望它可以處理各中類型的數據,應對各類的場景,這就需要工具可以支持各類不同的數據來源纔可以,臨時來一個文件數據可以分析,只給一句SQL也能做表,遇到複雜多庫表關聯的沒問題,方便多次複用的語義層工具也有,想控制權限還能控制權限,各種場景都能應付自如纔行

文件數據源分析

數據來源是EXCEL文件,data.xls

imagepng

在jsp中通過tag標籤配置這個EXCEL,然後發佈頁面

imagepng

發佈後業務人員就可以看到EXCEL中的數據,並可以對其進行報表製作了

imagepng

SQL數據源分析

“集成過程”章節中用到的示例,就是用的來自SQL的數據源,這裏就不重複說明了,有需要的可以翻到上面再看一下

語義層

臨時的,簡單的分析直接基於SQL來做會比較方便。重複的,頻繁的分析如果每次寫SQL,每次都得as中文名稱,join,增加指標就會挺麻煩

通過語義層來解決這些問題效果就會好很多

定義好語義層:

imagepng

raqsoftConfig.xml中添加物理數據源和語義層(DQL)數據源

imagepng

Jsp中通過標籤調用定義好的語義層文件數據來源,頁面展現時候就可以看到中文字段了

imagepng

自助數據源

前面的三種數據來源是技術人員定義好數據集以後給業務用戶直接用的,如果業務用戶想自己定義數據集,自己來設置要分析哪些字段,也是可以的,當然前期還得技術人員協助設置一下元數據,因爲如果直接讓用戶面對數據庫的數據去操作,用戶是理解不了這些複雜的表名和之間的關係的,也無從下手的

imagepng

imagepng

技術人員設置好基礎的元數據字典文件後,在jsp中通過tag標籤設置對應文件,發佈後用戶就可以看到如下界面了,左面已經是可以輕鬆理解的中文名稱了

imagepng

imagepng

業務人員自助選擇自己要分析的字段,拖拽後生成新的數據集,然後進入自助報表頁面就可以看到新的數據集並進行報表製作了

imagepng

權限控制

有了語義層後也可以控制數據權限了

imagepng

上圖中“員工分析”這個分類只能看到勾選的表和字段裏的數據

也可以單獨針對某個表進行權限控制,還可以控制同一個表,不同的人看到不同的數據,比如每個銷售只能看到自己的訂單

imagepng

到這裏,主要的功能就基本都羅列到了,如果一個自助報表工具以上能力都具備,那功能方面就可以過關了

總結

應用中怎麼實現自助報表功能,最難的地方其實是:怎麼找一個功能全面且能集成的工具,這個難題解決後,剩下的具體集成對於工程師來說就不算什麼難事了,現在難題也被解決了,站在別人的肩膀上不說看的更高走的更遠吧,起碼能省很多事了,接下來要做的,就是實際集成一次,親自驗證一下看看到底能不能滿足自己的需求了

潤乾報表資料

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章