爲什麼說當前報表開發的工作量主要在數據源環節?又如何解決呢?

我們知道,報表開發主要有兩個階段。
第一階段:數據準備。將原始數據加工成報表需要的結果集(數據源);
第二階段:數據呈現。根據已準備的結果集(數據源)編寫表達式將數據以表格或圖形方式呈現。

這兩個階段雖然處於同一報表開發過程,但實現方式卻大不相同。

通常原始數據距離報表“能用”還相去甚遠,通過 SQL/JAVA/ 存儲過程等編碼方式準備報表可用的數據源是第一階段的目標,過程中可能涉及複雜的數據處理過程,因而這個階段會牽扯較多的精力,佔用的工作量也多。

數據源準備好後,通過報表工具來解決數據以何種方式(圖表)、何種樣式(外觀)呈現的問題,通過點選設置、編寫少量表達式就可以快速完成,實現簡單,佔用的工作量也少。

可以說,報表開發的工作量主要在數據處理(計算),數據處理後如何呈現,通過工具可以快速完成。

那是不是報表呈現階段就不涉及數據處理了呢?
並不完全是這樣。

早期報表開發
大概 2015 年以前,報表呈現方式主要以表格(或圖表混合)爲主,這時通過報表工具實現時就會涉及一定的數據計算,如分組彙總、多源分片、格間計算(同比環比)等。如下圖所示:

6PNG

計算分佈在數據準備和數據呈現兩個階段,兩個階段的工作量相當(各佔 50%)。這個時期,數據準備階段可以把數據準備得“粗糙”一些,然後利用報表工具的計算能力在呈現階段將數據進一步加工成目標結果進行呈現。比如,我們在數據準備階段完成關聯過濾,再在報表呈現模板中按多個維度分組彙總;或者在呈現模板中計算同比環比。

當前報表開發
隨着報表工具的逐漸成熟,報表工具提供了更豐富的圖形(類型和效果),報表選擇圖形呈現幾乎與表格佔比相當了(佔比仍在增長)

7PNG

使用圖形呈現,由於沒有“格子”,就無法利用報表工具的計算能力在呈現模板中完成數據處理,而圖形本身並不具備計算能力(不包括硬編碼),這時自然而然就要在數據準備階段將前端需要的數據完全準備好,前端工具接收數據直接圖形呈現。
圖形設置基本沒什麼工作量,而後端數據源的準備工作就佔了大頭,數據呈現和數據準備所佔的工作量佔比約爲 20%:80%。

當前報表開發的工作量主要在數據源端(數據準備階段),要提升報表開發效率,勢必要解決報表數據源準備效率問題。這也是爲什麼很多時候用上了一流的報表工具,但報表開發的工作量仍然很大的原因。

如何提升報表數據源端的開發效率,從而整體降低報表開發工作量?

借鑑報表開發的發展歷史,或許可以獲得一些思路。
早期,報表開發靠完全硬編碼,無論數據準備還是報表呈現,後來報表工具出現替代了硬編碼方式,將報表呈現階段的開發工具化,解放了報表呈現階段的人力(你可以感受一下寫代碼畫報表比用工具做麻煩多少)。

按照這個思路,用工具替代硬編碼就可以提高生產效率,將數據準備階段工具化就可以解決報表數據源的開發效率,從而進一步提升報表整體開發效率。

8PNG

數據準備工具可以是獨立的,也可以包含在報表工具內部,後者要求報表工具的能力能夠延伸到數據源層面。在選擇報表工具時,不妨多考察一下工具的數據處理能力。

參考資料:
【數據蔣堂】第 10 期:報表的數據計算層
如何應對報表開發中的複雜邏輯

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章