《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 设计应用 > 基于ASP.NET2.0的技改工程管理平台的设计与实现
基于ASP.NET2.0的技改工程管理平台的设计与实现
来源:微型机与应用2011年第22期
杨 扬
(河南省电力通信自动化公司, 河南 郑州450052)
摘要: 设计并实现了一个基于ASP.NET2.0的技改工程管理平台系统。系统采用ASP.NET2.0作为开发工具,采用了Access数据量,并对系统的角色划分、数据库的结构、系统的功能模块划分、审批流程等作了一系列阐述。
Abstract:
Key words :

摘  要:  設(shè)計并實現(xiàn)了一個基于ASP.NET2.0技改工程管理平臺系統(tǒng)。系統(tǒng)采用ASP.NET2.0作為開發(fā)工具,采用了Access數(shù)據(jù)量,并對系統(tǒng)的角色劃分、數(shù)據(jù)庫的結(jié)構(gòu)、系統(tǒng)的功能模塊劃分、審批流程等作了一系列闡述。
關(guān)鍵詞: ASP.NET2.0; 數(shù)據(jù)庫設(shè)計; 技改工程

    隨著企業(yè)的規(guī)模擴大,申報項目的不斷增多以及公司內(nèi)部信息化水平的提高,傳統(tǒng)的科技項目、技改項目的申報方式已經(jīng)無法滿足目前信息化的需要。針對這種情形,運用信息化的手段,設(shè)計一個適用于公司內(nèi)部的技改工程管理平臺,可以改善當前申報項目效率低下的狀況,有利于項目集中管理、歷史查閱,更高效地協(xié)助計劃部做好相應(yīng)的項目管理工作。
    本文設(shè)計和開發(fā)的技改工程管理平臺是以B/S結(jié)構(gòu)為基礎(chǔ),運用ASP.NET2.0技術(shù)和Access數(shù)據(jù)庫,充分利用VS2005提供的各種功能控件。實現(xiàn)項目審批、流轉(zhuǎn)、發(fā)回、導(dǎo)出等功能。以最少的人力、物力實現(xiàn)最大的功能。
1 ASP.NET2.0介紹
    ASP.NET2.0是建立在微軟新一代.NET平臺架構(gòu)上,利用普通語言運行時(Common Language Runtime)在服務(wù)器后端為用戶提供建立強大的企業(yè)級Web應(yīng)用服務(wù)的編程框架[1]。ASP.NET2.0主要包括WebForm和WebService兩種編程模型。前者為用戶提供建立功能強大、外觀豐富的基于表單的可編程Web頁面。后者通過對HTTP、HTML、SOAP、WSDL等Internet標準的支持提供在異構(gòu)網(wǎng)絡(luò)環(huán)境下獲取遠程服務(wù),連接遠程設(shè)備,交互遠程應(yīng)用的編程界面。
    ASP.NET2.0的優(yōu)點除了比傳統(tǒng) ASP 的運行速度更快、具有服務(wù)器控件、采用“code-behind”方式編寫代碼使得代碼更易于編寫外,還支持應(yīng)用程序的實時更新、自動檢測變化并根據(jù)需要動態(tài)編譯文件。它不但使執(zhí)行效率大幅度提高,對代碼的控制能力也很強,并且支持Web Controls功能和多種語言,提高安全性、易管理性和高擴展性。
    與ASP.NET 1.x相比, ASP.NET2.0在提高開發(fā)效率、簡化管理、提高性能等方面有了進一步的增強。主要表現(xiàn)在:更豐富的服務(wù)器控件,增加了40多個控件類;增加了主題和母版頁,使得網(wǎng)站更容易建立統(tǒng)一的風(fēng)格和布局;成員資格和角色管理實現(xiàn)了模塊化和自動化;增加的數(shù)據(jù)控件能更加方便地連接數(shù)據(jù)源和綁定數(shù)據(jù);Web部件的增加為用戶瀏覽頁面提供了布局調(diào)整等多種個性化頁面功能;個性化用戶配置的增加為存儲單個用戶的配置數(shù)據(jù)提供了方便。
2 系統(tǒng)角色的劃分
    根據(jù)需求分析中各個不同角色的不同權(quán)限,該系統(tǒng)共分為5種角色[2],每種角色分別享有不同的權(quán)限。這5種角色按照權(quán)限的大小從低到高依次為:
    (1) 普通用戶。其權(quán)限為對“十二五”規(guī)劃的項目和年度計劃的項目有增、刪、改的權(quán)限;可查詢本部門的當前項目和歷史項目。
    (2) 部門主任。其權(quán)限為除對“十二五”規(guī)劃的項目和年度計劃的項目有增、刪、改的權(quán)限之外,還可將本部門的項目上報給主管領(lǐng)導(dǎo);可查詢本部門的當前項目和歷史項目。
    (3) 公司領(lǐng)導(dǎo)。作為主管領(lǐng)導(dǎo)的角色可以審批部門上報的項目,作為公司領(lǐng)導(dǎo)的角色可以審批計劃部最終討論通過的項目,對項目具有發(fā)回和批準上報的權(quán)利。對項目的細節(jié)可以查看和修改;可查詢本公司的當前項目和歷史項目。
    (4) 計劃部 。其權(quán)限為對主管領(lǐng)導(dǎo)批準的項目進行討論,討論通過后上報公司領(lǐng)導(dǎo)。對公司領(lǐng)導(dǎo)批準報送的項目進行立項、上報省公司或國網(wǎng)公司,對沒有通過省公司審核的項目將其發(fā)回部門;可查詢本公司的當前項目和歷史項目。
    (5) 管理員。其權(quán)限為管理數(shù)據(jù)庫中的全部表信息;備份數(shù)據(jù)庫;添加用戶等。
3 數(shù)據(jù)庫設(shè)計
    根據(jù)系統(tǒng)的需要,當前數(shù)據(jù)庫中共設(shè)計了13個表,分別是技改項目表、技改工程完成明細表、項目資料表、項目進度信息表、年度技改計劃表、項目里程碑計劃表、三年技改計劃表、項目驗收表、等待處理事項表、竣工結(jié)項表、出資明細表、用戶表、部門表。圖1、圖2為技改系統(tǒng)中比較重要的兩個表的結(jié)構(gòu)。

4 系統(tǒng)設(shè)計思路
4.1 系統(tǒng)的功能模塊

     系統(tǒng)從功能上可以劃分為多個功能模塊[3],分別是“十二五”規(guī)劃、年度計劃、里程碑計劃、系統(tǒng)管理。這幾個功能模塊針對不同的角色分別對應(yīng)不同的權(quán)限,如“十二五”規(guī)劃,部門普通員工只能添加和修改,部門主任除了增刪改還具有上報功能;主管領(lǐng)導(dǎo)具有查看、修改和批準報送的功能;計劃部具有上報公司領(lǐng)導(dǎo)和對項目上報省公司、歸檔等功能。圖3為系統(tǒng)軟件總體結(jié)構(gòu)圖。

 

 


4.2 審批流程
    審批流程大致為:發(fā)起人填寫項目基本信息→部門主任審核、上報→主管領(lǐng)導(dǎo)審核、批準報送給計劃部→計劃部審核、上報給公司領(lǐng)導(dǎo)→公司領(lǐng)導(dǎo)批準報送給計劃部→計劃部上報給省公司。任意一個審批環(huán)節(jié)沒有通過,都會將該項目發(fā)回申報人所在部門。流轉(zhuǎn)過程如圖4所示。

    為了實現(xiàn)項目審批流轉(zhuǎn)的功能,本系統(tǒng)主要采用了狀態(tài)位來判斷一個項目目前的狀態(tài):
  (1) 部門上報給主管領(lǐng)導(dǎo)的狀態(tài);
  (2) 主管領(lǐng)導(dǎo)批準報送給計劃部的狀態(tài);
  (3) 計劃部上報給公司領(lǐng)導(dǎo)的狀態(tài);
  (4) 公司領(lǐng)導(dǎo)批準報送給計劃部的狀態(tài);
  (5) 計劃部上報省公司的狀態(tài);
     通過狀態(tài)位就可以準確地定位項目目前的狀態(tài)。在頁面上只有當前要審批該項目的人員可以看到該項目。如果某個項目的審批流程結(jié)束后,領(lǐng)導(dǎo)或者計劃部就可以在歷史項目中查詢該項目的基本信息。
4.3 程序難點分析
4.3.1 附件的添加和下載

    附件的添加和下載功能實現(xiàn)起來相對復(fù)雜,其實現(xiàn)原理是:針對每個項目建立一個文件夾,存放該項目的附件,文件名為項目編號,每次查看該項目內(nèi)容時通過項目編號將該項目文件夾下的文件名依次列出[4],圖5為圖控項目中的附件,點擊“瀏覽”即可打開該附件進行查看。

4.3.2 項目EXCEL報表的自動生成
    項目EXCEL報表的自動生成功能主要通過一個導(dǎo)出函數(shù)來完成[5]。下面這段代碼實現(xiàn)的功能就是將數(shù)據(jù)庫中年度計劃表中的所有項目導(dǎo)出到一個EXCEL文件中。
      private void Export(string FileType, string FileName)
    {
      System.Web.UI.WebControls.GridView dgExport = new GridView();
      dgExport.DataSource=DataAccess.Select("SELECT 項目編號AS序號、項目名稱、存在問題AS現(xiàn)狀及存在的主要問題;主要內(nèi)容AS項目主要內(nèi)容、開始時間、結(jié)束時間、總投資、累計投資AS之前累計投資、合計、小計、省折舊、單位折舊、其他、上年結(jié)轉(zhuǎn)、備注 FROM AnualPlan");
    dgExport.DataBind();
        Response.Charset = "GB2312";
        Response.ContentEncoding = System.Text.Encoding.UTF7;
        Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
    Response.ContentType = FileType;
          this.EnableViewState = false;
      StringWriter tw = new StringWriter();
          HtmlTextWriter hw = new HtmlTextWriter(tw);
          dgExport.RenderControl(hw);
          string a = tw.ToString();
         a = a.Remove(a.IndexOf("<tr>"), a.IndexOf("</tr>") - a.IndexOf("<tr>") + 5);
          a = a.Insert(a.IndexOf("<tr>"), " <tr><th colspan=′15′ rowspan=′1′ scope=′col′ > 年 部技 術(shù) 改 造 計 劃 項 目 表</th></tr><tr><th align=′right′ colspan=′15′ rowspan=′1′ scope=′col′>資金單位:萬元</th></tr>"
    + " <tr>"
              + "  <th scope=′col′ rowspan=′3′>"
              + "  序號</th>"
              + "  <th scope=′col′ rowspan=′3′>"
              + "  項目名稱</th>"
              + "   <th scope=′col′ rowspan='3'>"
              + "  現(xiàn)狀及存在的主要問題</th>"
              + "   <th scope=′col′ rowspan=′3′>"
              + "   項目主要內(nèi)容</th>"
              + "   <th scope=′col′ rowspan=′3′>"
              + "   開始時間</th>"
              + "   <th scope='col' rowspan=′3′>"
              + "   結(jié)束時間</th>"
              + "  <th scope=′col′ style=′width:42px′ rowspan=′3′>"
              + "   總投資</th>"
           + "   <th scope=′col′ rowspan=′3′>"
           + "   之前累計投資</th>"
           + "   <th scope=′col′ colspan=′6′>"
           + "       本年度計劃</th>"
           + "  <th scope=′col′ rowspan=′3′ style=′width: 31px′>"
              + "   備注</th>"
              + "  </tr>"
              + "  <tr>"
              + "  <th scope=′col′ rowspan=′2′>"
             + "合計</th>"
             + " <th scope=′col′ style=′height: 22px′ colspan=′4′>"
              + "   本年度資金</th>"
              + "      <th scope='col' rowspan='2'>"
              + "      上年結(jié)轉(zhuǎn)</th>"
              + "   </tr>"
              + "    <tr>"
              + "    <th scope=′col′>小計</th><th scope=′col′>省折舊</th><th scope=′col′>單位折舊</th><th scope=′col′>其他</th>"
              + "    </tr>");
         Response.Write(a);
    Response.End();
  }
4.4 系統(tǒng)管理
    系統(tǒng)管理主要負責(zé)對數(shù)據(jù)庫中所有表的管理,包括修改和刪除、增加用戶、備份和恢復(fù)數(shù)據(jù)庫等。
    通過對技改工程管理平臺進行分析和功能設(shè)計,本人對公司項目管理方面的流程已經(jīng)比較熟悉,并將其功能和流程設(shè)計到技改工程管理平臺中。實現(xiàn)了需求分析的全部要求。到目前為止,項目I期的計劃已經(jīng)全部完成。平臺已經(jīng)在公司試運行,并取得了良好的效果。
參考文獻
[1] 范振鈞.基于ASP.NET的三層結(jié)構(gòu)實現(xiàn)方法的研究[J]. 計算機科學(xué),2007,34(4):289-291.
[2] 王暢,王玲. 企業(yè)人事工資管理系統(tǒng)的設(shè)計與實現(xiàn)[J].電腦學(xué)習(xí),2010,3(6):85-88.
[3] 郝剛,袁永剛,嚴治國. ASP.NET 2.0開發(fā)指南[M]. 北京: 人民郵電出版社, 2006.
[4] 李萬寶.ASP.NET技術(shù)詳解與應(yīng)用實例[M].北京:機械工業(yè)出版社,2005.
[5] 孟憲會,張慧妍. ASP.NET 2.0 應(yīng)用開發(fā)技術(shù)[M].北京:人民郵電出版社,2006.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。

相關(guān)內(nèi)容