• 
    <ul id="auswy"><sup id="auswy"></sup></ul>
  • <ul id="auswy"></ul>
    ABB
    關(guān)注中國自動化產(chǎn)業(yè)發(fā)展的先行者!
    CAIAC 2025
    2025工業(yè)安全大會
    OICT公益講堂
    當(dāng)前位置:首頁 >> 案例 >> 案例首頁

    案例頻道

    基于.NET平臺的復(fù)雜報表管理系統(tǒng)的結(jié)構(gòu)設(shè)計
    • 企業(yè):控制網(wǎng)     行業(yè):輸配電    
    • 點擊數(shù):3059     發(fā)布時間:2006-07-23 01:51:11
    • 分享到:
    對于可實現(xiàn)完全自定義、多維結(jié)構(gòu),基于工作流的,操作上可以一級提交多級審批的一類復(fù)雜報表管理系統(tǒng),提出了在.NET平臺下采用面向?qū)ο蟮拈_發(fā)模式,以及運用ASP.NET、C#等實現(xiàn)技術(shù),并且給出了系統(tǒng)核心的數(shù)據(jù)結(jié)構(gòu)設(shè)計和程序結(jié)構(gòu)設(shè)計。

     

    1.        引言

       
    十幾年來,信息技術(shù)飛速發(fā)展,在辦公自動化、MIS、ERP等的發(fā)展浪潮中,報表管理系統(tǒng)的設(shè)計與實現(xiàn)始終是各開發(fā)人員和用戶非常關(guān)心的技術(shù)和業(yè)務(wù)環(huán)節(jié)。同時,報表管理對于各企事業(yè)單位而言,能否實現(xiàn)其高度的實用性、高效性和靈活性,決定了報表管理系統(tǒng)的成功與否。經(jīng)過多年的發(fā)展,近年來基于B/S模式下的Web報表管理在悄然走俏,同時,現(xiàn)代企業(yè)下的報表需求呈現(xiàn)出更復(fù)雜(多維),自定義更靈活,管理更簡便的趨勢。如何實現(xiàn)B/S方式下的Web報表管理是許多用戶或開發(fā)商都會遇到的問題。而作為新時代Web開發(fā)的寵兒――ASP.NET提供了目前最先進(jìn)的Web開發(fā)平臺,它采用了微軟最新的DOT NET框架,是DOT NET框架的核心元素。

    2.        系統(tǒng)需求分析及解決方案

    2.1 需求分析


        本系統(tǒng)的需求所涉及的功能和性能方面比較全面,在此只列舉部分較為核心的需求,如下:

       
    1)        報表可完全自定義,即可方便的定義新的報表,刪除不用的報表定義,并且定義好的報表在系統(tǒng)運行時動態(tài)生成;


    2)       
    報表的多維性,在2維的基礎(chǔ)上可以延伸到3維和4維,即行和列的定義均可再歸類細(xì)分,使得報表更靈活,適應(yīng)現(xiàn)代企事業(yè)單位復(fù)雜報表的要求;

       
    3)        報表具有兩種提交模式,一種是直接在系統(tǒng)中在線填寫數(shù)據(jù)提交,另一種是離線編輯再通過上傳文件進(jìn)行提交,相應(yīng)具體的模式在報表定義時即確定。

       
    4)        報表具有工作流特性,提交的報表可根據(jù)設(shè)定好的路徑進(jìn)行多級審批,即實現(xiàn)一級提交,多級審批;

       
    5)        每類報表的審批路徑可通過報表授權(quán)模式實現(xiàn)對審批路徑的完全自定義;

       
    6)        用戶對報表的操作通過報表授權(quán)的模式進(jìn)行,可以靈活的指定某個用戶可以操作哪些表格,對每個表格具有哪些操作權(quán)限;

       
    7)        對于大型集團企業(yè),可適應(yīng)跨國、跨地域或跨門類的報表提交,即同一報表可隸屬于不同的分公司/門類;

       
    8)        報表數(shù)據(jù)可系統(tǒng)自動進(jìn)行匯總、分類和生成圖表(柱狀圖、餅狀圖等),并可產(chǎn)生分析結(jié)果;

       
    9)        報表具有導(dǎo)入導(dǎo)出數(shù)據(jù)、打印等功能;

       
    10)     系統(tǒng)易于維護(hù)和再次修改開發(fā),移植性要好,具有良好的擴展接口;代碼量要少且運行效率高;

    2.2 解決方案

       
    基于以上需求分析,提出以下解決方案:

       
    1.           實現(xiàn)技術(shù)

    1  技術(shù)方案

     

    方案

    開發(fā)平臺

    采用微軟最新.NET平臺

    系統(tǒng)模式

    基于B/S構(gòu)建

    開發(fā)技術(shù)

    ASP.NET , ADO.NET

    程序語言

    C#

    開發(fā)模式

    面向?qū)ο?/FONT>

    輔助技術(shù)

    JavaScript,Flash

    數(shù)據(jù)庫選型

    SQL Sever 2000

    界面模式

    采用日歷導(dǎo)航


    2.          
    功能模塊劃分

       
    1)        系統(tǒng)登錄模塊

    提供用戶登錄界面,并識別用戶類型、權(quán)限等信息。

    2)        報表管理模塊

    主要完成報表的增加、自定義、修改、刪除、授權(quán)等功能。

    l         報表定義子模塊――完成新增報表的完全定義,定義報表的基本屬性、提交模式、審批級數(shù)等。

    l         報表編輯子模塊――對既有報表進(jìn)行修改、刪除等工作。

    l         報表授權(quán)子模塊――對用戶、對象(包括報表名稱和隸屬)和操作類型三者關(guān)系進(jìn)行關(guān)聯(lián),完成報表授權(quán)。

       
    3)        報表操作模塊

    完成報表的查看、錄入提交和多級審批功能。

    l         報表錄入子模塊――對新報表進(jìn)行數(shù)據(jù)錄入和提交,并存儲到數(shù)據(jù)庫。

    l         報表審批子模塊――對已提交數(shù)據(jù)進(jìn)行第一級審批,對上一級審批通過數(shù)據(jù)進(jìn)行次級審批。

    l         報表查看子模塊――對自己提交的數(shù)據(jù),自己審批的數(shù)據(jù)進(jìn)行時候查看;相應(yīng)權(quán)限用戶對多級審批通過完成的數(shù)據(jù)進(jìn)行查看。

       
    4)        報表運算模塊

    主要完成已審批完成的數(shù)據(jù)進(jìn)行自動匯總、生成圖表等工作,另外提供數(shù)據(jù)的導(dǎo)入導(dǎo)出、打印等功能。

       
    5)        系統(tǒng)管理模塊

    完成系統(tǒng)用戶的增刪管理工作,以及系統(tǒng)權(quán)限的授予,提供用戶可修改密碼等。

    3.        系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計

    1)        數(shù)據(jù)結(jié)構(gòu)圖

    由于本系統(tǒng)要求報表定義和操作的高度靈活性和報表復(fù)雜性(報表需具有24維結(jié)構(gòu),能夠自定義每類報表的工作流程,實現(xiàn)報表的一級提交,多級審批),而且報表能夠進(jìn)行靈活的授權(quán)……這些需求都決定了系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計的極端重要性,數(shù)據(jù)結(jié)構(gòu)的是否合理,直接影響了系統(tǒng)的開發(fā)和最終實現(xiàn)。

    下面提供了圍繞用戶、報表定義、報表隸屬、數(shù)據(jù)存儲、數(shù)據(jù)操作和報表授權(quán)這幾個核心模塊的數(shù)據(jù)結(jié)構(gòu),見圖1。


    1 系統(tǒng)數(shù)據(jù)結(jié)構(gòu)實體關(guān)系圖

    2)        部分表和字段說明

    l         多個表中的Valid字段:用于標(biāo)識該記錄的有效性,對于一些比較重要且與其他表主外鍵關(guān)聯(lián)的記錄,直接刪除是不妥的,比較好的做法是執(zhí)行刪除操作時將該記錄的Valid0(假設(shè)1為有效,0為無效);

    l         ReportTable中的TableType字段:標(biāo)識報表類型,一般為日報表、周報表、月報表、季度報表和年報表等;

    l         ReportTable中的SubmitType字段:標(biāo)識提交類型,本系統(tǒng)分為兩種:在線填報提交和離線編輯并上傳文件提交;

    l         ReportTable中的DutyNum字段:標(biāo)識審批級數(shù);

    l         TableRow中的RowOrder字段和表TableColumn中的ColumnOrder字段:分別標(biāo)識表中的行名稱和列名稱的排序號,以保證動態(tài)生成的表格能;按照定義時的行列順序一致。通過改變這兩個字段的值即可調(diào)整行列順序;

    l         SubmitDataSubmitFile:分別存儲兩種提交模式下的數(shù)據(jù);

    l         ReportSubmit中的NowDealState字段:標(biāo)識目前此記錄的操作狀態(tài),區(qū)分是暫存數(shù)據(jù)、提交數(shù)據(jù)、某一級審批中數(shù)據(jù)、完成數(shù)據(jù)還是被退回數(shù)據(jù);

    l         DataDeal:記錄用戶的操作記錄,暫存、提交和審批;

    l         ReportImpower中的DutyCode字段:標(biāo)識用戶對某個隸屬的某個表格的操作權(quán)限,是提交、1級審批還是n級審批;

    4.        系統(tǒng)程序結(jié)構(gòu)設(shè)計

    本系統(tǒng)采用面向?qū)ο蟮拈_發(fā)技術(shù),在.NET框架下,可以實現(xiàn)真正的用戶界面與程序代碼分離(即“代碼隱藏”CodeBehind技術(shù))。利用此特性,我們可以把每一功能模塊進(jìn)行邏輯劃分成程序塊,再把這個程序塊封裝成類(.cs文件),然后再把所有的類文件編譯成一個動態(tài)鏈接庫(.dll文件)。當(dāng)系統(tǒng)操作需要某個功能時,只要調(diào)用動態(tài)鏈接庫中的相應(yīng)類即可。

    本系統(tǒng)的程序塊較多,限于篇幅,下面介紹兩個核心的程序塊結(jié)構(gòu)。

    1)        動態(tài)生成報表程序


    2 動態(tài)生成報表程序流程圖

    這是一個系統(tǒng)基本程序,因為系統(tǒng)在很多操作場景下都需要動態(tài)生成報表。

    本程序的輸入為所選報表的名稱(TableCode)、報表隸屬(BelongCode)和報表時間(TableTime,日報表為某天日期,周月季年報表為起始日期到結(jié)束日期)。程序輸出為所生成報表的HTML代碼,有三種狀態(tài):報表不正確、報表正確但無數(shù)據(jù)、報表正確且有數(shù)據(jù)。

    2)        操作報表程序

    當(dāng)完成上述動態(tài)生成報表后,即進(jìn)入報表待操作模式。

    報表操作分為三個狀態(tài):查看、錄入和審批(多級審批中具體是哪級審批由報表授權(quán)表中的DutyCode字段標(biāo)識)。

    此程序判斷環(huán)節(jié)較多,主要是判斷報表狀態(tài)、用戶的操作狀態(tài)、用戶對于此報表的有效權(quán)限。根據(jù)每一個判斷的不同,程序走向也將不同。另外本程序過程中涉及用戶錄入數(shù)據(jù)這一環(huán)節(jié),當(dāng)然,錄入數(shù)據(jù)分為填寫數(shù)據(jù)和上傳文件兩種情況。

    3 操作報表程序流程圖

    除了這兩個核心程序塊以外,還有報表定義程序塊、報表授權(quán)程序塊、報表數(shù)據(jù)匯總計算程序塊、報表數(shù)據(jù)導(dǎo)入導(dǎo)出程序塊等等。在此就不一一介紹了。

    5.        結(jié)束語

    基于.NET平臺的復(fù)雜報表管理系統(tǒng),實現(xiàn)了對一類復(fù)雜報表的最大限度的靈活自定義、報表網(wǎng)上工作流轉(zhuǎn)、報表數(shù)據(jù)綜合處理等。它的面向?qū)ο蟮拈_發(fā)模式和最前沿的開發(fā)工具ASP.NET,保證了其良好的可擴展性、移植性和操作性。更加適應(yīng)當(dāng)今網(wǎng)絡(luò)化辦公及數(shù)據(jù)管理的趨勢和大型企事業(yè)單位的需求。

    參考文獻(xiàn)

    [1]       黃忠成 編著,深入剖析ASP.NET組建設(shè)計,北京,電子工業(yè)出版社,2004.5;

    [2]       嘉木工作室 編著,C#編程思想,北京,機械工業(yè)出版社,2003.3;

    [3]       楊正洪 等編著,SQL Server 2000關(guān)系數(shù)據(jù)庫系統(tǒng)管理和開發(fā)指南,北京,機械工業(yè)出版社,2001.9;

    熱點新聞

    推薦產(chǎn)品

    x
    • 在線反饋
    1.我有以下需求:



    2.詳細(xì)的需求:
    姓名:
    單位:
    電話:
    郵件: