高明峰 彭安金
摘 要:傳統(tǒng)報(bào)表模板設(shè)計(jì)的報(bào)表都是固定字段和格式的報(bào)表,如果需求發(fā)生改變要修改字段名稱或者字段排列順序,這就需要開(kāi)發(fā)人員修改報(bào)表模板。本文基于ssm框架設(shè)計(jì)出一種自定義報(bào)表系統(tǒng),用戶根據(jù)需求可以選擇預(yù)添加的字段,并且可以對(duì)添加的字段進(jìn)行增刪,最終根據(jù)用戶需求,生成想要的報(bào)表,進(jìn)而實(shí)現(xiàn)智能報(bào)表的自定義功能和數(shù)據(jù)可視化。
關(guān)鍵詞:報(bào)表; 自定義; 數(shù)據(jù)可視化
0.引言
報(bào)表作為數(shù)據(jù)分析的一種重要手段,廣泛應(yīng)用在各個(gè)行業(yè)領(lǐng)域中,可以進(jìn)行數(shù)據(jù)的存儲(chǔ)和可視化,并針對(duì)數(shù)據(jù)的分析和統(tǒng)計(jì)完成一系列工作,可為企業(yè)的經(jīng)營(yíng)者和決策者提供企業(yè)的運(yùn)行情況,進(jìn)而為企業(yè)戰(zhàn)略決策提供了重要依據(jù)和數(shù)據(jù)支撐[1]。傳統(tǒng)報(bào)表在報(bào)表樣式、數(shù)據(jù)源和報(bào)表數(shù)據(jù)關(guān)系等方面大多都是通過(guò)固定的形式嵌套在編譯代碼中。在實(shí)際應(yīng)用過(guò)程中,傳統(tǒng)報(bào)表往往會(huì)隨業(yè)務(wù)需求不斷發(fā)生變化,一旦報(bào)表的樣式或者模板發(fā)生變化,則必須修改程序代碼才能滿足這種新的需求,給用戶的使用帶來(lái)了極大的不便[2]。因此,需要研發(fā)一種靈活的、通用的、能夠處理多業(yè)務(wù)融合的可視化報(bào)表工具。
本文研究開(kāi)發(fā)的多維度自定義可視化報(bào)表系統(tǒng),有效地解決了企業(yè)各部門對(duì)于統(tǒng)計(jì)、分析、可視化、決策等需求[3],從而實(shí)現(xiàn)企業(yè)數(shù)據(jù)的數(shù)字化、可視化及智能化,可視化報(bào)表系統(tǒng)逐步成為了當(dāng)代企業(yè)數(shù)據(jù)應(yīng)用的必要工具,在企業(yè)經(jīng)營(yíng)和決策中起著至關(guān)重要的作用。
1.系統(tǒng)功能簡(jiǎn)介
該系統(tǒng)是一個(gè)數(shù)據(jù)可視化工具,不僅擁有強(qiáng)大的數(shù)據(jù)計(jì)算引擎,而且還引入了一款功能十分強(qiáng)大的報(bào)表視圖JS插件Echart,完美地將數(shù)據(jù)計(jì)算和美觀的圖表結(jié)合到了一起。該報(bào)表系統(tǒng)不同于傳統(tǒng)的報(bào)表系統(tǒng),它對(duì)用戶很友好,即便是對(duì)于沒(méi)有IT背景的人員使用起來(lái)也完全沒(méi)有問(wèn)題,用戶可以根據(jù)業(yè)務(wù)需求拖拽產(chǎn)生報(bào)表,然后再進(jìn)行相關(guān)數(shù)據(jù)分析得出結(jié)果,最終輔助企業(yè)決策者進(jìn)行業(yè)務(wù)決策。
2.可視化報(bào)表設(shè)計(jì)
使用可視化工具設(shè)計(jì)自定義報(bào)表的過(guò)程,如圖1所示,主要分為四個(gè)步驟:
(1)新建數(shù)據(jù)源:該系統(tǒng)支持jdbc、kylin、elasticsearch等多種數(shù)據(jù)源,在創(chuàng)建數(shù)據(jù)集之前,首先要確定所選數(shù)據(jù)源的類型,并給數(shù)據(jù)源起個(gè)名稱。然后通過(guò)數(shù)據(jù)庫(kù)用戶名和密碼連接到mysql數(shù)據(jù)庫(kù),點(diǎn)擊測(cè)試連接,若測(cè)試連接成功則表示成功連接上數(shù)據(jù)庫(kù)。
(2)新建數(shù)據(jù)集:數(shù)據(jù)集的來(lái)源有多個(gè),可以是數(shù)據(jù)庫(kù)表、sql數(shù)據(jù)集和自助數(shù)據(jù)集。但是數(shù)據(jù)集本質(zhì)是不變的,就是用戶拿來(lái)分析和使用的數(shù)據(jù)表。在向報(bào)表中添加數(shù)據(jù)之前,我們需要對(duì)數(shù)據(jù)源使用sql查詢命令來(lái)創(chuàng)建數(shù)據(jù)集。數(shù)據(jù)表中的字段,通常可以作為組件中的維度和指標(biāo)來(lái)使用,拖動(dòng)字段到組件的維度和指標(biāo)列即可完成字段的添加。
(3)設(shè)計(jì)圖表:選擇上一步創(chuàng)建的數(shù)據(jù)集,根據(jù)實(shí)際需求將左側(cè)維度列的預(yù)先定義好的字段分別拖拽到右側(cè)橫軸和縱軸所在的文本框,并選擇合適的圖表類型進(jìn)行數(shù)據(jù)分析。然而圖表種類繁多,為了選擇正確的圖表達(dá)到“一圖勝千言”的效果。
(4)設(shè)計(jì)儀表板:對(duì)于儀表板展示的效果需求,該系統(tǒng)提供了儀表板樣式、儀表板布局、數(shù)據(jù)定時(shí)刷新和儀表板撤銷還原等功能。從全局角度對(duì)儀表板進(jìn)行風(fēng)格配色的統(tǒng)一調(diào)整,通過(guò)調(diào)整儀表板內(nèi)組件間隙、設(shè)置組件懸浮來(lái)進(jìn)行儀表板布局。系統(tǒng)提供了對(duì)單個(gè)儀表板、多個(gè)儀表板和單個(gè)組件的自動(dòng)定時(shí)刷新功能,儀表板定時(shí)刷新功能是通過(guò)JavaScript來(lái)實(shí)現(xiàn)的。用戶在制作儀表板時(shí),通常會(huì)做許多探索性的操作,或者有時(shí)候會(huì)做出一些錯(cuò)誤操作,此時(shí)可直接在組件界面進(jìn)行撤銷或還原。
3.可視化報(bào)表的具體實(shí)現(xiàn)
本文通過(guò)可視化報(bào)表系統(tǒng)對(duì)某書店的書籍進(jìn)行分類,并將分類統(tǒng)計(jì)結(jié)果以圖表的形式展示出來(lái)。如圖2所示,書籍主要包含書籍編號(hào)、書籍名稱、書籍作者、書籍出版社、書籍類型和書籍?dāng)?shù)量等信息。
在創(chuàng)建自定義可視化報(bào)表之前,首先要做的是根據(jù)需求創(chuàng)建數(shù)據(jù)庫(kù)mybook,然后將存儲(chǔ)書籍信息的book表導(dǎo)入到mybook數(shù)據(jù)庫(kù)中。該報(bào)表系統(tǒng)支持多種類型的數(shù)據(jù)源,這里我們以最常使用的jdbc為例。新建數(shù)據(jù)源為書籍信息,通過(guò)數(shù)據(jù)庫(kù)用戶名和密碼連接到mybook數(shù)據(jù)庫(kù)。在創(chuàng)建好數(shù)據(jù)源之后,選擇上一步創(chuàng)建的數(shù)據(jù)源,書寫sql語(yǔ)句創(chuàng)建數(shù)據(jù)集書籍信息,點(diǎn)擊讀取數(shù)據(jù)信息,將自動(dòng)獲取數(shù)據(jù)庫(kù)中的字段,根據(jù)需求將書籍類型、書籍?dāng)?shù)量分別拖到維度列和指標(biāo)列并保存。如圖3所示,通過(guò)對(duì)數(shù)據(jù)和需求的分析,選取柱狀圖來(lái)統(tǒng)計(jì)書籍中人文社科、文學(xué)綜合、經(jīng)管綜合、計(jì)算機(jī)類書籍的數(shù)量,選取餅狀圖來(lái)統(tǒng)計(jì)書籍中人文社科、文學(xué)綜合、經(jīng)管綜合和計(jì)算機(jī)類書籍所占的百分比,圖表設(shè)計(jì)的整個(gè)過(guò)程都是可視化的。最后通過(guò)儀表盤以一種直觀的方式展示出來(lái)。
4.結(jié)束語(yǔ)
由于當(dāng)前社會(huì)企業(yè)對(duì)報(bào)表應(yīng)用的需求越來(lái)越高,所以本文采用B/S架構(gòu)設(shè)計(jì)可視化報(bào)表系統(tǒng)。該系統(tǒng)通過(guò)瀏覽器來(lái)訪問(wèn)服務(wù)器,用戶可以根據(jù)實(shí)際需求自由設(shè)計(jì)報(bào)表,解決了傳統(tǒng)報(bào)表模板的局限性,從而節(jié)約了開(kāi)發(fā)成本,縮短了開(kāi)發(fā)周期,具有良好的可擴(kuò)展性和穩(wěn)定性,大幅提高了用戶的工作效率,符合當(dāng)前企業(yè)的發(fā)展需求,應(yīng)用場(chǎng)景十分廣泛。
參考文獻(xiàn):
[1]蔣曉宇.基于tableau可視化業(yè)務(wù)報(bào)表設(shè)計(jì)與實(shí)現(xiàn)[J].數(shù)字通信世界,2017(2):224-225.
[2]林志榮, 張金仙, 謝金達(dá),等. 基于用戶自定義的動(dòng)態(tài)報(bào)表設(shè)計(jì)[J]. 蘭州文理學(xué)院學(xué)報(bào):自然科學(xué)版, 2014.
[3]于海波, 張啟偉, 隋志巍,等. 智能化報(bào)表工具的研究,設(shè)計(jì)與開(kāi)發(fā)[J]. 電腦知識(shí)與技術(shù), 2019(29).