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