天天看點

八、EnterpriseFrameWork架構基礎功能之自定義報表

     本章寫關于架構中的“自定義報表”,類似上章“字典管理”也是三部分功能組成,包括配置報表、對報表按角色授權、檢視報表;其核心思想就是實作新增一個報表而不用修改程式代碼、不用更新,隻需要編寫一個存儲過程,再設計一個報表格式就能夠給客戶使用;當然此功能也不是萬能的,也不能解決項目中的所有報表需求,比如穿透報表、填報報表等就沒辦法了,隻能自己代碼搞定了;

     本章内容不是講制作報表,也不是講報表工具,架構中沒有報表元件,用的第三方的,Web版用的“ReportAll”、Winform版用的“Grid++ Report”,都是國産輕量級的報表,但個人覺得還是蠻好用的,比水晶報表等國外的強大工具好用多了,很适合中小型項目;

     順便再講一下在項目中我對報表的一些了解吧,我原本寫這系列文章的想法就是,一分享一下多年在架構上的成果,二就是個人在工作中對一些具體功能的想法;雖然不是什麼高端大氣的東西,但自認為還是比較接地氣的;

     報表在一個完整系統中肯定是缺不了的,可能項目前期客戶沒有什麼需求,等後期你将要驗收的時候一堆表格就來了;報表最重要的就是資料的準确性,這方面确實要下不少功夫,一般不是進入系統的資料有問題,最多就是統計出口的問題,你可以覺得這有什麼,保證出口路徑一緻就行,但你要知道誰保證得了;幾十張、甚至幾百張報表,這幾張是小李做的,這些是幾年前做的,這個又是哪個客戶提的?我們解決這種現象的辦法就是從這些報表中一整套完整報表,必須涵蓋所有業務,且資料前後因果關系,報表的統計的先後順序,針對客戶崗位級别等方面都要考慮到,分析出整套模型與維持模型是花了大量時間與精力的;是以覺得系統中所謂的管理思想,這占了很大一部分吧;一個實施人員能把整套報表給客戶講清楚,他的實施能力也應該到家了;報表另一方面就是統計速度的問題,因為随着系統使用越久,資料量越來越大,這時候索引也解決不了所有問題的了,我們辦法就是建彙總表,把曆史資料背景定時轉移到彙總表,所有報表從彙總表出;而建彙總表又是一個消耗腦細胞的活,建得太粗了搞不好就一些報表就出不來了,建得太細那這個彙總表也沒啥意義;嚴重考驗你對業務的掌握與分析能力;

本文要點:

1)功能清單介紹

2)功能界面展示

3)核心業務流程圖與資料庫表關系圖

4)關鍵點的技術實作代碼

     說多了,本章的重點介紹一下架構中的自定義報表功能。

1)自定義報表功能清單

子產品名稱 功能名稱 功能說明
系統報表 報表參數配置

報表分類目錄,新增、修改、删除

報表管理,

1)選擇資料庫存儲過程添加報表

2)根據資料庫存儲過程參數,生成報表查詢控件元素

3)生成報表檔案,設計報表格式

4)輸入查詢條件預覽報表内容

報表權限設定 配置系統角色可以操作的報表
系統報表管理

根據使用者登入的角色顯示可以操作的報表

報表查詢

2)自定義報表界面展示

八、EnterpriseFrameWork架構基礎功能之自定義報表
八、EnterpriseFrameWork架構基礎功能之自定義報表
八、EnterpriseFrameWork架構基礎功能之自定義報表
八、EnterpriseFrameWork架構基礎功能之自定義報表
八、EnterpriseFrameWork架構基礎功能之自定義報表
八、EnterpriseFrameWork架構基礎功能之自定義報表
八、EnterpriseFrameWork架構基礎功能之自定義報表

3)自定義報表核心業務流程圖與核心表

八、EnterpriseFrameWork架構基礎功能之自定義報表
八、EnterpriseFrameWork架構基礎功能之自定義報表

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      

繼續閱讀