我要講一個自己的故事。

前幾年,大學畢業,剛剛步入社會。每一天,我都要對著不同的Excel表格,不斷地錄入、整理、計算、核對。

那段時間,我每天都在懷疑自己:讀了十幾年書,名校畢業,為什麼一直在做重複的表格工作?

為了解放自己,我學了許多Excel的「高級操作」,還拿出壓箱底的VB書。但依然架不住瘋狂的業務需求,報表改了又改,而且這種情況到年底越發明顯。整個人陷入被動。

那時我每天趁著中午有口喘氣的時間,在網上大量搜索的能節省做報表時間的工具,連令我頭疼的開源程式碼都不放過。

花了幾天,還真被我搜到了,一個能替代Excel的效率神器。

與office的介面風格很像,不知道是不是就是基於office進行的開發,但是做出的效果確實很酷。能直接整合資料庫的資料做報表開發,開發的範本能通過設置簡單的查詢參數,做篩選過濾。原本要做12家門店的銷售報表,我用一張範本花1個多小時就搞定了,分分鐘批量匯出。一個字「快」。資料庫整合的效率和開發的效率不可同日而語。

很慶倖以前和IT同事混飯的時候,學了一點SQL,對資料表有所認識,所以上手很容易。請了人家兩頓飯,說明緣由,就給我開資料庫許可權了。

以前已給好幾個人安利過,要麼借著幌子讓我幫忙教做報表,要麼藉口SQL太難學(這明明是最好學的語言了,好麼)。

如今,我寫下這份心得,和大家分享。

FineReport是什麼?

Finereport是一個比較強大的web報表工具,大多為資訊部開發報表所用,所以一般人可能不太瞭解。

他可以作報表,也可以做資料視覺化,和Excel有點像,只不過VBA開發的成分人家用java程式設計語言開發成了功能。小到可以存儲統計資料、製作各式各樣的圖表、dashboard,大到製作財務報表、開發進銷存系統。

為什麼會有報表工具這麼個玩意?Excel不是萬能的麼?

Excel在做報表方面,只要你眼疾手快,技能熟練,對十萬條以內的資料處理起來一點不虛。但是資深的資料分析師、資料工程師還是笑笑,Too Young Too Simple。

在企業應用中,企業/組織/團體一旦成規模時,資料量是數以萬計的,無論資料還是報表都需要協同管理不斷更新。面對各種OAERPCRM系統的資料,部門提交的各種需求,這時候懂技術的朋友們可能知道,Excel是hold不住的。爺搞得都是百萬資料,要百萬資料,就得上資料庫還有BI工具,Excel做得再快也跟不上變化的需求。

其次,從效率上來講,專業的報表工具是可以替代很多重複性的excel處理工作,比如FineReport,資訊部門部署安裝後,可以連結各業務系統資料,將常規的各業務報表,還有週報月報這些,開發成可自動抽取資料並展示的範本,做好一次,每次只要查詢即可。

免費試用FineReport10.0>

FineReport如何做報表?

先來說說他的做表原理,和Excel還是大有不同的。

FineReport的做表原理


做報表首先得有資料,資料哪裡來?一個是直接連接業務系統或者資料庫的資料,還有可以匯入excel檔資料,連好資料後,開始製作範本,類似於做excel表格一樣,設計展現的樣式,計算的公式,最後在web端展示。

但是和excel不用,excel處理的是一個個資料,finereport製作範本時處理的物件是資料欄位,範本中一個儲存格放一個資料欄位,web端展示時欄位擴展。FineReport報表中儲存格的擴展是有方向的,可縱向擴展,也可橫向擴展,也可以不擴展。

儲存格的擴展是針對某一個儲存格,當報表主體中綁定了多個儲存格時,儲存格與儲存格之間依靠父子格關係跟隨擴展。子格的資料會根據父格的資料進行過濾分組顯示,並且還會跟隨父格的擴展方向而擴展。

三種報表模式:普通報表、聚合報表、決策報表

這裡可以參考軟妹寫過的一篇文章:關於這三種報表《再複雜的報表,用這3種方式,都能解決!

引數實現資料查詢和過濾,省得重複做報表

查詢報表是怎麼做呢?在FineReport中,透過設定引數綁定資料欄位和過濾的控制項(單選框、核取方塊等等),透過介面輸入查詢準則來控制報表顯示的內容及形式,而後匯出列印。

很多人工作上會做週報月報季報等,有些全國性的公司有分公司、門店、辦事處。經常性的要做這些重複性很大的報表。那用FineReport就可以集中將每一條資料明細上傳到資料庫中(填報功能,下面會講)。在做報表時,做將一些常用的維度“地區”、“時間”、“城市”等等作為一個查詢的引數控制項,類似Excel中的篩選,匯出。基本上一個週報範本,就解決了一些人一年52張手工excel報表的工作量。

SQL語句視覺化編輯

FineReport的一個重要特色功能是視覺化的SQL編輯頁面,報表開發人員不需要一行一行寫SQL,只需要透過簡單的拖拽,就可以生成SQL語句。

FR有個協力廠商外掛程式——高級資料庫查詢,可以實現部分Navicat等等專業編輯器的功能,對於這一點來說功能更強大:支援全屏顯示編輯、sql語句美化、自訂預設語句、支援圖形化表間關係展示編輯(有點像er圖)、資料許可權管理……並且免費,適配9.0和10.0,很強大,真的!

【驚人的】資料可視化效果

視覺化是指用於創建圖形、圖像或動畫,以便交流溝通資訊的任何技術和⽅方法。

我們當前階段所說的視覺化指的是資料視覺化,特指將定量資料以圖形、圖像或動畫的形式展示,以便展示、交流、溝通資料資訊的技術和方法。

FineReport是企業級web報表產品,解決的是企業資料查詢、展示、錄入的問題。

傳統的報表,常常以表格的形式展現,它能突出資料本身,但並不利於閱讀者直觀的看出資料之間的關係/趨勢等。

FineReport除了能實現複雜的表格樣式外,還具備極其豐富的圖表,能夠滿足多樣的資料視覺化場景訴求。

在這裡,我們把FineReport中的資料視覺化分為三個大類:統計圖表、專注大屏的動效圖表、外掛程式。

統計圖表

  • 種類

提供數十種統計圖,每類又包含多種風格樣式。具體每類圖表的效果及使用場景,戳文檔:http://help.finereport.com/doc-view-1400.html

每種圖表的實際示例,參考官方演示系統,目錄-統計圖表-豐富的圖表:http://demo.finereport.com

  • 個性化配置

產品內建了官方預定義的樣式,可以根據需要選用。

除了官方的自訂樣式,還提供了選項讓使用者可自行調整,包括標題、標籤、圖例、背景、坐標軸等。

更進一步的,為滿足個性化的表達訴求,FineReport中還支援各類條件顯示,下圖是部分示例:

  • 交互

除了靜態的資料展示,FineReport圖表還支援交互動作,比如聯動、鑽取、縮放、排序、資料監控與自動提示等。

具體各種效果的示例,可以戳文檔:http://help.finereport.com/doc-view-2232.html

大屏專類動效圖表

特指FineReport 10.0版本發佈的擴展圖表。

專為大屏資料視覺化開發,預設採用深色背景+螢光配色,符合浸入式的大屏體驗;並根據圖表類型和資料要求提供 ‘輪播’或’刷新’兩種動畫形式,滿足使用者不同場景下的業務需求。

同時我們還基於webgl等技術,對動畫不斷優化調整,為使用者儘量提供簡潔且酷炫的動態效果。此外,在最新發佈的擴展圖表中,還支援輪播時自動聯動其他元件。

關於大屏擴展圖表的內容,過去軟妹也發過很多此類文章,可參考:《如何做一張能讓人眼前一亮的大屏?

外掛程式

除了官方產品自帶的圖表外,FineReport還支援擴充各類外掛程式,用於滿足特定場景下的使用者需求。

官方外掛程式市場https://market.fanruan.com/plugin中有眾多圖表外掛程式可以選用。包括3D地球、3D卡片動畫等等。

這些酷炫的視覺化動效外掛程式,用來做視覺化大屏不錯。

基於webgl等技術開發,作為基礎圖表的補充,為大屏使用者提供更酷炫的圖表效果;
支援三維柱形地球、三維點地球、三維流向地球、KPI指標卡、粒子翻頁計數器、時間齒輪、目錄齒輪、輪播gis點地圖等多種擴展圖表。

强大的資料地圖

———————————————————————————————————————————————————————-

好了,差不多就是這樣,看到這裡的同學都是好學的,接下來talk一下實際操作實例吧!

這是一張典型的能及時查詢的,包含圖表的交叉報表範本(比較簡單)。能查詢各個地區的銷售概況,並且表和圖的資料能跟隨變化。資料庫中資料有增加或減少,此張動態報表就能自動更新。

原理何在?下面將詳細介紹這張範本的製作、展示過程。

第一步:安裝+啟動finereport

finereport台灣官網下安裝包,免費註冊,獲取激活碼啟動。
安裝很簡單,按照流程走,然後就會顯示這個介面。

第二步:新建範本與資料集

類似於Excel新建sheet,如下圖點擊創建一張空白範本。

新建資料集

資料集是FineReport專有的存儲透過資料連接從資料庫中取出來的資料,資料集是一個二維資料表,可直接在資料集中看到資料表中的欄位和資料。報表左側下方有範本資料集視窗,列出了該範本可用的所有範本資料集,點擊「加號」按鈕,增加範本資料集。

資料來源一般是資料庫,這裡假設已經和資料庫建立了連結。點擊資料庫查詢,新建資料集ds1,SQL語句為:

SELECT * FROM 銷量 where 地區=’${地區}’

這樣一個帶參數的SQL語句,這裡的地區是引數名字。在下方的引數面板中點擊刷新按鈕,便可以獲得資料集引數,給引數設定預設值“華東”,如下圖:

點擊SQL輸入框上面最左邊的預覽按鈕,如下圖所示:

在彈出的引數選項框中輸入引數「華東」,如下圖:

點擊「確定」,即可預覽地區的「華東」的資料:

同樣的方法,增加資料集ds2,SQL語句為:

SELECT 銷售員,sum(銷量) as 銷售總額 FROM 銷量 group by 銷售員

第三步:設計報表

範本設計

範本設計效果展示如下圖:

具體設計

標題:合併A1~D2儲存格,寫入:地區銷售概況。

邊框:首先我們先來選中從A3~D5這一片區域,點擊工具列中的按鈕,在系統彈出的邊框對話方塊中,選擇按鈕,同時添加內部和外部邊框。

斜線:合併A3、B3儲存格,右擊合併的儲存格選擇儲存格元素或者選中A3儲存格,在設計器右側選擇儲存格元素,選擇插入斜線。系統會彈出一個斜線編輯的對話方塊,在文本編輯方塊中要加入的內容:產品|銷售員|地區,可以透過添加空格來調整文字的位置。如下圖所示:

綁定數據列

將資料列拖拽至儲存格,並設定儲存格的屬性,設定位置及方法如下圖:

按照上圖方法,將下表中對應資料列拖入到儲存格中,在儲存格元素中進行資料設定 ,在儲存格屬性中設定擴展方向。

多資料集關聯

很多時候,範本的資料來自於兩個不同的資料集,要將不同資料集的資料建立聯繫,需要用到資料過濾。選擇D4儲存格,點擊設計器右側上方的儲存格元素面板中的過濾條件後的編輯或者按兩下D4儲存格,彈出資料列對話方塊,選擇過濾,如下圖:

打開過濾設定面板,添加如下過濾條件, 使得ds2中的「銷售員」資料列等於ds1中銷售員的值。

第四步:設定引數

多數情況下,需要顯示滿足一定條件的部分資料,這便需要用到引數。引數設計實際上就是一個動態的過濾資料的過程,便於使用者與資料能夠即時交互。FineReport內置了一個預設的引數介面,可在內置的介面中,調整引數的位置,並透過控制項設定得到各種不同的資料選擇方式。在此,我們在上張報表的基礎上介紹引數查詢介面的設計過程。

引數介面佈局


點擊引數介面,進入引數編輯介面,在新建範本與資料集章節,我們在ds1資料集中定義了引數「地區」。切換到引數介面後,可以在控制項設定的上方區域看到我們所有定義好的參數,點擊全部添加,將會使用預設的佈局形成引數介面。使用者可以根據需要將引數介面調整到自己喜歡的樣式。

注:伺服器資料集裡的引數不會出現在引數介面的右側。

引數控制項類型

引數控制項有點像Excel裡的控制項,有文本,有下拉清單等等。這裡將地區引數控制項類型改為下拉清單,如下圖:

選中下拉清單控制項,在右上方屬性工作表中,設定下拉清單的資料字典,選擇資料庫表>FRDemo>銷量,實際值和顯示值選擇列名,都為地區欄位:

第五步:製作圖表

圖表製作的方式和Excel很類似,選圖表,填資料,設定格式。

合併A7~D18儲存格,選擇功能表列上插入>儲存格元素>圖表,彈出圖表類型對話方塊,這裡選擇直條圖(新特性)>直條圖,點擊確定,如下圖所示:

選中圖表,在右側上方的儲存格元素面板中選擇資料,圖表資料來源使用儲存格資料。
分類軸輸入公式=B4;系列名和系列值,分別為=C3和=C4,如下圖:

點擊保存,圖表製作完成。

圖表擴展屬性

這裡只想讓圖表反映整體情況,所以應為不擴展,左、上父格均為無。選擇圖表,在設計介面右上方的儲存格屬性面板中設置左、上父格均為無,如下圖:

最後,報表預覽

做完之後,直接點擊分頁預覽,即可在流覽器端查看效果。


至此,一張範本就製作完成了。

最後做個總結

要說效率,最大的好處就是從資料庫中讀出資料自動產生報表,且一類報表做成一個固定樣式的範本,每次只要同步一下,自動同步週期性的報表,如日報、週報、月報、季報等。 還能批量匯出/列印,少了人力去一個一個用Excel統計匯總。

且操作上,原本Excel需要VBA開發的成本,在FineReport裡大多數都封裝成模組了,包括寫SQL取數,匯總篩選過濾等,基本上都有對應的功能鍵。像著名的資產負債表,如果按照以往寫程式碼或者寫複雜的SQL語句,就有點摧殘生命了,而且那天書般的SQL語句要是出點錯誰來查,如果資料來自多個源,那就徹底無法解脫了。

其次,在資料處理速度上,由於性能一部分依靠資料庫,一部分依靠FineReport的行式報表引擎,相比於Excel的單機效率,幾十萬行的資料秒出。

好了,看了這麽久,下載免費版試用一下吧!

免費試用FineReport10.0>

獲得帆軟最新動態:數據分析,報表實例,專業的人都在這裡!加入FineReport臉書粉絲團

相關文章:

你還在用Excel? 用這工具,5步完爆Excel表格

資料分析,除了Excel樞紐分析表,還有什麼工具?

地表最強報表工具,一張範本秒殺數百Excel !

喜歡這篇文章嗎?歡迎分享按讚,給予我們支持和鼓勵!

arrow
arrow

    leohope 發表在 痞客邦 留言(0) 人氣()