本章寫關于架構中的“自定義報表”,類似上章“字典管理”也是三部分功能組成,包括配置報表、對報表按角色授權、檢視報表;其核心思想就是實作新增一個報表而不用修改程式代碼、不用更新,隻需要編寫一個存儲過程,再設計一個報表格式就能夠給客戶使用;當然此功能也不是萬能的,也不能解決項目中的所有報表需求,比如穿透報表、填報報表等就沒辦法了,隻能自己代碼搞定了;
本章内容不是講制作報表,也不是講報表工具,架構中沒有報表元件,用的第三方的,Web版用的“ReportAll”、Winform版用的“Grid++ Report”,都是國産輕量級的報表,但個人覺得還是蠻好用的,比水晶報表等國外的強大工具好用多了,很适合中小型項目;
順便再講一下在項目中我對報表的一些了解吧,我原本寫這系列文章的想法就是,一分享一下多年在架構上的成果,二就是個人在工作中對一些具體功能的想法;雖然不是什麼高端大氣的東西,但自認為還是比較接地氣的;
報表在一個完整系統中肯定是缺不了的,可能項目前期客戶沒有什麼需求,等後期你将要驗收的時候一堆表格就來了;報表最重要的就是資料的準确性,這方面确實要下不少功夫,一般不是進入系統的資料有問題,最多就是統計出口的問題,你可以覺得這有什麼,保證出口路徑一緻就行,但你要知道誰保證得了;幾十張、甚至幾百張報表,這幾張是小李做的,這些是幾年前做的,這個又是哪個客戶提的?我們解決這種現象的辦法就是從這些報表中一整套完整報表,必須涵蓋所有業務,且資料前後因果關系,報表的統計的先後順序,針對客戶崗位級别等方面都要考慮到,分析出整套模型與維持模型是花了大量時間與精力的;是以覺得系統中所謂的管理思想,這占了很大一部分吧;一個實施人員能把整套報表給客戶講清楚,他的實施能力也應該到家了;報表另一方面就是統計速度的問題,因為随着系統使用越久,資料量越來越大,這時候索引也解決不了所有問題的了,我們辦法就是建彙總表,把曆史資料背景定時轉移到彙總表,所有報表從彙總表出;而建彙總表又是一個消耗腦細胞的活,建得太粗了搞不好就一些報表就出不來了,建得太細那這個彙總表也沒啥意義;嚴重考驗你對業務的掌握與分析能力;
本文要點:
1)功能清單介紹
2)功能界面展示
3)核心業務流程圖與資料庫表關系圖
4)關鍵點的技術實作代碼
說多了,本章的重點介紹一下架構中的自定義報表功能。
1)自定義報表功能清單
子產品名稱 | 功能名稱 | 功能說明 |
系統報表 | 報表參數配置 | 報表分類目錄,新增、修改、删除 報表管理, 1)選擇資料庫存儲過程添加報表 2)根據資料庫存儲過程參數,生成報表查詢控件元素 3)生成報表檔案,設計報表格式 4)輸入查詢條件預覽報表内容 |
報表權限設定 | 配置系統角色可以操作的報表 | |
系統報表管理 | 根據使用者登入的角色顯示可以操作的報表 報表查詢 |
2)自定義報表界面展示

3)自定義報表核心業務流程圖與核心表
4)自定義報表關鍵技術實作
1.測試報表的存儲過程
ALTER procedure [dbo].[sp_rpt_test]
(
@v_mouduleid int = null,
@v_mouduleid1 int = null,
@v_mouduleid2 int = null,
@v_mouduleid3 int = null,
@v_mouduleid4 int OUTPUT
)
as
SELECT * from basemenu where moduleid=@v_mouduleid