如何集成開源圖表及報(bào)表到自研項(xiàng)目中
自助報(bào)表需求已經(jīng)是越來越普遍,各行業(yè)的應(yīng)用軟件中,不管是主動(dòng)還是被動(dòng),都在思考并在努力實(shí)現(xiàn)自助報(bào)表功能
這樣做對(duì)于用戶來說,可以自由靈活的去分析了解數(shù)據(jù),不再拘泥于固定格式的數(shù)據(jù)報(bào)表,方便靈活、體驗(yàn)更好的同時(shí),也能盤活更多數(shù)據(jù)的價(jià)值
對(duì)于應(yīng)用軟件廠商來說,則能省去很多開發(fā)和維護(hù)成本,還同時(shí)拓寬了自己的業(yè)務(wù)范圍,增強(qiáng)了自身的競(jìng)爭(zhēng)力
那怎么實(shí)現(xiàn)呢
BI 系統(tǒng)中通常都有這個(gè)功能,但并不在應(yīng)用系統(tǒng)中,使用時(shí),還得兩個(gè)系統(tǒng)來回切換,很不方便,還是得應(yīng)用系統(tǒng)中自己有用起來才更順手
找一個(gè)可以被集成的自助報(bào)表組件
完全自己做還是比較困難的,工作量非常大。所以,第一步是找個(gè)現(xiàn)成的組件
但這一步其實(shí)挺難的,市面上有自助報(bào)表功能的產(chǎn)品挺多,但基本都是前面說到的完整的 BI 平臺(tái)解決方案,把一個(gè)系統(tǒng)平臺(tái)集成到另一個(gè)應(yīng)用系統(tǒng)中,難度非常大而且還不流暢,而這些平臺(tái)也沒有把自助報(bào)表當(dāng)成一個(gè)中間件獨(dú)立的拆出來供用戶來集成,所以挺難
方便被集成的,以中間件形式提供產(chǎn)品的,目前貌似也就潤(rùn)乾報(bào)表了
獲取方法:
1 下載安裝包并安裝: http://www.raqsoft.com.cn/download/download-jsbb
2 下載開源依賴文件并替換:http://c.raqsoft.com.cn/article/1619664848326
潤(rùn)乾自助報(bào)表模塊是開源的,在普通安裝包里替換這個(gè)文件后就可以免費(fèi)使用了
集成過程
我們以方便集成的潤(rùn)乾報(bào)表為例來看一下集成過程
當(dāng)前大部分?jǐn)?shù)據(jù)信息化項(xiàng)目都是 java 的,潤(rùn)乾的自助報(bào)表是標(biāo)準(zhǔn)的 j2ee 應(yīng)用,只需要把 jar 包,xml 和 tag 描述文件放到應(yīng)用下就可以了,并沒有什么難度

第一步:復(fù)制jar包

把自助報(bào)表jar包和相關(guān)文件復(fù)制到到自己應(yīng)用對(duì)應(yīng)的目錄中
如果還有一些其他的需求,比如導(dǎo)出EXCEL等,再把需要的包復(fù)制一下就可以了,具體操作時(shí)可以參考文檔進(jìn)行
第二步:應(yīng)用配置
1 把潤(rùn)乾web.xml中的內(nèi)容抄進(jìn)應(yīng)用的 web.xml 文件中并按要求的順序合并
2 在raqsoftConfig.xml配置要分析的數(shù)據(jù)源等信息
第三步:準(zhǔn)備數(shù)據(jù)集
準(zhǔn)備一個(gè)要用來做自助報(bào)表的數(shù)據(jù)集,我們用來自如下訂單表的一句SQL作為數(shù)據(jù)集
select * from 訂單

第四步:發(fā)布自助報(bào)表
在jsp中用tag標(biāo)簽配置這個(gè)數(shù)據(jù)集,并把jsp發(fā)布到服務(wù)器

然后就可以通過url訪問了,并進(jìn)行自助操作


就這么簡(jiǎn)單,在jsp中加入tag標(biāo)簽,自助報(bào)表功能就集成到自己的應(yīng)用中了
更完整詳細(xì)的集成過程可以參考:
另外,潤(rùn)乾自助報(bào)表不僅可以被集成,而且還是開源的,集成以后,還可以對(duì)頁面進(jìn)行更深層次的改造,讓頁面和功能可以更好的適配自己的系統(tǒng)
功能漫游
基本功能集成后,我們?cè)賮砜匆幌伦灾鷪?bào)表能做到什么效果
報(bào)表樣式
常規(guī)的列表、分組、交叉等樣式是所有組件的基本功



復(fù)雜程度高一些的,比如下面這個(gè)多層分組交叉,能力強(qiáng)一些的制作也都沒有問題

這些報(bào)表也都可以導(dǎo)出、打印,功能完整
還可以利用現(xiàn)成的模板生成各類統(tǒng)計(jì)圖



計(jì)算能力
大處看樣式,細(xì)節(jié)看計(jì)算。相同的樣式背后,涉及的計(jì)算可能大有不同,有些只需要做簡(jiǎn)單的統(tǒng)計(jì)匯總,有些則需要做復(fù)雜的的排名,占比,同比環(huán)比等
工具的自助能力各有不同,有的制作起來簡(jiǎn)單,有的繁瑣,有的也可能做不了
排名

占比

同比環(huán)比


累積

復(fù)雜條件過濾

數(shù)據(jù)來源
自助報(bào)表的作用是為了分析數(shù)據(jù),是為了把各類抽象的數(shù)據(jù)變成具象易懂的圖表,應(yīng)用系統(tǒng)集成自助報(bào)表后,自然會(huì)希望它可以處理各中類型的數(shù)據(jù),應(yīng)對(duì)各類的場(chǎng)景,這就需要工具可以支持各類不同的數(shù)據(jù)來源才可以,臨時(shí)來一個(gè)文件數(shù)據(jù)可以分析,只給一句SQL也能做表,遇到復(fù)雜多庫表關(guān)聯(lián)的沒問題,方便多次復(fù)用的語義層工具也有,想控制權(quán)限還能控制權(quán)限,各種場(chǎng)景都能應(yīng)付自如才行
文件數(shù)據(jù)源分析
數(shù)據(jù)來源是EXCEL文件,data.xls

在jsp中通過tag標(biāo)簽配置這個(gè)EXCEL,然后發(fā)布頁面

發(fā)布后業(yè)務(wù)人員就可以看到EXCEL中的數(shù)據(jù),并可以對(duì)其進(jìn)行報(bào)表制作了

SQL數(shù)據(jù)源分析
“集成過程”章節(jié)中用到的示例,就是用的來自SQL的數(shù)據(jù)源,這里就不重復(fù)說明了,有需要的可以翻到上面再看一下
語義層
臨時(shí)的,簡(jiǎn)單的分析直接基于SQL來做會(huì)比較方便。重復(fù)的,頻繁的分析如果每次寫SQL,每次都得as中文名稱,join,增加指標(biāo)就會(huì)挺麻煩
通過語義層來解決這些問題效果就會(huì)好很多
定義好語義層:

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

Jsp中通過標(biāo)簽調(diào)用定義好的語義層文件數(shù)據(jù)來源,頁面展現(xiàn)時(shí)候就可以看到中文字段了

自助數(shù)據(jù)源
前面的三種數(shù)據(jù)來源是技術(shù)人員定義好數(shù)據(jù)集以后給業(yè)務(wù)用戶直接用的,如果業(yè)務(wù)用戶想自己定義數(shù)據(jù)集,自己來設(shè)置要分析哪些字段,也是可以的,當(dāng)然前期還得技術(shù)人員協(xié)助設(shè)置一下元數(shù)據(jù),因?yàn)槿绻苯幼層脩裘鎸?duì)數(shù)據(jù)庫的數(shù)據(jù)去操作,用戶是理解不了這些復(fù)雜的表名和之間的關(guān)系的,也無從下手的


技術(shù)人員設(shè)置好基礎(chǔ)的元數(shù)據(jù)字典文件后,在jsp中通過tag標(biāo)簽設(shè)置對(duì)應(yīng)文件,發(fā)布后用戶就可以看到如下界面了,左面已經(jīng)是可以輕松理解的中文名稱了


業(yè)務(wù)人員自助選擇自己要分析的字段,拖拽后生成新的數(shù)據(jù)集,然后進(jìn)入自助報(bào)表頁面就可以看到新的數(shù)據(jù)集并進(jìn)行報(bào)表制作了

權(quán)限控制
有了語義層后也可以控制數(shù)據(jù)權(quán)限了

上圖中“員工分析”這個(gè)分類只能看到勾選的表和字段里的數(shù)據(jù)
也可以單獨(dú)針對(duì)某個(gè)表進(jìn)行權(quán)限控制,還可以控制同一個(gè)表,不同的人看到不同的數(shù)據(jù),比如每個(gè)銷售只能看到自己的訂單

到這里,主要的功能就基本都羅列到了,如果一個(gè)自助報(bào)表工具以上能力都具備,那功能方面就可以過關(guān)了
總結(jié)
應(yīng)用中怎么實(shí)現(xiàn)自助報(bào)表功能,最難的地方其實(shí)是:怎么找一個(gè)功能全面且能集成的工具,這個(gè)難題解決后,剩下的具體集成對(duì)于工程師來說就不算什么難事了,現(xiàn)在難題也被解決了,站在別人的肩膀上不說看的更高走的更遠(yuǎn)吧,起碼能省很多事了,接下來要做的,就是實(shí)際集成一次,親自驗(yàn)證一下看看到底能不能滿足自己的需求了
潤(rùn)乾報(bào)表資料
- 潤(rùn)乾報(bào)表官網(wǎng)
- 潤(rùn)乾報(bào)表下載
歡迎關(guān)注我的公告號(hào):字母哥雜談,回復(fù)003贈(zèng)送作者專欄《docker修煉之道》的PDF版本,30余篇精品docker文章。字母哥博客:zimug.com

浙公網(wǎng)安備 33010602011771號(hào)