報表系統應該如何設計?--開源軟件誕生15

報表系統的設計與探討--第15篇git

用日誌記錄「開源軟件」的誕生github

【點亮星標】----祈盼着一個鼓勵數據庫

博主開源地址:異步

碼雲:https://gitee.com/redragon/redragon-erp編輯器

GitHub:https://github.com/redragon1985/redragon-erp編碼

 

什麼是報表系統

報表對於業務系統是十分重要且與全部功能息息相關的,在信息系統的平常應用中簡直能夠說是無處不在。報表每每是經過彙總、統計的方式,經過不一樣的邏輯以及不一樣的展示形式,最終輸出咱們在信息系統中輸入的數據。設計

傳統的方式,咱們實現一個報表,每每須要代碼層面去實現。有一個報表邏輯咱們就要根據當前邏輯,編寫一套代碼來輸出顯示一個報表。但這種方式無疑是須要消耗高昂的開發成本以實現目的,因此報表系統應運而生。報表系統,簡單說就是能夠經過配置或最少的開發方式來讓用戶本身實現本身想要的報表,以更便捷的方式下降了報表的實現成本。日誌

報表系統解決了哪些問題

要看報銷系統解決了哪些問題,先要看原始的實現方式存在哪些問題,咱們一條一條來分析。blog

(1) 快速開發報表,除了報表的核心邏輯外,開發多個報表每每須要不少重複的工做量。因此下降開發成本是報表系統最直接的好處。資源

(2)離線功能,傳統方式在報表生成時,每每是同步的,咱們必須等待系統執行完成後,再查看報表或作其餘操做。若是在報表的數據量較大的狀況下,中間的等待時間每每是沒法接受的。而報表系統就能夠實現離線的生成報表,異步的查看報表。

(3)歷史報表,傳統方式咱們並不會存儲報表的歷史記錄,好比你在月初生成了一個報表,若是你不在本身的硬盤裏保存它,咱們就很難在月底時找到月初生成的報表數據。而報表系統的歷史查詢功能就更突顯了它的優點。

(4)定時報表、批量報表等更加靈活的報表生成方式,報表系統通常會提供更多更靈活的報表生成方式,而不只僅侷限於點擊生成、點擊查看,這是原始實現方式不具有的。

(5)統一的查看路徑和查看方式,若是沒有報表系統,咱們要同時查看多個報表,每每必須屢次點擊打開不一樣的模塊,找到不一樣報表,查看的路徑和方式複雜多樣。而統一的方式更利於咱們的平常管理和操做。

(6)統一的權限控制,報表系統便於咱們設置統一的權限邏輯,並進行統一的權限配置,實現報表和數據的嚴格管控。

ERP對於報表系統的依賴

你們都知道ERP系統管理的是企業內部的業務和財務,管理的是企業內一切的資源。這裏面涉及的報表不可勝數,須要彙總、加工、統計、計算、分析等各類步驟。這讓自己就複雜的ERP系統,更爲雜亂無章,十分須要一個一體化的解決方案來解決報表操做和處理的各類問題。

報表系統如何實現

既然報表系統對於ERP如此重要,下面咱們來研究一下如何設計一個報表系統。如今常見的兩種報表系統的設計方式以下:

(1)全配置實現方式(極少代碼):用友採用的是此方式。基本實現流程是,經過已經映射好的表結構關係和字段關聯,將經常使用的字段放置於頁面,經過可排版的編輯器,讓用戶本身製做出一個報表模板,並把設置好的字段放置於模板中,最終生成用戶想要的報表。但這個過程當中不是徹底沒有編碼的工做,有時可能須要一些SQL或邏輯判斷來輔助完成。

此種方式多數只能生成一些不是特別複雜的報表,若是存在複雜的加工、分析邏輯,是很難經過配置方式簡單實現的。而對於簡單的報表,這種方式的實現門檻就極低了。

(2)部分代碼、部分配置的實現方式:Oracle採用的是此方式。基本實現流程是,經過視圖或存儲過程生成報表的數據,而後用Excel畫出報表的模板,並根據固定的格式填入數據,最終將視圖和報表模板配置於報表系統中,從而生成用戶想要的報表。這個過程當中須要用戶熟悉數據庫的基本操做,好比SQL、視圖、存儲過程等。

此種方式的優點是基本能夠用比較少的代碼(只涉及報表的核心邏輯)實現全部的複雜報表的需求,而難點也是用戶必須具有必定的數據庫經常使用功能的編寫和處理能力。而即便是簡單的報表也採起了相同的實現流程,因此也須要上述的技術要求。

總結一下,無論你採用哪一種方式實現報表系統,最終的目的必定是方便用戶生成報表,因此必定要分析你業務系統使用的場景,以及你產品受衆的關注點,去決定如何去設計報表系統。固然除了核心的流程外,必定要兼具離線處理、歷史記錄、批量報表、定時報表、權限管控等各類功能。

後記

若是您對咱們正在作的開源軟件感興趣,歡迎各類形式的合做,做爲貢獻者或直接加入咱們!讓咱們一塊兒打造一套開源的企業級信息化解決方案。

 

碼雲】或【GitHub】搜索「赤龍ERP」點擊星標。等待着您的支持! 與開發者交流 kzca2000

相關文章
相關標籤/搜索