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