其實,動態報表的實現方式有很多,大家都會用的Excel配合高階函式以及VBA就能實現,但是用Excel做報表在企業裡,如何給別人展示是一個問題,資料更新也是一個問題,資料量大了也成問題。所以在做企業報表基本都會用專業的報表工具,在web端展示報表。
所以本文分享一種報表工具(FineReport)製作動態報表的過程,需要一些sql基礎,適合企業表哥表姐以及從事資料相關工作的朋友們學習。
動態報表的場景有動態查詢報表、動態列報表、表資料鑽取聯動、視覺化圖表的聯動與鑽取、資料地圖鑽取與聯動、動態表頭動態分組等。
製作動態報表除了需要掌握其基本報表製作方法(這裡省略教程,大家可自行學習入門),重點涉及到兩個功能: 引數功能以及超鏈關聯功能。
1、引數功能
引數的作用主要是對資料進行過濾,很多情況下需要用到,比如在單元格中引用引數來實現動態標題、根據引數值的不同顯示不同值等等。
引數的操作:
① 設定引數名稱,新增引數,根據實際應用場景的需要選擇不同型別的引數,有模板引數、全域性引數(類似程式碼中的引數作用域,有的作用於本張報表,有的可以作用於所有報表)
② 給引數新增控制元件。控制元件是引數實現查詢的載體,透過將控制元件和引數繫結,實現在控制元件中輸入引數值,能夠過濾並查詢出使用者想要檢視的資料。控制元件有下拉單選框、下拉核取方塊之類。
③ 設定引數的使用,比如你透過引數來控制報表資料的過濾,就要在皮膚區拖拽元件。
引數新增控制元件:控制元件是引數實現查詢的載體,選擇控制元件型別,透過將控制元件和引數繫結,實現在
2、超鏈關聯功能
這個很好理解,就相當於做網頁,點選能跳轉。finereport報表的展示也是在web端,你可以給一個資料欄位、一個資料、一個圖表、一個文字附超鏈,連線到另一張報表。
理解了上面的原理,接下來就來講講各種動態報表的實現吧!
一、動態列報表
我們在查詢報表時,報表當中的欄位都是已經固定的。
但是我們可能會遇到這樣一種情況,即需要查詢的是一個資料集,但是顯示在報表當中的欄位卻並非固定,要允許使用者在查詢報表時,自己定義需要顯示的是哪幾個列,這樣的報表我們稱之為動態列報表。
動態列報表可以有兩種實現方式:一是透過使用函式實現,二是透過定義資料集實現。
這裡舉例函式實現方法:設計表格——新增模板引數——新增引數控制元件——設定引數控制元件的資料字典。
二、動態查詢
如上述效果,有兩層功能,一層是篩選報表,另一層是當第一個下拉框控制元件滿足某條件,其他條件才顯示出來。FineReport可實現動態顯示引數控制元件,例如:
①選擇年報,顯示年的下拉框控制元件
②選擇月報,顯示年月下拉框控制元件
③選擇日報,顯示日期下拉框控制元件
三、資料鑽取
報表中資料鑽取是一個普遍的需求,FineReport報表透過超級連結功能方便地實現資料鑽取及無限層鑽取。
在主報表模板中設定好超連結,關聯子報表和引數。
在子報表模板中同樣的繫結好剛剛設定的引數,兩個報表就建立了關聯。
四、視覺化圖表的聯動與鑽取
1)圖表聯動
這是一種高階的動態效果,比如下圖點選柱狀圖的某一支,其他報表就對應的展現和他關聯的圖表資料,用的是圖表超鏈功能,可以在同一個報表頁面檢視多張關聯的圖表,實現圖表聯動的效果,這種聯動是自動的,不需重新重新整理整個頁面。
單個模板的圖表超鏈功能,可讓使用者在同一頁面中檢視多張關聯的圖表,實現圖表聯動的效果,這種聯動是自動的,不需重新重新整理整個頁面。
具體怎麼製作,原理類似上述聯動操作,需要對每張圖表進行單獨的關聯設定,具體這裡就不引入介紹了。
2)圖表鑽取到網路報表
還有一種鑽取就是點選圖表可以到相應的明細報表,進行資料的鑽取,如下圖。
原理也是類似,兩張報表製作好以後,建立超連結關聯。
五、資料地圖鑽取與聯動
1)地圖鑽取
地圖鑽取也是很常用的動態報表樣式,省級——市級——有兩種鑽取方式,一種點選鑽取:
另一種自動鑽取,自動鑽取的就是地圖放大後自動鑽取,無需滑鼠點選:
2)地圖聯動
在地圖鑽取的基礎上,還有聯動功能,點選對應區域,在右側顯示該區域詳細表格和圖表資料,點選地圖目錄聯動到相應層級。
關於鑽取,具體的設定如下:
六、其他動態報表功能
此外還有其他動態報表功能,比如動態顯示報表標題、動態sheet擴充套件、動態分組,這些細節類需求也都可以在finereport中設定。