提起報表,大家會覺得即熟悉又陌生,好像常常在工作中使用,又似乎無法準確描述報表。今天我們來一起了解一下什麼是報表,報表的結構、構成元素,以及爲什麼需要報表。
什麼是報表
簡單的說:報表就是通過表格、圖表等形式來動態顯示數據,併爲使用者提供瀏覽、打印、導出和分析的功能,可以用公式表示爲:
報表 = 多樣的佈局 + 動態的數據 + 豐富的輸出
報表通常包含以下組成部分:
- 報表首頁:在報表的開始處,用來顯示報表的標題、圖形或說明性文字,每份報表只有一個報表首頁。
- 頁眉:用來顯示報表中的字段名或對記錄的分組名稱,報表的每一頁只有一個頁面頁眉。
- 主體:打印表或查詢中的記錄數據,是報表顯示數據的主要區域。
- 頁腳:打印在每頁的底部,用來顯示本頁的彙總說明,報表只有一個頁面頁腳。
- 報表尾頁:用來顯示整份報表的彙總說明,在所有記錄都被處理後,只打印在報表的結束處。
報表的發展歷史
報表的使用和相關技術發展大致分爲五個階段。
一、紙質類報表
在沒有計算機以前,人們利用紙和筆來記錄數據。數據以記賬人能理解的表現形式來記錄,這種形式難於修改且不規範,易出錯,且易丟失不易保存。如圖所示:
二、電子化報表
計算機出現之後,人們利用計算機處理數據和界面設計的功能來生成、展示報表,相比較手工方式而言,工作效率大大提高。這個時期,最爲典型就是Excel、word等辦公軟件,這些工具僅僅是將手工繪製報表的方式改爲電子處理方式,沒有定義專門的報表結構來動態加載報表數據,這類軟件中的數據都是已經定義好的,不能動態變化。如圖所示:
三、基礎報表工具
隨着信息化程度的不斷提高,對於數據動態化的迫切需要,因此出現了許多內置於ERP或數據庫軟件的報表,報表以固定的格式嵌入ERP系統或數據庫軟件中,它們可以擁有動態變化的數據,但是這類軟件一般只會提供最簡單的表格形式來顯示數據。它們沒有動態報表、格式多樣化等特性。
四、現代報表工具
信息的發展總是在輔助用戶工作,提高用戶的工作效率。數據動態化之後,單一表格樣式的報表並不能滿足用戶需求,因此產生了真正意義上的報表,即具有數據動態化以及格式多樣化特性的報表。爲此,有專門的報表結構來動態的加載數據,同時實現報表格式的多樣化,進行有效的數據展示。
五、自助式報表
隨着業務系統的發展,在不借助任何軟件研發人員協助的情況下,最終用戶需要根據自身的要求,整合各種不同的數據來創建具有交互式功能的報表,進行即時分析與預測分析,從而降低決策的風險性,幫助企業發現潛在商機。基於此類需求, ActiveReports報表工具就此誕生。
報表的結構及主要元素
以ActiveReports桌面報表設計器中的一張報表爲例,報表通常包含頁面渲染部分和數據兩部分:
- 頁面渲染(HTML)部分:可以插入圖表、Table、文本框、圖像等元素
- 數據部分:包含數據源(DataSource)和數據集(DataSet)
如何通過代碼創建並加載一張報表?
爲ActiveReports報表工具爲例,可以通過兩種模式設計報表:
一、UseFileStore模式(靜態加載模式):
- 遍歷UseFileStore設置的文件夾路徑,找到文件夾裏存在的報表文件
- 報表文件即是前端Js設置報表reportID
注意:這種模式只能加載之前設計好的報表文件
二、UseCustomStore模式(動態創建模式):
- settings.UseCustomStore(GetReport)
這種模式會先執行GetReport回調方法,通常GetReport裏都是動態創建報表模板元素的代碼,當GetReport執行完後(創建好報表模板),返回Report,繼續給settings.LocateDataSource使用
我們將在本期葡萄城公開課中,通過代碼演示及在線分享,講解如何動態創建一張報表模板。公開課預約地址:http://live.vhall.com/510595995
動態創建報表的目的
- 可作爲通用性的報表模板。開發者只需動態創建一張報表,之後傳入不同的數據集數據即可實現模板複用。
- 報表佈局更加靈活。用戶可以在自己的配置界面設置參數,並按指定參數生成報表模板的UI模塊,如行列、間距等。
- 數據源、數據集多樣化。開發人員可以將數據源、數據集單獨配置維護,而不再需要將數據源在報表設計器裏寫死。
- 4. 報表數據能隨條件隨時調用。開發人員可以更便捷、更迅速地查詢和閱讀數據,並可使用更爲豐富的邏輯動能,如參數過濾、參數聯動、鑽取、參數面板動態顯示、動態參數列、動態條件等。
案例分享:如何在.NET MVC 模式下,動態創建一張報表模板
本期公開課特別邀請:西安龍峯信息技術有限公司,HIS醫療系統項目開發經理 —— 付鵬程先生 ,爲大家在線分享 ActiveReports 報表控件在醫療行業的應用實踐,以及如何在.NET MVC 模式下動態創建一張列表報表。
直播地址:http://live.vhall.com/510595995
直播時間:2019-08-07(星期三)下午 14:00
內容大綱:
- 報表設計中常見的結構及元素
- 代碼加載報表的2種方式
- 利用代碼動態創建報表元素:UI佈局、數據源、數據集
講師將以列表報表這一類型,通過代碼演示以及Demo示例,爲您講解動態創建報表模板的具體步驟及如何快速地通過代碼創建報表元素。
列表報表,作爲常見的報表類型,以列表的方式展示字段值,無需分組合並。列表報表的樣式如下所示:
列表報表已被廣泛應用於倉儲管理、交通運輸、醫院醫療等領域,隨着這些領域的規模日趨擴大、結構日趨複雜,固定的報表列設計已經難以滿足用戶的實際需求,而由用戶動態生成報表列、自定義報表列樣式,已成爲報表設計過程中一種更爲普遍的需求。
動態創建報表模板的應用場景
以HIS醫療系統中的“醫生工作量統計(詳細)報表”爲例,該報表模板包含了14個業務模塊,且全部對應一種報表類型:列表。爲了簡化報表創建流程,提高項目開發效率,就需要通過代碼創建動態列報表類型。
通過代碼創建動態列報表的好處,除了加速開發、減少後期維護成本外,還可自適應列寬,即根據你所創建的內容自動填充頁面佈局。
動態創建報表的示例下載
擴展閱讀
關於 ActiveReports .NET報表控件
ActiveReports 是一款專注於 .NET 平臺的報表控件,全面滿足 HTML5 / WinForm / ASP.NET / ASP.NET MVC / WPF 等平臺下報表設計和報表開發的需求,作爲專業的報表工具爲全球超過 300,000 名開發者提供全面的報表解決方案。
ActiveReports 提供了多種用於報表設計的工具,如 VSDesigner,Visual Studio 加載項、獨立的桌面端設計器和在線報表設計器。這些報表設計工具均可嵌入到您的應用系統中,爲您的最終用戶提供報表設計功能。