高明峰 彭安金



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