李欣烊
上汽通用五菱汽車股份有限公司 廣西 柳州 545000
現階段實現報表的方式可分為:直接通過網頁、通過第三方控件;而第二種方式更為流行,其包括ReportViewer、OpenReports、類Excel報表軟件等,我們今天將要介紹的就是類Excel報表軟件中的FineReport,其極大的產品優勢成為眾多企業數據展示的首選工具。
不可否認的是目前人們最開始接觸、也是最多接觸的報表就是Excel,所以FineReport給用戶提供了更為熟悉的開發場景,而且FineReport有著免費的學習文檔視頻和論壇,一般用戶都能夠很快地了解設計器的使用方法[1]。

圖1 社區首頁
如Excel一樣,FineReport 有通過綁定功能,哪怕是簡單的拖拽也能符合用戶的開發需求,不需要復雜的代碼編寫基礎,這也極大地降低了開發者的學習成本,同時也提升了開發效率。
多元化的設計方式使得開發者可針對不同需求的用戶開發不同類型的報表,如制造部門和物流部門,兩個不同的業務需求雖然在同一個設計器下進行開發,但是可以實現不同功能的開發模板,能夠充分的滿足需求。
目前企業不僅要求報表的精準度,更新速度,美觀度也成為主要優勢,這也是為了更好地進行數據展示,進而更加簡單的理解和分析數據結構,FineReport不僅包含了常見的柱形圖、扇形圖、折線圖等,其支持動態顯示和超級鏈接等功能,更加全方位、多維度的展示數據,滿足用戶的需求[2]。
目前許多企業對系統數據的展示是通過將系統中的數據導出為Excel,進而將Excel中的數據提取篩選,通過透視表或者其他平臺錄入數據完成可視化報表的制作,這也不得不使得數據的呈現多了導出和篩選的操作,也大大降低了數據展示的效率,增加了人工成本。
FineReport 是由Java編寫的,具有多維數據分析平臺,能夠采集前段、后端和歷史產生的所有數據。數據集來源可以多樣化,能夠支持Mysql、SQL Sever 、Access等多種常用數據庫,本次就以Mysql為例進行驗證。對于企業系統來講,一般所產生的數據量較大,種類較多,所以需要數據庫服務器來完成數據的存放。FineReport可通過配置工作目錄進行遠程服務器的鏈接,完成數據源的提取[3],如圖2所示。

圖2 遠程服務器配置
點擊“測試連接”若顯示“連接成功”,說明在此工作目錄下已經連接了服務器,并能夠獲取此服務器下的數據源。
還有一點需要提及的是,由于企業中的系統較多,如果創建多個工作目錄連接多個遠程服務器,后續對于目錄的切換是較為煩瑣的,所以在此之前還需要操作的就是將各企業系統中的服務器數據抽取到數據中臺(Mysql數據庫),在這里可以將數據進行第一步的加工處理過濾,只抽取我們需要的字段,這樣既可以統籌管理數據,不影響原服務器的數據,也可以只將FineReport 連接數據中臺,減少切換的煩瑣。
連接完數據庫服務器,接下來就要新建報表模板,這里與我們熟悉的Excel相似,所以應用起來較為容易。建完表后需要添加我們所需數據的數據源,在這里需要通過SQL語句對服務器中的數據進行二次過濾,只篩選本報表下所需的數據;
這樣我們在模板數據集中就可以看到名為“ds1”的數據集,點開數據集就可以獲得我們所需要的字段數據,對于數據可視化來講,“決策報表”具有更強的靈活性,就像一張畫布一樣,我們可以盡情地設計想要的模板[4]。決策報表如圖3所示:

圖3 設計工具展示
工具欄中的“參數”“空白塊”“圖表”和“控件”給我們提供了更為便捷的模板設計條件,而且只需要進行“托拉拽”的鼠標操作即可完成圖片、控件的添加,將我們需要展示的圖表拖拽到畫布內,圖表的數據來源就是我們左側所提取的數據集,依照分類、系列名等維度將數據展示在圖表當中,預覽圖表后會發現自動跳轉到Web頁面進行報表可視化的展示,那么接下來將要做的就是將各類圖表進行排版,強化美觀度,對數據、圖表微調以達到理想的展示效果,如圖4所示展示狀態:

圖4 狀態展示
數據的準確性是數據展示的根本要求,也是對數據正確分析和決策的必要條件,因此在做完展示報表的情況下,下一步就是要對展示出來的數據進行驗證,我們可將企業系統服務器中的數據導出,比如我們在門禁系統中導出本日訪客數量,然后與我們所制作的報表進行對比,檢查報表開發邏輯是否正確[5]。
不難發現,其實我們的時間主要用于模板設計器的開發,一旦開發完成用戶所需求的模板,便可用此模板自動將數據進行可視化,數據是自動提取的狀態,這也降低了報表維護的時間成本。其次,我們的數據源直接來源于服務器,當我們對數據篩選邏輯無誤的情況下,一定程度上降低了由于人為失誤導致的報表數據展示錯誤,增加了準確性。最后,多樣化、豐富的展示模型成為賞心悅目的亮點,動態的圖表顯示更為生動地體現了目前數據的狀態,在數據匯報、查詢、展示的層面上可謂卓越有效。