目錄
獨創性聲明 I
摘要 II
Abstract HI
第1章引言 1
1.1項目背景 1
1.2系統的開發目的 1
1.3課題的提出 2
1.4國內外研究和應用現狀 3
1.5論文結構安排 3
第2章相關技術 5
2.1.NET開發框架 5
2.2.NET服務的搭建與實現過程 5
2.2.1.NET服務的創建 6
2.2.2.NET服務的調試運行 6
2.3COM組件技術 7
2.3.1COM 接口 7
2.3.2COM運行機制 8
2.4JQueryEasyUI插件集合功能介紹 9
2.4.1JQueryEasyUI 主要特點 9
2.4.2JqueryEasyUI 常見問題 10
2.5本章小結 11
第3章系統分析 13
3.1業務流程 13
3.1.1電量平衡信息管理系統業務流程 13
3.1.2業務配置管理流程 15
3.2系統實現的總體目標 16
3.3系統數據流程 17
3.4系統開發環境 22
3.4.1系統架構 23
3.4.2開發工具 23
3.4.3數據庫服務器 24
3.4.4開發語言 25
3.5本章小結 26
第4章系統設計 27
4.1系統總體設計 27
4.2系統功能的劃分 28
4.3主要功能模塊設計 29
4.3.1電表基本信息管理模塊的設計 29
4.3.2業務配置信息管理模塊的設計 30
4.3.3電量基本信息管理模塊的設計 31
4.3.4結算信息管理模塊的設計 32
4.3.5,電量平衡信息管理模塊的設計 33
4.3.6統計查詢信息管理模塊的設計 34
4.4數據庫設計 35
4.4.1數據庫設計知識 35
4.4.2數據庫表設計 36
4.5本章小結 41
第5章系統實現 43
5.1表底數據采集服務的實現 43
5.2電表基本信息管理模塊的實現 44
5.2.1電表信息管理功能的實現 44
5.2.2電表更換信息管理的實現 45
5.3業務配置信息管理模塊的實現 46
5.3.1單位與電表關系功能的實現 46
5.3.2工藝與電表關系功能的實現 47
5.3.3線路與電表關系功能的實現 48
5.4電量基本信息管理模塊的實現 48
5.4.1電表表底信息管理功能的實現 48
5.4.2小時電量信息管理功能的實現 49
5.4.3班日月電量信息管理功能的實現 51
5.5結算信息管理模塊的實現 52
5.5.1結算信息管理功能的實現 52
5.5.2結算單打印管理功能的實現 52
5.6電量平衡信息管理模塊的實現 53
5.6.1單位平衡信息管理功能的實現 53
5.6.2工藝平衡信息管理功能的實現 54
5.6.3線路平衡信息管理功能的實現 I... 55
5.7統計查詢信息管理模塊的實現 55
5.7.1基礎數據查詢管理功能的實現 55
5.7.2運行數據查詢管理功能的實現 56
5.8本章小結 56
第6章系統測試 57
6.1軟件測試 57
6.2測試內容 58
6.2.1單元測試 58
6.2.2集成測試 59
6.2.3功能測試 61
6.3測試結論 64
6.4本章小結 64
第7章結論 65
7.1本文工作總結 65
7.2進一步工作展望 66
參考文獻 67
致謝 70
攻讀碩士學位期間參加的項目 71
參加的項目: 71
第1章引言
1.1項目背景
首鋼礦業公司電量平衡信息管理系統是礦業公司四大平臺之一,為礦業公司能源管 控提供重要的科學依據。隨著礦業公司整體信息化管理水平的不斷提高,各級管理部門 對信息化系統的要求也日益提高。原有功能單一、業務拓展性不強的信息化系統存在以 下缺點:
(1)系統功能、靈活性無法滿足要求。近年來,隨著廠礦組織機構變更以及相關業 務的調整,被固化了的設計模式無法適應使用者對系統的做出的調整或變更,為了滿足 管理者的要求,廠礦開發人員不得不做出大量的投入另辟解決方案。
(2)系統維護存在困難。因為系統本身的計算程序是被固化的,因此在每次岀現系 統異常后,廠礦開發人員都增加一套針對此項問題的解決方案,日積月累,直到系統在 出現異常后,根本無法判斷數據從哪來的、怎么來的、誰送來的,給系統維護、異常處 理、系統管理帶來很多困難。
(3)能源管理存在困難。隨著廠礦開發人員不斷增加、修改計算程序,造成數據來 源不清、“數出多門”的現象。造成廠礦系統一個數、公司電平衡又一個數的現象時有 發生。甚至出現一條數據頻繁變化的問題。給兩級管理部門的能源管理和分析帶來了很 多困難。
(4)能源數據利用率低。能源管理的最終目的就是起到節能降耗、降低成本的作用, 然而對節能降耗工作直接起到決定性作用的是我們基層的廣大職工,只有廣大職工的節 能降耗的意識得到提高,我們節能降耗工作才能確確實實的落到實處。因此,廠礦級電 平衡系統在為兩級能源管理部門提供科學依據的同時,更應該面向廣大職工,為廣大職 工提供科學的參考依據,這也是廠礦級與公司級的區別所在。
在這樣的背景下,加快廠礦和公司級電平衡系統的升級改造已成了必然的趨勢。
1.2系統的開發目的
能源管理的最終目的就是要起到節能降耗、降低成本的作用叫 而對節能降耗工作 直接起到決定性作用的是我們基層的廣大職工,只有廣大職工的節能降耗的意識得到提 高,我們節能降耗工作才能確確實實的落到實處。而原先粗放的管理模式,從一線職工 到管理人員,都無法把電表中的數字、設備電耗、不同時段的電耗費用與本單位的產量 進行有效的分析,更談不上工藝平衡和線路平衡,但是隨著信息化的發展,我們有條件 把這些工作納入到精細化管理的軌道上來,把經濟用電的思想固化到系統中去。因此,
東北大學碩士學位論文 第1章引 言 礦業公司電量平衡信息管理系統在為兩級能源管理部門提供科學依據的同時,更是面向 廣大職工,為廣大職工提供科學的參考依據。
企業的發展需要科技的創新,然而科技創新的無論怎么發展只是實現方式的不同而 己,最終目的永遠是為了更好的解決企業生產經營過程中的問題叫 因此本著這樣一個 目的,我們在大石河、球團廠電平衡項目的設計過程中重點從以下幾個方面進行了規劃 設計:
(1) 系統的穩定性。在管理層我們采用構建三層B/S模式的應用系統架構,有效提 高了系統的響應速度、容錯的能力和可擴展能力卩在數據層我們轉變思維方式,系統 所有需要計算的內容都是由數據庫自身來完成的,在頁面展示和數據傳遞過程中只完成 簡單的get和post過程,降低了系統異常的幾率,大幅度提高了系統的穩定性。
(2) 系統的靈活性。在保留歷史數據的基礎上,系統強大的配置管理使系統具有很 強的適應性和靈活性。其中包括組織機構維護、電表關系維護、工藝工序與電表和產量 的關系等靈活的系統配置。
(3) 數據的一致性。一方面在廠礦級系統中,做到“數出一門”。每一條數據都做 到只有一個源頭,無論橫向、縱向數據保持高度的統一,另一方面縮短了公司電平衡系 統與廠礦電平衡系統數據交互的時間,把時間控制在5分鐘左右。避免數據頻繁變化和 不一致。
(4) 系統的實用性。在系統基本功能的基礎上,增加了同類設備的對比分析功能、 不同歷史時段分析功能、不同班組不同時段的對比分析功能,有效的強化了廠礦級能源 管理水平。
1.3課題的提出
在確保系統穩定性和數據的準確性的基礎上,進一步對能源數據進行挖掘、分析、 加工和處理,在大量數據的基礎上,分析出各廠礦、各單體設備、各工藝流程在能耗方 面的差異,找出原因,提岀節能降耗的具體思路,為企業進一步的高端能源管理提供現 實的可能性。
(1) 通過強化能源數據分析,對不同生產時段、不同班次、不同設備之間的能耗 數據分析,以能源貨幣化和指標考核為手段,強化能源的管理和利用,有效的形成激勵 競爭機制,提高全員節能降耗的意識。
(2) 通過強化能源數據分析,使我們對于每個工藝、每道工序無論從縱向、橫向 還是整體上進行綜合性的評價分析,暴露能源利用的薄弱環節和工藝能源利用的最佳數 據,得出高能耗設備和低效率的客觀數據,為企業技改項目和工藝升級提供科學依據
(3) 強化數據的橫向比較,對相同工藝的能耗做具體比對。礦業公司各廠礦有很
多工藝是相同的,比如水廠鐵礦一選廠、二選廠,一磁、二磁等,它們具有很多參數的 可比較性,這也為系統的分析功能提供了基礎。
在此基礎上,我們加快了首鋼礦業公司電量平衡信息管理系統的開發工作,經過3 個多月的調研和業務梳理工作,很快進入了系統的搭建階段,并于2014年年初系統上 線試運行,經過幾個月的系統運行來看,已經達到了數據結算、業務分析和原始數據可 查的要求。
1.4國內外研究和應用現狀
目前,電量平衡管理及相關的通訊技術己經趨于成熟,但電量采集系統還存在諸多 問題,比如數據通信的可靠性、現場工作的穩定性、通信線路的成本問題、采集系統的 自動化程度水平,以及使用不同廠家、不同型號的電表時,系統的通用性和可適應性等。 這些問題要求生產電表的廠家嚴格按照要求的規范生產,并統一產品標準,使之具有相 同的基本功能,為電表自動采集系統的實際應用提供便利。目前系統主要應用于場站終 端,所以采用了本地通訊方式,若想進一步實現遠距離傳輸,可借助互聯網技術潼光纖 技術,以實現更大距離的電表自動采集,進一步拓展電量平衡系統的統計分析功盛和應 用范圍。
礦業公司電量平衡系統的軟件建模方法,運用UML中的5種圖對面向對象建模的方 法進行討論及技術研究,提岀如下建模過程:首先是系統需求;隨后分析問題領域,建立 系統的用例圖;接著,建立系統的靜態結構模型,并將系統的功能需求分解到各個對象類, 以確定各個對象類的責任;然后,建立系統的動態行為模型;最后,給出物理模型。通過實 例,對UML的面向對象建模機制做了系統概述,表明UML是一種優秀的建模語言,使用UML 有助于開發者對整個系統有清晰的認識,從而建立各種系統模型,為后期編碼工作做好 充分的前期準備。以統一建模語言UML為工具,完成了系統的需求模型、靜態模型和動 態模型的設計,最終實現了礦業公司電量平衡系統軟件的開發。
1.5論文結構安排
第1章首先簡單介紹電量平衡的信息化過程和項目的開發背景,然后據此提出課題, 介紹課題內容和課題的實現步驟,最后詳細給出論文結構安排。
第2章主要介紹了系統使用的相關技術,包括.NET開發框架、.NET服務技術、COM 組件技術和JQUERYEASYUI插件集合功能介紹。在介紹.NET服務技術時,從服務定 義、特點及其應用等方面展開;介紹COM組件技術時,主要從COM接口和COM運 行機制方面展開;介紹JQUERYEASYUI插件技術時,從JQUERYEASYUI插件主要特 點和實現過程等方面展開。
第3章主要介紹系統分析。首先介紹電量平衡信息管理系統的工作流程,由此得出 系統的具體功能。然后,從系統架構、開發工具、數據庫服務器和開發語言四個方面介 紹了系統的開發環境。然后,給出系統的數據流程圖,包括總體圖、零級圖以及各個模 塊的細節圖。最后給出本章小結。
第4章主要介紹系統的設計活動。首先介紹系統的總體設計,給出系統的整體功能 模塊圖,然后詳細介紹各個模塊的功能。然后,按照劃分好的模塊介紹系統的詳細設計。 首先給出各個模塊的功能模塊圖和功能設計,然后給出了系統的數據庫設計,包括對數 據庫設計知識的介紹、系統的部分E-R圖和部分數據庫表結構。最后,給出本章小結。
第5章主要介紹系統的實現部分。首先,介紹.NET月艮務的實現,這是系統實現的 基礎。然后,詳細介紹各個模塊的實現,給出各個模塊中重要部分的程序流程圖,并詳 細介紹系統中對關鍵技術的使用以及重要功能的實現,包括自動生成Word文檔、Excel 文檔等,最后給出本章小結。
第6章主要介紹了系統的測試部分,首先,對軟件系統測試進行簡單的介紹,然后 介紹了本系統的單元測試、集成測試、功能測試,并給出了一些測試用例和典型問題的 解決。最后,給出了測試結論,確定系統基本滿足了用戶需求。
第7章對本文工作進行了總結,并展望了進一步的研究工作。
第2章相關技術
2.1.NET開發框架
.NET開發框架主要包含以下幾個組成部分:首先是整個開發框架的基礎,即通用 語言運行時以及它所提供的一組基礎類庫⑸;在開發技術方面,.NET提供了全新的數據 庫訪問技術ADO.NET,以及網絡應用開發技術ASP.NET和Windows編程技Win Forms; 在開發語言方面,.NET提供了 VB、VC++、C#、Jscript等多種語言支持;而Visual Studio .NET則是全面支持.NET的開發工具。.Net Framework體系結構如圖2.1所示。
VB C# C++ Jscript C++
公共語言規范(CLS)
ASP.NET Windows Forms
ADO.NET XML
基類庫(Base Class Library)
公共語言進行時(CLR)
Windows Com+服務
圖 2.1 .NET Framework 體系結構
Fig. 2.1 The architecture of.NET framework
•NET提供的基礎類庫包括了從輸入輸出到數據訪問等各方面,為開發人員提供了 統一的面向對象的、層次化的、可擴展的編程接口。它使用一種點號分隔的方法,使得 查找和使用類庫非常容易同。跟傳統的Windows編程相比,使用和擴展基礎類庫都非常 容易,這使得開發者能夠高效、快速的構建應用程序。
2.2.NET服務的搭建與實現過程
什么是.Net Window服務,簡而言之,Windows服務應用程序是一種需要長期運行 的應用程序,它對于服務器環境特別適合⑺。它沒有用戶界面,并且也不會產生任何可 視輸出。任何用戶消息都會被寫進Windows事件日志。計算機啟動時,服務會自動開 始運行。它們不要用戶一定登錄才運行,它們能在包括這個系統內的任何用戶環境下運 行。通過服務控制管理器,Windows服務是可控的,可以終止、暫停及當需要時啟動。
Windows服務,以前的NT服務,都是被作為Windows NT操作系統的一部分引 進來的。它們在Windows 9x及Windows Me下沒有。你需要使用NT級別的操作系統 來運行 Windows 服務,諸如:Windows NT^ Windows 2000 Professional 或 Windows 2000 Servero 舉例而言,以 Windows 服務形式的產品有:Microsoft Exchange> SQL Server, 還有別的如設置計算機時鐘的Windows Time服務。
2.2.1.NET服務的創建
服務被啟動時會把一個條目信息登記到一個數據庫當中來指明這個服務己經啟動 To在服務運行期間,它會在指定的時間間隔內定期創建一個數據庫項目記錄。服務停 止時會創建最后一條數據庫記錄。這個服務會自動向Windows應用程序日志當中登記 下它成功啟動或停止時的記錄。
Visual Studio .NET能夠使創建一個Windows服務變成相當簡單的一件事情。啟動 我們的演示服務程序的說明概述如下:
(1)新建一個項目。
(2)從一個可用的項目模板列表當中選擇Windows服務。
(3)設計器會以設計模式打開。
(4)從工具箱的組件表當中拖動一個Timer對象到這個設計表面上(注意:要確 保是從組件列表而不是從Windows窗體列表當中使用Timer)。
(5)設置 Timer 屬性,Enabled 屬性為 False, Interval 屬性 30000 毫秒。
(6)切換到代碼視圖頁(按F7或在視圖菜單當中選擇代碼),然后為這個服務填加 功能。
2.2.2.NET服務的調試運行
由于服務必須從服務控制管理器的上下文中運行,而不是從VisualStudio.NET中 運行,因此調試服務不像調試其他Visual Studio應用程序類型那樣簡單。若要調試服 務,必須首先啟動服務,然后將一個調試器附加到正在運行服務的進程中。然后可以使 用Visual Studio的所有標準調試功能來調試應用程序。
除非知道進程是什么,并且知道附加到進程或可能會取消進程所帶來的后果,否則 不要附加到進程。例如,如果附加到WinLogon進程,然后停止調試,系統就會暫停, 因為沒有WinLogon,系統無法運行。
只能將調試器附加到正在運行的服務。附加進程會中斷服務的當前運行;它并不真 正終止或暫停服務的處理。也就是說,如果開始調試時服務正在運行,則在進行調試時, 該服務從技術上說仍處于“已啟動”狀態,但它的處理己掛起。
附加到服務的進程使您能夠調試大多數服務代碼,但并非全部;例如,由于服務已 經啟動,因此不能用這種方法調試服務的OnStart方法中的代碼,或調試用于加載服務 的Main方法中的代碼。解決此問題的一個方法是:在唯一作用是幫助調試的服務應用 程序中創建一個臨時服務。可以將兩個服務都安裝上,然后啟動此“虛擬”服務加載服務 進程。臨時服務啟動了進程后,就可以使用VisualStudio.NET中的“調試”菜單來附加 到服務進程。
當附加該進程之后,可以設置斷點并使用這些斷點來調試代碼。當退出用于附加到 該進程的對話框時,實際上已處于調試模式。您可以使用服務控制管理器開始、停止、 暫停和繼續您的服務,因此命中已設置的斷點。調試成功后,移除此“虛擬”服務。
調試OnStart方法可能比較困難,因為Windows服務管理器將所有嘗試啟動服務 的時間限制在30秒內。當調試Windows服務應用程序時,服務與“Windows服務管 理器”進行交互。“服務管理器”通過調用OnStart方法啟動服務,然后花30秒時間等 待OnStart方法返回。如果在這段時間內方法沒有返回,管理器將顯示一個服務無法啟 動的錯誤。如果在OnStart方法中放置一個斷點并且在30秒內不通過該斷點,則管理 器不會啟動服務。
2.3 COM組件技術
COM(Component Object Model,組件對象模型)是一種以組件為發布單元的對象模 型,它使各軟件組件可以用一種統一的方式進行交互。對于使用組件的集成開發者顧言, 一個組件就是一個接口集,只有通過接口才能與組件進行通信;而對于組件來說,誰口 是包含一個函數指針數組的內存結構,每個數組元素的內容是一個由組件所實現的函數 地址同。在一個應用程序中,起決定作用的是組件的接口而不是組件本身。只要組件的 接口保持不變,組件可以任意升級或更換,而應用程序不必做任何修改。接口將特定的 行為封裝起來,一方面使客戶可以用同樣的方式處理不同組件,一方面同一組件可以在 不同的應用中使用。這些特點決定了組件必然有很好的重用性[% f
2.3.1COM 接 口
在COM中,COM對象僅能通過接口與外界交往,接口定義了一組成員函數,這 組成員函數是組件對象暴露出來的所有信息,客戶程序利用這些函數獲得組件對象的服 務。COM將接口定義和接口實現分離開來,COM接口定義不依賴于任何編程語言,它 采用COM規范的接口描述語言(Interface Description Language, IDL)來進行接口定義,這 也是COM的語言無關性的體現【⑼。
根據COM規范,所有的接口都必須從IUnknown繼承,其原因在于IUnknown接 供了兩個非常重要的特性:生存期控制和接口查詢。如果客戶程序需要對COM對象進 行操作,則它必須保證該對象一直存在于內存中;如果客戶對對象的操作已經完成,以 后也不再需要該對象了,則它必須及時地把該對象釋放掉,以提高資源的利用率。 IUnknown采用了"引用計數(reference counting)"方法,可以有效地控制對象的生存周 期。另一方面,如果一個COM對象實現了多個接口,在初始時刻,客戶程序不可能得 到該對象所有的接口指針,IUnknown通過"接口查詢(Queryinterface)"的方法來完成接口 之間的跳轉。
“引用計數”的實現原理為:每一個COM對象都記錄了一個稱為“引用計數”的數值, 該數值的含義為有多少個有效指針在引用該COM對象。當客戶得到了一個指向該對象 的接口指針時,調用Addref函數使引用計數增1;當客戶用完了該接口指針后,調用 Release函數使引用計數減1。當引用計數減到0時,COM對象就把自己從內存中清除 掉
2.3.2COM運彳亍機制
COM是基于客戶/服務器模型的。COM客戶程序是任何獲得指向COM服務器指 針的代碼或對象,它通過調用接口方法使用服務器的服務。COM服務器駐留一個或多 個組件提供服務,這些服務均以COM接口實現的形式出現,主要有兩類服務器:進程 內和進程外服務器。
在進程內服務器中,客戶程序和組件處于同一個進程內,共享同樣的地址空間,組 件的代碼用動態鏈接庫@11)形式實現;在進程外服務器中,客戶程序和組件各自擁有自 己的進程空間,不共享進程地址,組件的代碼以可執行程序(exe)的形式實現,進程外服 務器可以在本機機器上也可以在遠程機器上(當在遠程機器上時使用的為分布式COM, 即DCOM技術)。
進程內模型的優點是效率高,但組件不穩定會引起客戶進程崩潰,因此組件可能會 危及客戶;進程外模型的優點是穩定性好,組件進程不會危及客戶程序,一個組件進程 可以為多個客戶進程提供服務,但進程外組件開銷大,而且調用效率相對低一些〔⑵。
雖然COM對象有不同的進程模型,但這種區別對于客戶程序來說是透明的,實現 這種透明性的關鍵在于COM庫,COM庫負責組件程序的定位,管理組件對象的創建 和對象與客戶之間的通信。當客戶創建組件對象時,COM庫負責裝入組件模塊或者啟 動組件進程,如果客戶指定在遠程機器上創建對象,則兩臺機器上的COM庫會協作完 成遠程COM對象的創建工作,并且在客戶進程中創建一個代理對象,客戶程序直接與 代理對象進行交互。因此,客戶程序可以不管組件對象的進程模型,即使組件對象的進 程模型發生了變化,客戶程序也不需要重新編譯
當組件程序被安裝到機器上之后,必須把它的信息注冊到注冊表中。進程內組件注 冊對于Windows系統可通過系統附帶的工具RegSvr32.exe或其它安裝程序來進行,進 程外組件的注冊可通過調用組件程序自身的命令行參數/RegServer來迸行。
2.4 JQueryEasyUI插件集合功能介紹
JQuery是由John Resig在2006年創建的javascript框架,將其命名為JQuery,意 在強調其查找或''查詢"網頁元素,并通過javascript操作這些元素的核心用途,JQuery 借鑒了 Html和Css結構中的很多優點,采用了一致性和對稱性的設計原則【⑷。
JQuery憑借簡介的語法和跨平臺的兼容性,極大簡化了腳本開發人員遍歷Html文 檔、操作D0M、處理時間、執行動畫和開發Ajax的操作[⑸。短短幾年間,Jquery作為 一個正在開源的項目,己經擁有了足以傲視群雄的、由頂尖javascript開發人員組成的 核心團隊,以及一個數千萬開發人員組成的活躍社區,并被因特網上一些有名的站點廣 泛采用。
2.4.1JQueryEasyUI 主要特點
jQuery EasyUI是一組基于jQuery的UI插件集合體,而jQuery EasyUI的目標就是 幫助web開發者更輕松的打造出功能豐富并且美觀的UI界面。開發者不需要編寫復雜 的javascript,也不需要對css樣式有深入的了解,開發者需要了解的只有一些簡單映ml 標簽,它的特點主要體現在以下幾個方面: 躋
(1)簡潔且功能強大。只需要簡單的一行或幾行代碼,jQueiy就可以實現傳統 JavaScript中需要多行代碼才能實現的功能,并且代碼非常易懂,即使缺少注釋也能基 本理解,并且jQuery將方法設計面向集合的,結合隱式迭代技術,使得當對取得的某一 個類的全部元素操作時,不需要循環遍歷每一個返回的元素,極大的提高了開發效率。
jQuery對Ajax操作進行了封裝,提供了一些日常開發中需要的快捷操作,例如奮ad、 ajax, get和post等等,這樣開發人員就可以將程序集中在業務和用戶的體驗上,而不 需要理會繁雜的XMLHttpRequest對象和兼容性問題。
在jQuery中$.審缺()方法屬于最底層的方法,功能最豐富,有很多的配置參數,通 常用來進行底層的Ajax開發;第二層是load。、$.get()和$』(^()方法,這三個方法在現 實應用中使用頻率很高;第三層是$.getScript()和$矽處0!1()方法,它們是針對某種特定 類型的數據進行Ajax開發。
(2)架構美觀。jQuery是基于前段分層的思想進行設計,因此,使用jQuery可 以輕松的將結構與行為分離,以介紹D0M時使用的前端代碼為例,HTTML代碼定義 了頁面的結構,而不存在任何的交互邏輯,元素的行為都在腳本文件textjs中進行定義。
$ (document).ready(function(){
$ ("p").click(fimction(){
Alert(“點擊我! ”);
});
});
在頁面加載時,為段落“Hello World!"添加了一個點擊行為,當段落被點擊時, 會彈出警告框提示“點擊我!”通過一個簡單的ready函數,就將交互行為的定義都放 置在獨立的腳本文件中,實現了結構和行為的分離。
(3)可擴展性強。與其他一些javascript庫不同,jQuery并不單純是一個javascript 工具集,它是一整套成型的javascript解決方案。基于jQuery的核心庫,可以搭建自己 的javascript應用框架或者開發插件,并且jQuery提供了完備的API,使開發者可以輕 松構建自己的個性化模塊。
2.4.2JqueryEasyUI 常見問題
(1)post方法傳遞參數問題。大家在使用post方法過程時,向后臺傳遞參數的過 程,盡量避免將參數以字符串拼接的方式寫在url中,而是盡量以對象的方式傳遞到后 臺;用字符拼接url的方式傳遞參數,容易產生的問題是,頁面本地調試過程中沒有問 題,項目發布后,點擊保存時沒有任何反應。
var changeRows= J S ON. stringify (changesRows);
$.post('../ashx/Geology/GeoWinzeGradeHandler.ashx?action=save&changeRows=" + changeRows
,function^ sonResult) {
$.dealAjaxResult(jsonResult, function(jsonResult) {
$.show_waming_inframe(jsonResult.Msg, 'success');
});
});
推薦以對象的方式傳遞,好處:1•避免中文亂碼2•避免字符串長度不夠,建議按照 這樣方法實^1。
$.post('../ashx/Geology/GeoWinzeGradeHandler.ashx?action=save"
,{ changeRows: changeRows }
,function(j sonResult) {
$.dealAjaxResult(jsonResult, function(jsonResult) { $.show_waming_inframe(jsonResult.Msg, 'success');
});
});
(2)行編輯中下拉框不顯示描述,而顯示id的問題。可編輯表格中,如果有下拉 框字段,比如“科目“,編輯完一行后,需要顯示科目名稱,而不是科目id,此時需要 注意兩個地方;
1)科目字段的列屬性中添加formattero
fonnatter: function(value, row) return row. SubjectDes; }
大家在使用過程中,往往只注意到這一個地方,導致問題依舊;還需要注意的一個 地方就是endEditing()方法;同樣需要一次顯示描述的操作;
2)在endEditing()方法中添加代碼。
var SubjectID = $('#grid').datagrid('getEditor', {index: editindex, field: 'SubjectID'});
var SubjectDes = $(SubjectID.target).combobox('getText'); $('#grid,).datagrid('getRows')[editIndex] ['SubjectDes'] = SubjectDes。
2.5本章小結
本章主要介紹了系統中使用的關鍵技術。首先介紹了.NET開發框架,然后介紹 了.NET服務技術,其中主要介紹了.NET服務創建、調試運行方式,然后介紹了 ©DM 組件技術,包括COM接口和COM運行機制。
下一章中將詳細介紹了系統分析。
第3章系統分析
首鋼礦業公司電量平衡信息管理系統主要是通過各廠礦電表自動取數,依據各電表 表底數,計算出各電表按小時、班、日、月的耗電值,電費在尖、峰、平、谷不同時段 的費用不同,與產量進行比較分析,從而做到供電系統的單位平衡、線路平衡和工藝平 衡。系統的設計過程中,在管理層采用構建三層B/S模式的應用系統架構,有效提高了 系統的響應速度、容錯能力和可擴展能力;在數據層系統所有需要計算的內容都是由數 據庫自身來完成的,在頁面展示和數據傳遞過程中只完成簡單的get和post過程,降低 了系統異常的幾率,大幅度提高了系統的穩定性。
在實現了系統基本功能的前提下,增加了同類設備的對比分析功能、不同歷史時段 分析功能、不同班組不同時段的對比分析功能,有效的強化了廠礦級能源管理水平。同 時在廠礦級,做到“數出一門”,每一條數據都做到只有一個源頭,無論橫向、縱向數 據保持高度的統一,縮短了礦業公司電量平衡信息管理系統與廠礦電平衡系統數據変互 的時間,把時間控制在5分鐘左右,避免數據頻繁變化和不一致。通過強能源數據分 析,對不同生產時段、不同班次、不同設備和不同工藝之間的能耗進行數據分析,以能 源貨幣化和指標考核為手段,強化能源的管理和利用,有效的形成激勵競爭機制,提高 全員節能降耗的意識。通過強化能源數據分析,對于每個工藝、每道工序無論從縱向、 橫向還是整體上進行綜合性的評價分析,暴露能源利用的薄弱環節和工藝能源利用的最 佳數據,得出高能耗設備和低效率的客觀數據,為企業技改項目和工藝升級提供科學依
3.1業務流程
3.1.1電量平衡信息管理系統業務流程
礦業公司的電表分機械表和電子表兩種,機械表數據是人工抄錄,每8小時,也就 是1班抄一個表底,錄入系統,這部分表較少,大部分是電子表,這部分表由廠家負責 安裝和調試,數據直接存儲到工控機里面,我們只需要做一個服務程序,把表底數從工 控機里面的二級數據庫取出,換算成電表電量即可,每塊電子表每小時出一個數,這些 數據就是整個系統的最基礎數據,也是最多的數據,包括小時量、班量、日量和月量等, 通過尖峰平谷不同時期電費單價不同,算出每塊表的電費。
礦業公司三級MES系統內,是礦業公司上線較早的生產制造執行系統,各單位、各 系列、各工藝和各生產設備的產量數據均能在MES系統內統計查出,根據查詢岀的產量 基礎數據,采用存儲過程的方式,計算出小時產量、班產量、日產量和月產量等數據, 為單位平衡、工藝平衡做基礎數據。
依據存儲過程中電量計算出的小時量,該小時所在尖峰平谷等不同時間段的電費標 準,編寫存儲過程,計算出該小時的電費情況存入數據庫表,累計出每塊電表的月底結 算量,依據電表和單位關系,生成各單位的結算單,并按月打印結算單。
總體說來,電量平衡信息管理系統工作分為以下幾步:
(1)電量計算。表底數據的傳輸采用.Net服務的形式,服務每隔5分鐘運行一次, 將工控服務器數據傳輸到礦業公司數據庫服務器。系統最后一次采集表底的時間是整點 后的第55分,如果某塊表的表底仍然沒有采集上來,系統默認該塊表表底缺失,針對 表底缺失的情況,系統選擇該表最近一個小時的小時量,加上最近一個小時的表底,作 為該小時的表底,進行表底數據的自動補錄,所有自動補錄的表底數據均可以進行手工 修改。表底數據傳輸到礦業公司數據庫服務器后,按照規則采用存儲過程等方式進行小 時、班、日、月的計算,分別存入小時表、班表、日表及月表。電量計算的流程圖如圖 3.1所示。
圖3.1電量計算的流程圖
Fig. 3.1 Flow chart of the electricity calculation
(2)產量計算。礦業公司三級MES系統內,有產量的基礎數據,采用存儲過程的 方式,計算出小時產量、班產量、日產量和月產量等數據,為單位平衡、工藝平衡做基 礎數據。產量計算的流程圖如圖3. 2所示。
圖3.2產量計算的流程圖
Fig. 3.2 Flow chart of production calculation
(3)電量結算。依據電量計算出的小時量,該小時所在尖峰平谷等不同時間段的
電費標準,編寫存儲過程,計算出該小時的電費情況存入數據庫表,累計出每塊電表的
月底結算量,依據電表和單位關系,生成各單位的結算單。
(4)結算單打印。依據電量結算產生的結算單,按月打印存檔。
通過對首鋼礦業公司電量平衡信息管理系統業務流程介紹可以看出,電量結算功能 不但涉及電量計算信息的管理,還涉及產量信息、業務配置等信息的管理。
3.1.2業務配置管理流程
業務配置管理是電量平衡信息管理系統的另一項重要業務。總體說來,業務配置管 理工作分為以下幾步:
(1) 電表關系維護。配置聯網或未聯網電表與工藝、設備、單位、線路的進出口 關系,用于相應的工藝平衡、單位平衡、峰谷管理、線路平衡的計算。
(2) 工序設備關系維護。配置工序設備與工藝、單位的連接關系,用于工藝平衡、 峰谷管理中左側樹型關系的顯示。
(3) 結算電表出口關系維護。配置聯網或未聯網電表與出口電表的關系,用于電 量結算等的計算查詢。
(4) 產量關系維護。配置各單位產量與工藝、設備、單位的關系,用于相應的工 藝平衡、單位平衡、峰谷管理的計算。
(5)姓名與IP地址關系維護。配置訪問系統的用戶姓名與對應計算機IP地址的 關系,用于登錄統計等的計算查詢。
3.2系統實現的總體目標
根據電表基本信息管理和電量信息管理的需要,系統需要包括以下性能要求:
(1) 數據庫記錄的及時更新和準確更新。電量平衡信息管理系統中,電量的計算 是一個復雜的過程,首先要通過表底計算出小時量,通過小時量的累計計算出班量、日 量和月量,電量的計算需要通過存儲過程來實現,要求在計算的過程中,小時量、班量、 日量和月量的累計計算不能出現錯誤。在表底基本信息管理模塊等,如果用戶不小心錄 錯信息,還需要刪除錯誤記錄。數據庫記錄的增加、刪除、修改、查詢功能是必不可少 的,也是十分重要的。
(2) 根據數據庫記錄生成報表、Word文檔和Excel文檔。一般情況下,客戶提 供的結算單是Word文檔形式,所以系統也應該盡可能把對應的結算記錄轉化成文檔形 式提供給客戶。這樣,既方便了客戶查閱,也方便了結算管理員對結算信息的管理。有 的客戶要結算管理員結算完畢后導出結算明細,方便查看結算的點位名稱和對應的費 用,一般都要求是Excel格式。
水晶報表(Crystal Report)是業內最專業、功能最強的報表系統,它除了具有強大的 報表功能外,最大的優勢是實現了與絕大多數流行開發工具的集成和接口。根據數據庫 記錄記錄生成水晶報表后,不但數據顯示清晰明了,而且窗體美觀大方。
自動生成Word文檔、Excel文檔功能是辦公自動化系統中的重要組成部分,而 Word、Excel提供的強大的編程接口技術使得利用各種編程工具通過程序對其控制成為 可能化
(3) 數據的穩定性。電表表底數據進入數據庫,采用的是服務程序的方式,從自 動化庫中采集到電量平衡系統中去,要求系統的軟硬件設計合理,運行正常,網絡人員 操作規范,管理嚴密,整個網絡系統能夠按照設定的要求正常運轉,發揮預定的各項功 能。我們對于服務啟動、運行、關閉的各個環節可能出現的不穩定因素要給予充分的考 慮,以確保不影響電量平衡系統的數據采集的需要。
(4) 權限控制。登錄到系統后,不同用戶身份具有不同的權限。例如結算管理員 有普通用戶只具有查詢結算信息、電量價格信息和點位信息的權利等,只有業務部部長 具有審核結算單的權限。如果業務部長岀差,需要把審核結算單的權限授權給有資格審 核結算單的其他用戶。
(5) 系統的安全性。電量平衡信息管理系統要求能夠追溯到5年以上的數據,因 此系統中數據量級別在百萬條以上,數據的安全性就顯得尤為重要,不允許數據的泄漏
和丟失。為了數據的這些安全性,我們采取用戶權限等級管理,不同權限的用戶登錄系 統看到不同的模塊,不同部門的用戶只能修改本部門的數據,以保證其他部門數據的安 全性。另外,系統不僅提供了完備的系統日志記錄功能,而且對電子文件再歸檔過程中 的責任鏈信息進行詳細記錄。
(6) 系統的易用性和以維護性。電量平衡管理系統是直接面對使用人員的,而使 用人員操作電腦的熟練程度不同,這就要求系統能夠提供良好的用戶接口,便捷的人機 交互界面,方便不同層次的人群使用。實現這一點,要求系統盡量使用用戶熟悉的術語 和中文信息的界面,同時針對用戶可能出現的使用問題,提供足夠的在線幫助,縮短用 戶對系統熟悉的過程。
電量平衡信息管理系統中涉及到的數據是非常重要的信息,系統要提供方便的手段 供系統維護人員進行數據備份,日常的安全管理,系統意外崩潰時的數據恢復等工作。
(7) 遠程文件管理。現行系統中,電量平衡信息管理系統的結算單和結算明細都 保存在本地計算機中,管理和使用特別不方便,不能達到文件資源的充分共享和有效利 用。使用遠程文件管理功能后,結算單和結算明細都可以保存在服務器上,只要需舉, 隨時可以從服務器進行下載查看。這不僅減輕了報價員的負擔,同時也對文件的方屆查 找,大大提高了工作效率。
3.3系統數據流程
任何數據處理系統的基本功能,都是把輸入轉變成需要的輸出信息。數據決定了處 理的方式,也就是算法;數據顯然是系統實現分析的起點。在數據流圖分析中,一賽最 常用的方法就是結構化分析方法(簡稱SA方法),SA方法是面向數據流、自頂向下、逐 步求精進行需求分析的方法。為了細化數據流程圖,通常從數據流圖的輸出端著手分析, 因為系統的目標是產生這些輸出,輸出數據確定了系統必須具有的最基本的組成元素。
在數據流程圖的各個層次中,有的層次展示的是外部實體和系統的關系,而有的層 次表示的是系統的核心處理功能,還有的層次展示的是系統的處理細節。為了區分這些 描述系統不同特征的層次,數據流程圖分為三個類型的層次,分別是總體圖、零級圖和 細節圖Bl。
數據流圖的基本符號的意思:
(1) 矩形表示數據的外部實體,代表系統之外的實體,可以是人、物或其他軟件 系統。
(2) 圓角的矩形表示變換數據的處理邏輯,加工是對數據進行處理的單元,它接 收一定的數據輸入,對其進行處理,并產生輸出。
(3)右面的邊矩形表示數據的存儲,表示信息的靜態存儲,可以代表文件、文件 的一部分、數據庫的元素等。
(4)箭頭表示數據流,數據流是數據在系統內傳播的路徑,因此由一組成分固定 的數據組成。由于數據流是流動中的數據,所以必須有流向。
本系統的需要維護的主要信息有:電表基本信息、電量價格信息、用戶信息、電表 更換信息、電表表底信息、電表電量信息、電量結算信息等。
系統的總體圖描述了系統和周圍環境的關系。總體圖僅僅由一個處理節點和它周圍 的外部實體組成。外部實體既可以是一個人員角色或者一個部門,也可以是一個計算機 系統。總體圖上標明的數據流為系統間的共享數據。
本系統的總體數據流圖如圖3.3所示。
圖3.3系統總體數據流圖
Fig. 3.3 Overall data flow diagram of system
從圖3.3中可以看出,與計量器具檢測報價劃價系統進行交互的角色包括普通用戶、 關鍵用戶、結算員、單位主管和數據采集系統等。這里面值得一提的是,首鋼礦業公司 電量平衡管理信息系統并不是孤立的,需要和其它子系統進行交互。如圖3.3所示,本 系統需要電子表數據采集系統,把采集到的電表表底按小時送入到電量平衡信息管理系 統中去。
總體數據流圖反映了電量平衡信息管理系統總體的數據流向,但是并不能清楚地表 達系統內部的數據處理過程的細節,需要進一步的細化。零級圖表示一個系統的主要功 能或一個大型系統的主要組成子系統,它的作用是提供一個總攬全局的視圖模型。處理 節點的編號由1開始標識,但編號不表示處理的順序。處理節點數量應本著“少則拆, 多則合”的原則。
如前所述,本系統包括電表基本信息管理、電量價格信息管理、用戶信息管理、電 表更換信息管理、電表表底信息管理、電表電量信息管理、電量結算信息管理等功能。 系統的零級數據流圖如圖3.4所示。
圖3.4系統零級數據流圖
Fig. 3.4 Data flow diagram of system at zero level
細節圖標識一個復雜處理的詳細流程的內部標識。它僅由處理節點和數據存儲翰點 組成。那么,究竟細化到什么程度時,可以結束數據流程圖的分解過程呢?下面有兩個 經驗規則可以遵循:
(1) 當處理的圓圈有單一的數據流輸入或者單一的數據流輸出時,停止分解該處 理;
(2) 當最低級的處理圓圈執行單一的、很好定義的功能時,即停止分解該處理。
電表基本信息模塊主要包括新增電表基本信息、修改電表基本信息和查詢電表基本
信息功能。
電表基本信息管理的細節圖如圖3.5所示。
Fig. 3.5 Data flow diagram of electricity meter information
如圖3.5所示,如果是新增電表信息,則需要使用新增電表信息功能,把電表信息 信息保存數據庫中,形成對應的電表信息記錄;如果電表信息有所改變,則需要使用修 改電表信息功能。
電量信息管理是電量平衡信息管理系統的一項重要業務,主要包括電子表表底采 集、電子表表底補錄、機械表表底錄入、修改電表表底、刪除電表表底和查詢電表表底 功能。該部分涉及的信息較多,包括依據電表表底計算小時電量、班電量、日電量和月 電量信息等。
電量信息管理的細節圖如圖3.6所示。
圖3.6電量信息管理細節圖
Fig. 3.6 Data flow diagram of The management of power information
如圖3.6所示,聯網電表表底采集進入數據庫,采用服務的形式實現的,未聯網電 表表底按月進行人工采集,錄入到數據庫中,當服務異常停止作業時,或者人工抄數出 現錯誤時,都需要進行人工維護表底。
業務配置信息管理是本系統中的另一個重要部分,主要包括配置單位與電表關系、 配置工藝與電表關系、配置線路與電表關系等功能。該部分涉及的主要信息有單位與電 表關系管理的增加單位與電表關系、修改單位與電表關系和查詢單位與電表關系;增加 工藝與電表關系、修改工藝與電表關系和查詢工藝與電表關系;增加線路與電表關系、 修改線路與電表關系和查詢線路與電表關系等。
業務配置信息管理的細節圖如圖3.7所示。
圖3.7業務配置信息細節圖
Fig. 3.7 Data flow diagram of service configuration
如圖3.7所示,業務配置分單位、工藝和線路進行配置,主要是為按單位進行結算, 按工藝和線路進行平衡提供依據。
結算信息主要包括生成結算單和結算單打印功能。結算信息細節圖如圖3.8所示。
圖3.8結算信息細節圖
Fig. 3.8 Data flow diagram of settle accounts information
如圖3.8所示,結算員生成結算單時,首先依據單位與電表關系,生成每個單位的 結算量,如果需要調整,則需要輸入相應的調整量,否則直接生成,當全部單位的結算 量對應無誤后,即可生成當月的電量結算單。結算單生成后,主管領導可以查詢當月的 結算信息,包括各單位各點位的明細信息。
電量平衡信息管理是本系統中的另一個重要內容,主要包括單位平衡信息管理、工 藝平衡信息管理和線路平衡信息管理等功能。該部分涉及的主要信息有單位電量平衡分
析、單位電量平衡歷史分析;工藝電量平衡分析、工藝電量平衡歷史分析;一級線路平 衡信息、二級線路平衡信息和三級線路平衡信息等。
電量平衡信息管理的細節圖如圖3.9所示。
圖3.9電量平衡信息管理細節圖
Fig. 3.9 Data flow diagram of energy balance information management
如圖3.9所示,進行電量信息平衡分析時,一定按照單位與電表關系、工藝與電表 關系和線路與電表關系展開。
統計査詢信息管理主要包括基礎數據查詢管理和運行數據查詢管理等需要統計查 詢的信息。主要是對前期完成的業務數據進行統計查詢。系統采集的各類數據,需要分 類匯總,并按照各種查詢條件顯示出來,同時為了方便理解,配合折線圖、餅狀圖等圖 表展示出來。統計查詢信息管理細節圖如圖3.10所示。
圖3.10統計查詢信息管理細節圖
Fig. 3.10 Data flow diagram of statistical query information management
3.4系統開發環境
綜合了系統對功能、性能方面的需求,本系統采用.NETFramework技術實現分布式 通信,使用B/S三層架構,使用Microsoft Visual Studio 2008作為開發工具,使用SQL 2008 數據庫服務器,使用C#語言開發。下面從系統架構、開發工具、數據庫服務器、開發 語言方面詳細介紹。
3.4.1系統架構
在系統架構上,采用了三層B/S架構,也就是瀏覽器/服務器模式,是WEB興起后 的一種網絡結構模式,WEB瀏覽器是客戶端最主要的應用軟件〔岡。這種模式統一了客 戶端,將系統功能實現的核心部分集中到服務器上,簡化了系統的開發、維護和使用。 客戶機上只要安裝一個瀏覽器,如Netscape Navigator或Internet Explorer,服務器安裝 SQL Server, Oracle、MYSQL等數據庫。瀏覽器通過Web Server同數據庫進行數據交 互。三層B/S結構是將應用功能分成表示層、功能層和數據層三部分。其解決方案是對 這三層進行明確分割,并在邏輯上使其獨立。原來的數據層作為DBMS已經獨立出來, 所以關鍵是要將表示層和功能層分離成各自獨立的程序,并且還要使這兩層間的接口簡 潔明了。
三層B/S結構的各層功能如下:
(1)表示層是應用的用戶接口部分,它擔負著用戶與應用間的對話功能。它用于 檢查用戶從鍵盤等輸入的數據,顯示應用輸岀的數據。為使用戶能直觀地進行操作,—— 般要使用圖形用戶接口(GUI),操作簡單、易學易用。在變更用戶接口時,只需改寫顯 示控制和數據檢查程序,而不影響其他兩層。檢査的內容也只限于數據的形式和值的范 圍,不包括有關業務本身的處理邏輯。
(2)功能層相當于應用的本體,它是將具體的業務處理邏輯地編入程序中。衰示 層和功能層之間的數據交往要盡可能簡潔。在應用設計中,一定要避免“進行一次準務 處理,在表示層和功能層間進行多幾次數據交換”的笨拙設計。通常,在功能層中包含有: 確認用戶對應用和數據庫存取權限的功能以及記錄系統處理日志的功能。
(3)數據層就是DBMS,負責管理對數據庫數據的讀寫。DBMS必須能迅速執行 大量數據的更新和檢索。現在的主流是關系數據庫管理系統。因此,一般從功能層傳送到 數據層的要求大都使用SQL語言。
3.4.2開發工具
Microsoft Visual Studio 2008提供了支持整個軟件開發團隊的工具:
(1)Visual Studio 2008包括集成、高效的工具,用于直觀地構建面向服務的解決 方案,這些解決方案從部署環境的初始狀態開始設計。
(2)Visual Studio2008為開發人員提供高級的靜態分析、代碼剖析、代碼涵蓋以 及單元測試工具,使團隊能夠在整個生命周期中盡早、頻繁地規劃質量。
(3) Visual Studio 2008構建于開發人員版本之上,更好地為測試人員提供了用于 管理和運行各種測試(包括單元測試、手工測試和Web測試)的工具,以及使團隊能夠 在應用程序部署之前檢驗其性能的高級負載測試工具【切。
(4) Visual Studio 2008提供一套基于軟件項目管理人員已知內容的項目管理工 具:Microsoft Excel、Microsoft Project 和 Windows SharePoint Serviceso 與 Microsoft Office集成,項目管理人員不再需要手工將數據從這些應用程序映射到供工程團隊使用 的數據。項目站點提供儀表盤式的項目狀態視圖。
(5) Visual Studio 2008還提供團隊協作工具,使組織能夠不費吹灰之力即可管理 并跟蹤過程和軟件項目的運行狀況。
3.4.3數據庫服務器
數據庫(DataBase,簡稱為DB)是依照某種數據模型組織起來并存放在二級存儲 器中的數據集合。這種數據集合具有如下特點:盡可能不重復,以最優方式為某個特定 組織的多種應用服務,其數據結構獨立于使用它的應用程序,對數據的增、刪、改、查 由統一軟件進行管理和控制。
SQL Server是一個關系數據庫管理系統,以Transact-SQL (簡稱為T-SQL)作為它 的數據庫查詢和編程語言。T-SQL是結構化查詢語言SQL的一種,支持ANSI SQL-92 標準。
SQLServer采用二級安全驗證、登錄驗證及數據庫用戶賬號和角色的許可驗證。SQL Server支持兩種身份驗證模式:Windows身份驗證和SQL Server身份驗證。從SQL Server 7.0版本開始支持多種類型的角色,“角色”概念的引入方便了權限的管理,也使權限 的分配變得更加靈活。
T-SQL是SQL Server的核心,它強化了原有的SQL關鍵字以進行數據的存取、儲 存及處理等功能,T-SQL擴充了流程控制指令,可以使用戶方便地編寫功能強大的存儲 過程,它們存放在服務器端,并預先通過編譯,執行的速度非常快。觸發是一種特殊的 存儲過程,用來確保SQL Server數據庫引用的完整性,用戶可以建立插入、刪除和更新 觸發以控制相關的表格中對數據列的插入、刪除和更新,用戶還可以使用規則(Rule)、 缺省(default)以及限制(Constraints),來協助將新的數值套用到表格中去
(1)SQL數據庫服務器
SQLServer是一個對象一關系數據庫管理系統。它提供開放的、全面的、和集成的 信息管理方法。每個Server由一個SQL DB和一個SQL Server實例組成。每個SQL數 據庫對應唯一的一個實例名SID, SQL數據庫服務器啟動后,一般至少有以下幾個用戶: Internal,它不是一個真實的用戶名,而是具有SYSDBA優先級的Sys用戶的別名,它 由DBA用戶使用來完成數據庫的管理任務,包括啟動和關閉數據庫;Sys,它是一個 DBA用戶名,具有最大的數據庫操作權限;System,它也是一個DBA用戶名,權限僅 次于Sys用戶。
(2)客戶端
客戶端為數據庫用戶操作端,由應用、工具、SQL* NET組成,用戶操作數據庫時, 必須連接到一服務器,該數據庫稱為本地數據庫。在網絡環境下其它服務器上的數據庫 稱為遠程數據庫。用戶要存取遠程數據庫上的數據時,必須建立數據庫連接。
SQL由至少一個表空間和數據庫模式對象組成。這里,模式是對象的集合,而模式 對象是直接引用數據庫數據的邏輯結構。模式對象包括這樣一些結構:表、視圖、序列、 存儲過程、同義詞、索引、簇和數據庫鏈等。邏輯存儲結構包括表空間、段和范圍,用 于描述怎樣使用數據庫的物理空間。而其中的模式對象和關系形成了數據庫的關系設 計。
3.4.4開發語言
作為一種面向對象的語言,C#支持封裝、繼承和多態性概念。所有的變量和方淞, 包括Main方法(應用程序的入口點),都封裝在類定義中。類可能直接從一個父類繼承, 但它可以實現任意數量的接口。重寫父類中的虛方法的各種方法要求override關鍵字作 為一種避免意外重定義的方式。在C#中,結構類似于一個輕量類;它是一種堆棧分配 的類型,可以實現接口,但不支持繼承【2°】。 '
除了這些基本的面向對象的原理,C#還通過幾種創新的語言結構加快了軟件組傑的 開發,其中包括:
(1)封裝的方法簽名(稱為委托),它實現了類型安全的事件通知。
(2)屬性(Property),充當私有成員變量的訪問器。
(3)屬性(Attribute),提供關于運行時類型的聲明性元數據。
(4)內聯XML文檔注釋。
在C#中,如果需要與其他Windows軟件(如COM對象或本機Win32 DLL)交互, 可以通過一個稱為“Interop”的過程來實現。互操作使C#程序能夠完成本機C++應用程序 可以完成的幾乎任何任務。在直接內存訪問必不可少的情況下,C#甚至支持指針和“不 安全”代碼的概念0]。
C#的生成過程比C和C++簡單,比Java更為靈活。沒有單獨的頭文件,也不要求 按照特定順序聲明方法和類型。C#源文件可以定義任意數量的類、結構、接口和事件。
3.5本章小結
本章從功能的角度對系統進行了詳細分析。首先,通過介紹報價業務流程,分析了 系統需要實現的具體功能,然后介紹了.NET開發框架和.NETRemoting技術,這些技術 是系統技術可行性分析的根本,然后從系統架構、開發工具、數據庫服務器和開發語言 的選擇方面介紹了系統的開發環境,系統選擇B/S三層架構、使用Microsoft Visual Studio 2008作為開發工具、使用SQL2008作為數據服務器、使用C#開發語言,最后分析了系 統的數據流程,得到系統的數據流程圖。其中總體圖描述了系統中整體的數據走向以及 和外部實體的交互關系,零級圖提供了總攬全局的視圖模型,細節圖詳細描述了各個部 分內部的數據交互。
經過系統分析,對系統功能有了整體的了解,下一章中將詳細介紹基于系統分析的 系統設計。
第4章系統設計
設計活動是軟件開發過程的關鍵活動之一。它的主要任務是解決“如何做”的問 題,即將軟件的用戶需求合理地變換成目標系統的體系結構、接口特征、模塊邏 輯、數據結構等。軟件設計決定了系統的可擴充性、可維護性、可復用性及系統 的性能,對于軟件質量有著及其重要的作用。
本系統圍繞著電量平衡信息管理業務進行設計,旨在設計能夠實現電量平衡 的自動化、規范化的系統。軟件設計活動一般分為總體設計和詳細設計兩個階段, 前者的目的是確定目標系統的構架,后者是在這個構架上進一步精化。
4.1系統總體設計
軟件構架模型是對復雜的系統進行抽象,為系統設計藍圖,是關于系統構造 及系統各工作機制的相對精簡、卻能清晰反映核心問題的模型。首鋼礦業公司電. 力平衡管理系統主要包括電表基本信息管理、業務配置信息管理、電量基本信息 管理、結算信息管理、電量平衡信息管理和統計查詢信息管理模塊,本系統的功 能模塊圖如圖4.1所示。
0.0首鋼礦業公司電量平衡管理系統-
圖4.1系統功能模塊圖
Fig. 4」Function module diagram of system
首鋼礦業公司電平衡系統主要是通過各廠礦電表自動取數,依據各電表表底 數,計算出各電表按小時、班、日、月的耗電值,電費在尖、峰、平、谷不同時 段的費用不同,計算出日、月電費的相關數據。電表分電子表和機械表,電子表 表底按小時進入工控服務器是廠家完成的,機械表每月人工抄錄一次表底,并錄 入數據庫服務器。將工控服務器表底數據傳輸到電量平衡系統數據庫服務器,采 用的是服務形式,做了一個服務程序來說實現。無表底數據的情況,選擇最近的 時間,進行表底數據的手工補錄,然后采用存儲過程的形式對無表底期間的表底 數據進行自動計算補錄。所有的表底數據均可以進行手工修改。觸發器實現系統 干預和人為操作的電表表底的準確性進行校驗。表底數據傳輸到電量平衡信息管 理系統數據庫服務器后,按照規則采用作業調用存儲過程分步進行小時、班、日、 月的計算,分別存入小時表、班表、日表及月表。
4.2系統功能的劃分
下面,將詳細介紹系統中各個功能模塊的主要功能:
(1)電表基本信息管理模塊:電表基本信息包括電表信息和電表更換信息, 所以該模塊主要包括對電表信息的管理和電表更換信息的管理。當有電表接入系 統時,需要記錄電表的各信息,包括電表ID號,電表類型、電表狀態等信息;當 電表由于過保或者損壞等原因,需要更換時需要記錄電表更換信息,包括新舊電 表表底信息等。
(2)業務配置信息管理模塊:該模塊主要包括配置單位與電表關系、工藝 與電表關系和線路與電表關系功能。通過各種關系的配置管理,計算出各單位、 各工藝和各線路的電量信息。
(3)電量基本信息管理模塊:該模塊主要包括記錄電表表底信息、通過表 底信息計算出小時電量信息、班電量信息、日電量信息、月電量信息等功能。由 于電表分電子表和機械表,電子表表底按小時進入工控服務器是廠家完成的,機 械表每月人工抄錄一次表底,并錄入工控服務器。將工控服務器表底數據傳輸到 電量平衡系統數據庫服務器,采用的是服務形式,做一個服務程序來說實現。
各電表表底進入系統后,按照存儲過程,以各電表表底為基礎數據,分別計 算岀各電表小時電量、班電量、日電量和月電量。
(4)結算信息管理模塊:該模塊主要實現礦業公司各子廠礦月電費結算功 能。各電表電量依據采集時間所在的尖峰平谷時期不同,電費不同,按月計算出 電費數據,根據前期配置的單位與電表關系,計算出礦業公司各子廠礦的月電費
數據,作為該子廠礦月底結算的依據。結算信息按月生成結算報表,并按照年度、 廠礦等進行橫向和縱向比較分析,以便在今后的生產中合理安排,節約電費成本。
(5)電量平衡信息管理模塊:該模塊主要實現按單位、工藝和線路的平衡 分析功能。進入系統的小時電量,按照單位與電表關系、工藝與電表關系和線路 與電表關系,計算出各單位、各工藝、各線路的小時電量,與其歷史電量信息對 比分析,為各單位、各工藝、各線路的經濟用電提供參考。
(6)統計查詢信息管理模塊:該模塊主要包括對系統各模塊信息的查詢分 析功能。系統采集的各類數據,需要分類匯總,并按照各種查詢條件顯示出來, 同時為了方便理解,配合折線圖、餅狀圖等圖表展示岀來。主要分為電表相關、 單位查詢、工藝相關、運行數據相關等需要統計查詢的信息。
4.3主要功能模塊設計
4.3.1電表基本信息管理模塊的設計
電表基本信息的管理主要指對電表信息的管理和電表更換信息的管理。工作 人員根據需要使用增加電表基本信息、修改電表信息基本信息、刪除電表信息基 本信息和查詢電表基本信息的功能管理電表信息,實現系統中數據的實時更新。 電表基本信息管理模塊的功能模塊圖如圖4.2所示。
1.1電表基本信息管理
圖4.2電表基本信息管理的功能模塊圖
Fig. 4.2 Function module diagram of electricity meter information management
電表更換信息管理是電表信息管理的重要環節,當電表岀現損壞或者過有效 期的情況,需要進行換表操作。電表更換信息管理主要包括增加電表更換記錄、 修改電表更換記錄、刪除電表更換記錄和查詢電表更換記錄信息功能。電表更換 信息管理的功能模塊圖如圖4.3所示。
1.2電表更換信息管理
圖4.3電表更換信息管理的功能模塊圖
Fig. 4.3 Function module diagram of electricity meter information updating management
4.3.2業務配置信息管理模塊的設計
業務配置信息管理模塊主要實現電表按單位、按工藝或按線路劃分功能,相 應分為單位與電表關系模塊、工藝與電表關系模塊、線路與電表關系模塊和工藝 產量關系模塊等。
單位與電表關系管理模塊主要對電表按單位進行劃分,為月底電費結算提供 依據。單位與電表關系管理主要包括增加單位與電表關系、修改單位與電表關系、 刪除單位與電表關系和查詢單位與電表關系功能。單位與電表關系管理模塊的功 能模塊圖如圖4.4所示。
2.1單位與電表關系
圖4.4單位與電表關系管理的功能模塊圖
Fig. 4.4 Function module diagram of information management on the relationship between units and
electricity meter
工藝與電表關系管理模塊主要對電表按工藝進行劃分,為月底電量按照工藝 進行統計分析提供依據。工藝與電表關系管理主要包括增加工藝與電表關系、修
改工藝與電表關系、刪除工藝與電表關系和查詢工藝與電表關系功能。工藝與電 表關系管理模塊的功能模塊圖如圖4.5所示。
2.2工藝與電表關系
圖4.5工藝與電表關系管理的功能模塊圖
Fig. 4.5 Function module diagram of information management on the relationship between process
and electricity meter
線路與電表關系模塊和工藝產量關系模塊的功能模塊圖,同單位與電表關系 管理模塊的功能模塊圖大致相同,這里不再一一詳述。
4.3.3電量基本信息管理模塊的設計
電量基本信息管理模塊是本系統的核心模塊之一。電量基本信息管理模塊主 要包括電表表底信息管理、小時電量信息管理、班電量信息管理、日電量信息管 理和月電量信息管理。本模塊在設計過程中,需要用到.Net服務和存儲過程等, 也是系統能否穩定運行的基礎。
首鋼礦業公司的電表分電子表和機械表兩種,電子表表底按小時進入工控服 務器是廠家完成的,機械表數據是人工抄錄,每8小時,也就是1班抄一個表底, 并通過系統錄入數據庫服務器。將工控服務器表底數據采集到電量平衡系統數據 庫服務器,采用的是.Net服務形式,做一個服務程序來說實現。當出現工控機缺 數或者服務停止運行,造成數據庫中電表表底數據缺失等情況時,需要在系統中 對表底進行補錄。.Net服務最后一次采集表底的時間是整點后的第55分,如果某 塊表的表底仍然沒有采集上來,系統默認該塊表表底缺失,針對表底缺失的情況, 系統選擇該表最近一個小時的小時量,加上最近一個小時的表底,作為該小時的 表底,進行表底數據的自動補錄,所有自動補錄的表底數據均可以進行手工修改。 電表表底信息管理主要包括電子表表底采集、電子表表底補錄、機械表表底錄入、 修改電表表底、刪除電表表底和查詢電表表底功能。電表表底信息管理模塊的功 能模塊圖如圖4.6所示。
3.1電表表底信息管理
圖4.6電表表底信息管理的功能模塊圖
Fig. 4.6 Function module diagram of electricity meter reading information management
小時電量信息管理、班電量信息管理、日電量信息管理和月電量信息管理均 采用存儲過程的形式實現。根據采集或錄入的電表表底數據,首先計算出電表的 小時量存入電表小時量數據庫表,然后累計出電表班電量、日電量和月電量,分 別存入數據庫表。
4.3.4結算信息管理模塊的設計
結算信息管理模塊主要包括結算信息管理和結算單打印管理,實現礦業公司 各子廠礦月電費結算功能。其中結算信息管理主要包括結算調整量管理和生成結 算單功能。各電表電量依據采集時間所在的尖峰平谷時期不同,電費不同,按月 計算出電費數據,根據前期配置的單位與電表關系,計算出礦業公司各子廠礦的 月電費數據,作為該子廠礦月底結算的依據。結算信息按月生成結算報表,并按 照年度、廠礦等進行橫向和縱向比較分析,以便在今后的生產中合理安排,節約 電費成本。結算信息管理的功能模塊圖如圖4.7所示。
4. 0結算信息管理
圖4.7結算信息管理的功能模塊圖
Fig. 4.7 Function module diagram of settlement information management
4.3.5電量平衡信息管理模塊的設計
電量平衡信息管理模塊主要包括單位平衡信息管理、工藝平衡信息管理和線 路平衡信息管理等功能模塊。該模塊是首鋼礦業公司電量平衡信息管理系統中較 為重要的業務模塊,在該模塊的設計過程中較多的用到了圖表和ReportBuilder等 報表輸出工具,同時該模塊的設計較多的用到了歸屬關系的設置,歸屬關系的設 置為單位電量平衡分析、單位電量平衡歷史分析、工藝電量平衡分析、工藝電量 平衡歷史分析、一級線路平衡信息、二級線路平衡信息和三級線路平衡信息為統 計查詢提供參考依據。
單位平衡信息管理包括單位電量平衡分析和單位電量平衡歷史分析功能。依 據業務配置管理模塊中的單位與電表關系配置,可以方便的查詢出電表的歸屬單 位,為該單位每月的電表耗電量計算提供參考,依據計算出的月電耗與歷史數據 比較,得出該月單位電耗偏差,給出分析結果,為該單位降低能耗提供參考。單 位平衡信息管理的功能模塊圖如圖4.8所示。
5. 1單位平衡信息管理
圖4.8單位平衡信息管理的功能模塊圖
Fig. 4.8 Function module diagram of unit balance information management
工藝平衡信息管理包括工藝電量平衡分析和工藝電量平衡歷史分析功能。首 鋼礦業公司的生成工藝包括采、選、球、燒等各個工藝,每個工藝分為多個系列, 為了精確把握各工藝,各系列在生成過程中的能耗情況,設計出了工藝平衡信息 管理模塊。工藝平衡信息管理依據業務配置管理模塊中的工藝與電表關系配置, 查詢出各個電表的歸屬工藝,參考各工藝的工藝產量數據,為計算工藝單耗提供 依據,同時,工藝平衡信息的統計數據能很好的反映出各工藝各系列在一定時間 段內的能耗情況。工藝平衡信息管理部分功能模塊圖如圖4.9所示。
圖4.9工藝平衡信息管理的功能模塊圖
Fig. 4.9 Function module diagram of process balance information management
線路平衡信息管理包括一級線路平衡信息、二級線路平衡信息和三級線路平 衡信息功能。線路平衡信息管理部分功能模塊圖如圖4.10所示。
圖4.10線路平衡信息管理的功能模塊圖
Fig. 4.10 Function module diagram of line balance information management
4.3.6統計查詢信息管理模塊的設計
統計查詢信息管理模塊主要是對前期完成的業務數據進行統計查詢。系統采 集的各類數據,需要分類匯總,并按照各種查詢條件顯示出來,同時為了方便理 解,配合折線圖、餅狀圖等圖表展示出來。主要分為基礎數據查詢管理和運行數 據查詢管理等需要統計查詢的信息。
基礎數據查詢管理模塊主要包括電表、工藝、單位等查詢功能。主要分為電 表相關、單位查詢、工藝相關、結算相關等需要統計查詢的信息。基礎數據查詢 管理模塊的功能模塊圖如圖4.11所示。
運行數據查詢管理主要是電表表底數據、產量數據、電表電量數據等的査詢 功能,內容較為簡單,不再一一詳述。
4.4數據庫設計
數據庫設計(Database Design)是指根據用戶的需求,在某一具體的數據庫管理 系統上,設計數據庫的結構和建立數據庫的過程。本系統使用SQL數據庫管理系 統,采用關系數據庫模式。
4.4.1數據庫設計知識
良好的數據庫設計對于一個高性能的應用程序非常重要,就像一個空氣動力 裝置對于一輛賽車的重要性一樣。如果一輛汽車沒有平滑的曲線,將會產生阻力 從而變慢。關系沒有經過優化,數據庫無法盡可能高效地運行。應該把數據庫的 關系和性能看作是規范化的一部分。同時也要認識到數據管理不再僅僅是存儲和 管理數據,而轉變成用戶所需要的各種數據管理的方式。數據庫有很多種類型, 從最簡單的存儲有各種數據的表格到能夠進行海量數據存儲的大型數據庫系統都 在各個方面得到了廣泛的應用。
除了性能以外的問題,就是維護的問題了,數據庫應該易于維護。這包括只 存儲數量有限的(如果有的話)重復性數據。如果有很多的重復性數據,并且這些數 據的一個實例發生一次改變(例如,一個名字的改變),這個改變必須對所有的其他 的數據都進行。為了避免重復,并且增強維護數據的能力,可以創建可能的值的 一個表并使用一個鍵來引用該值。在這種方式中,如果值改變了名字,這個改變 只在主表中發生一次,所有的其他表的引用都保持不變。
例如,假設你負責維護一個學生數據庫以及他們所注冊的課程。如果這些學 生中的30個在同一個課堂中,讓我們將這門課叫做AdvancedMath(高等數學),課 程的名字將會在表中出現30次。現在,如果老師決定把這門課的名字改為 Mathematics IV,我們必須修改30條記錄以反映出新的課程名。如果數據庫設計 為課程名出現在一個表中,只有課程ID號碼和學生記錄一起存儲,那么要更改課 程名稱,我們就只需要改變一條記錄而不是35條記錄。
一個規劃和設計良好的數據庫的優點是眾多的,它也證實了這樣一個道理, 前期做的工作越多,后面所要做的就越少。在使用數據庫的應用程序公開發布之 后,還要對數據庫進行重新設計,這是最糟糕的。因此,在開始編寫一個應用程 序的代碼之前,需要花大量的時間來設計數據庫。
一般數據庫設計方法有兩種,即屬性主導型和實體主導型。屬性主導型從歸 納數據庫應用的屬性出發,在歸并屬性集合(實體)時維持屬性間的函數依賴關系。 實體主導型則先從尋找對數據庫應用有意義的實體入手,然后通過定義屬性來定 義實體。一般現實世界的實體數在屬性數1/10以下時,宜使用實體主導型設計方 法。面向對象的數據庫設計是從對象模型出發的,屬于實體主導型設計。本系統 的數據庫設計就屬于實體主導型設計。
一般地,數據庫應用系統都遵循以下相關開發步驟:
(1) 設計應用系統結構;
(2) 選擇便于將應用程序與DBMS結合的DBMS體系結構,如RDBMS;
(3) 根據應用程序使用的環境平臺,選擇適宜的DBMS(如Oracle)和開發工 具(如PB);
(4) 設計數據庫,編寫定義數據庫模式的SQL程序;
(5) 編寫確保數據正確錄入數據庫的用戶接口應用程序;
(6) 錄入數據庫數據;
(7) 運行各種與數據庫相關的應用程序,以確認和修正數據庫的內容。
4.4.2數據庫表設計
本系統的數據庫表主要包括用戶信息表、電表信息表、電表表底信息表、小 時電量信息表、電表更換信息表、單位與電表關系信息表、工藝產量小時信息表、 單位結算信息表、線路與電表關系信息表、工藝與電表關系信息表、班電量信息 表、日電量信息表、月電量信息表和日報信息信息表等。下面列舉了部分數據庫 表結構。
(1)用戶信息表
用戶信息表(User_Infb)用于記錄系統用戶的基本信息。其中用戶ID是首鋼礦 業公司為每個用戶分配的唯一性標識。用戶登錄系統后,可以修改自己的密碼等 信息。用戶信息表如表4.1所示。
表4.1用戶信息表(Userjnfb)
Tabel 4.1 User information table (User info)
字段名 類型 大小 是否可空 約束
用戶ID Int 4 N 主鍵
姓名 Varchar 10 N
性別 Char 2 Y
密碼 Varchar 10 Y
所屬部門 X^rchar 20 Y
電子簽名 Image 200 Y
角色 Varhar 10 Y
(2)電表信息表
電表信息表(ElectricityMeter_Info)用于記錄電表信息。其中電表ID是自動增1 的,使用SQL標識規范實現,狀態字段用于表示當前電表是否在用,電表類型表 示電表是否聯網(聯網電表表底自動采集,每小時釆集一次表底:未聯網電表人 工抄錄,一月錄入一條表底記錄)。
電表信息表如表4.2所示。
表 4.2 電表信息表(EIectricityMeter_Infb)
Tabel 4.2Electricity Meter information table (ElectricityMeter Info)
字段名 類型 大小 是否可空 約束
電表ID Int 4 N 主鍵
生產編碼 Varchar 10 Y
安裝點位 Varchar 10 Y
倍率 Char 6 Y
生產日期 DateTime 8 Y
檢定日期 DateTime 8 Y
有效日期 DateTime 8 Y
歸屬單位 Varchar 20 Y
狀態 Char 4 Y
電表類型 Varchar 10 Y
(3)電表表底信息表
電表表底信息表(ElectricityMeterDate_Info)用于記錄各個電表的表底數據信 息。其中表底ID是自動增1的,使用SQL標識規范實現,電表ID取自電表信息 表,類型字段包括自動上傳、批量補抄、倒傳、手工補量四種情況,默認設置為“自 動上傳”。電表表底信息表如表4.3所示。
表 4.3 電表表底信息表(ElectricityMeterDate _info)
Tabel 4.3 ElectricityMeterDate information table (ElectricityMeterDate infb)
字段名 類型 大小 是否可空 約束
表底ID Int 4 N 主鍵
電表ID Int 4 N 外鍵
續表4.3電表表底信息表(ElectricityMeterDate」nfd)
Tabel 4.3 ElectricityMeterDate information table (ElectricityMeterDate infd)
字段名 類型 大小 是否可空 約束
記錄時間 DateTime 8 Y
生產日期 DateTime 8 Y
尖期表底 Decimal 9 Y
峰期表底 Decimal 9 Y
平期表底 Decimal 9 Y
谷期表底 Decimal 9 Y
總表底 Decimal 9 Y
類型 Char 4 Y
(4)小時電量信息表
小時電量信息表(HoursPower_Info)用于記錄各個電表的小時電量信息。其中序 號是自動增1的,使用SQL標識規范實現,電表ID取自電表信息表。班電量信 息表、日電量信息表和月電量信息表均依據小時電量信息表信息創建,數據也是 在小時電量信息表的基礎上計算得出的。
小時電量信息表如表4.4所示。
表4.4小時電量信息表(HoursPower_lnfo)
Tabel 4.4 Hours Power information table (HoursPower Info)
字段名 類型 大小 是否可空 約束
序號 Int 4 N 主鍵
電表ID Int 4 N 外鍵
尖期電量 Decimal 9 Y
峰期電量 Decimal 9 Y
平期電量 Decimal 9 Y
谷期電量 Decimal 9 Y
總電量 Decimal 9 Y
記錄時間 DateTime 8 Y
生產日期 DateTime 8 Y
班次 Char 6 Y
(5)電表更換信息表
電表更換信息表(ElectricityMeterChange_Infb)用于記錄各個電表的更換信息。 由于電表的使用期限和損壞等原因,需要對電表進行更換,并記錄更換信息。電 表更換信息中的舊表表底和新表表底在計算電表小時量的過程中具有很重要的作 用,保證小時電量計算的正確,避免電量出現大數據等情況,其中序號是自動增1 的,使用SQL標識規范實現,電表ID取自電表信息表。
電表更換信息表如4.5所示。
表 4.5 電表更換信息表(ElectricityMeterChange_Infb)
Tabel 4.5 Electricity Meter Change information table (ElectricityMeterChange lnfo)
字段名 類型 大小 是否可空 約束
序號 Int 4 N 主鍵
電表ID Int 4 N 外鍵
舊表尖期電量 Decimal 9 Y
舊表峰期電量 Decimal 9 Y
舊表平期電量 Decimal 9 Y
舊表谷期電量 Decimal 9 Y
舊表總電量 Decimal 9 Y
新表尖期電量 Decimal 9 Y
新表峰期電量 Decimal 9 Y
新表平期電量 Decimal 9 Y
新表谷期電量 Decimal 9 Y
新表總電量 Decimal 9 Y
舊表倍率 Char 6 Y
換表時間 DateTime 8 Y
(6)單位與電表關系信息表
單位與電表關系信息表(UnitAndElectricityMeter)用于記錄各個電表所屬單位 信息,其中序號是自動增1的,使用SQL標識規范實現,電表ID取自電表信息 表,進出口表示該電表對該單位是進口還是出口,結算標識記錄該電筆是公司級 結算還是廠礦級結算,統計標識表示該電表是否統計。單位與電表關系信息表如 表4.6所示。
表4.6單位與電表關系信息表(UnitAndElectricityMeter)
Tabel 4.6 Unit And Electricity Meter information table (UnitAndElectricityMeter)
字段名 類型 大小 是否可空 約束
序號 Int 4 N 主鍵
單位名稱 Varchar 20 N
電表ID Int 4 N 外鍵
進出口 Char 4 Y
結算標識 Bit 1 Y
統計標識 Bit 1 Y
(7)工藝產量小時信息表
工藝產量小時信息表(ProcessYield_Info)用于記錄按照工藝劃分的小時產量信 息,其中序號是自動增1的,使用SQL標識規范實現,工藝ID取自工藝信息表。 工藝產量班信息表、工藝產量日信息表和工藝產量月信息表均依據工藝產量小時 信息表信息創建,數據也是在工藝產量小時信息表的基礎上計算得出的,工藝產 量小時信息表如表4.7所示。
表4.7工藝產量小時信息表(Process Yield Jnfb)
Tabel 4.7 Process Yield information table (ProcessYield」nfb)
字段名 類型 大小 是否可空 約束
序號 Int 4 N 主鍵
工藝名稱 Viarchar 20 N
尖期電量 Decimal 9 Y
峰期電量 Decimal 9 Y
平期電量 Decimal 9 Y
谷期電量 Decimal 9 Y
總電量 Decimal 9 Y
產量 Decimal 9 Y
開始時間 DateTime 8 Y
結束時間 DateTime 8 Y
生產日期 DateTime 8 Y
班次 Char 6 Y
(8)單位結算信息表
單位結算信息表(UnitSettlement_Infb)用于記錄各單位月底結算信息,其中序號 是自動增1的,使用SQL標識規范實現,單位ID取自電表信息表,單位結算信 息表如表4.8所示。
表4.8單位結算信息表(UnitSettlement _Infb)
Tabel 4.8 Unit Settlement information table (UnitSettlement」nfo)
字段名 類型 大小 是否可空 約束
序號 Int 4 N 主鍵
單位名稱 Varchar 20 N
結算類型 Char 10 Y
調整量 Decimal 9 Y
結算量 Decimal 9 Y
結算金額 Decimal 9 Y
結算月份 DateTime 8 Y
結算時間 DateTime 8 Y
(9)日報信息表
日報信息表(Daily_Info)用于輸出各種項目的報表信息。日報信息表如表4.9所
Zjs O
表4.9日報信息表(Dailyjnfo)
Tabel 4.9 Daily information table (Daily lnfb)
字段名 類型 大小 是否可空 約束
序號 Int 4 N 主鍵
工藝名稱 Varchar 20 N
生產日期 DateTime 8 Y
日報項目名稱 Varchar 50 Y
續表4.9日報信息表(Dailyjnfo) Tabel 4.9 Daily information table (Daily info)
字段名 類型 大小 是否可空 約束
夜班完成量 Decimal 9 Y
白班完成量 Decimal 9 Y
日完成量 Decimal 9 Y
在本系統中,除了上述列舉的典型數據庫表,還有一些業務配置表,這些表 和單位與電表關系信息表一起,構成了該系統數據庫表的基礎,如工藝與電表關 系信息表、線路與電表關系信息表等,另外有一些數據庫表是幾個子系統間共用 的,另外,有一些表是實體間的聯系表,主要是為m:n類型的關系設計的,這里 不再一一列舉。
4.5本章小結
軟件設計是決定軟件性能的關鍵。本章首先介紹了系統的總體設計,給出了 系統總體設計產生的功能模塊圖。然后,根據總體功能模塊圖,介紹了系統功能姦 的劃分。合理地劃分好功能模塊后,又詳細介紹了各個功能模塊和子模塊的設計。 數據好比軟件系統的血液,所以數據庫設計是應用中最重要的一部分。本章第四 節首先介紹了數據庫設計的一些基本知識和經驗,然后據此設計得到了本系統的 E-R圖,并對此進行了詳細描述。本章的最后一節給出了系統設計產生的部分數據* 字典,這些數據字典是系統實現的基礎。
下一章中將詳細介紹了系統各個模塊以及關鍵技術的實現。
第5章系統實現
系統分析和系統設計工作完成之后,系統的功能、模塊結構、數據組成和數 據結構已基本確定,接下來的工作就是系統實現。系統實現階段的任務是將詳細 設計的結果轉化為用具體的程序設計語言所書寫的程序。根據前兩章對系統的分 析及設計,本章將對系統中的各模塊及子系統的實現情況作了較為詳細的介紹。
5.1表底數據采集服務的實現
windows服務應用程序是一種長期運行在操作系統后臺的程序,它對于服務器 環境特別適合,它沒有用戶界面,不會產生任何可視輸出,任何用戶輸出都回被 寫進windows事件日志。計算機啟動時,服務會自動開始運行,他們不要用戶一 定登陸才運行。把windows服務的實現分為服務的創建、Window服務程序的編寫 和服務的安裝方式三部分。
(1)創建window服務項目:
建一個window服務項目。在項目解決方案上右擊,點增加,選擇新建項目, 在項目類型上選擇Windows,模板選擇Windows服務。
(2)編寫Window服務程序:
1)創建后會生成兩個文件Program.es和Servicel.cs ,其中program.es這 個文件不用動,里面已自動生成好了。我們在Servicel.cs里增加所要的操作,里 面有兩個重寫方法OnStart和OnStop, OnStart和OnStop分別是服務器啟動和停 止后,所發生的事件操作方法•定義了一個定時器,每隔5秒執行一次(theout方法), 因為暫停恢復功能默認是不啟用的,需要設置CanPauseAndContinue屬性啟用此功 能,同時重寫OnStop和OnContinue方法,添加自己的邏輯代碼。
2)至此,我們的服務以及服務實現的功能就已經寫好了,下面怎么讓客戶端安 裝我們的服務呢?這里才是我寫這篇文章的目的!先要增加一個安裝程序類,切換到 視圖窗口,點右擊增加安裝程序,便會增加一個程序安裝類文件Projectlnstaller.cso
3)這里 serviceProcessInstallerl 和 servicelnstallerl 有幾個重要屬性要設置, servicelnstallerl 中的 StartType 要設置成 Automatic,表示隨機啟動,ServiceName 表示服務名稱,Description表示服務的描述,DisplayName表示顯示名稱。 serviceProcessInstaller 1 中的 Account 要設置成 LocalSystem,表示本地系統帳號。
(3)Window服務的安裝方式:
1)命令安裝。通過命令窗口,執行InstallUtil.exe服務路徑可安裝Window 服務。執行 InstallUtil.exe 命令如下:\InstallUtil.exe E:\Sample\SKWMS_Sample\WindowServer\bin\Debug\WindowServer.ex e。
2)安裝程序。安裝程序制作步驟如下:第一步,在解決方案視圖下,右擊選 擇增加,進行新建項目,選擇項目類型選擇安裝和部署點擊模板選擇安裝項目。第二 步,創建后,在安裝項目視圖下,右擊視圖,選擇文件系統。由于我們是安裝服務, 就不需要用戶桌面和程序菜單了,直接應用程序文件夾,右擊增加,選擇項目輸出。 上面有兩點需要注意,一是項目選擇中選擇要安裝的服務,二是項目選擇下面要選 擇主輸出,選擇好后確定,這一步增加了安裝程序的文件夾,下一步就是給這個安裝 程序增加操作,這里我們增加兩個基本操作,一個是安裝,一個是卸載。第三步,在 安裝項目視圖下,右擊視圖,選擇自定義操作。上面可以看到有安裝,提交,回滾, 卸載等操作,我們先增加安裝操作,點擊安裝,右擊增加自定義操作,會彈出一個對 話。第四步,選擇應用程序文件夾,并選中之前增加的主輸出項確定,這樣這個安裝 程序就增加了安裝的操作,同樣按照這樣的方式增加卸載操作,卸載與安裝唯一不同 的是需要設置一個命令參數,不可少。第五步,這里Arguments里輸入/u表示 卸載命令相當于InstallUtil.exe /u服務路徑,到這里,我們的安裝程序就己經制 作好了,生成安裝程序項目,將會生成setup.exe和setup.msi安裝文件,拷貝 到客戶端,點擊setup.exe。
5.2電表基本信息管理模塊的實現
電表基本信息管理模塊主要實現對電表信息和電表更換信息的管理。這一部 分的實現主要包括增加電表信息、修改電表信息、刪除電表信息、查詢電表信息、 增加電表更換信息、修改電表更換信息、刪除電表更換信息和查詢電表更換信息 的實現。
5.2.1電表信息管理功能的實現
電表信息的管理主要包括增加電表信息、修改電表信息、刪除電表信息、査 詢電表信息功能。下面以增加電表信息為例,詳細介紹電表信息管理的實現。
本模塊采用三層B/S結構實現,包括表示層、功能層、數據層,其中表示層 實現顯示窗體控件、接收電表錄入信息和顯示操作結果信息的功能,以及表示層 和數據層間的數據傳遞功能;功能層實現主要的業務邏輯操作,調用數據訪問層 方法;數據層實現對數據庫表、視圖的操作及執行存儲過程。
視圖是由一個或多個數據表(基本表)或視圖導出的虛擬表或查詢表,是關系數 據庫系統提供給用戶以多種角度觀察數據庫中數據的重要機制。
存儲過程是由流控制和SQL語句書寫的過程,這個過程經編譯和優化后存儲 在數據庫服務器中,應用程序使用時只要調用即可。
增加電表信息時,首先在窗體中錄入電表信息,然后獲取用戶輸入的電表信 息并對信息進行格式檢驗,如果檢驗通過,則調用數據庫訪問層的方法插入記錄; 如果不通過,則輸出對錯誤信息的提示;插入記錄時,可能由于數據庫服務器沒 打開等原因造成插入失敗,所以,記錄插入完畢后,需要給出插入結果提示。
增加電表信息的流程圖如圖5.1所示。
圖5.1電表信息管理流程圖
Fig. 5.1 Flow chart of electricity meter information management
刪除電表信息時,首先要判斷該電表是否存在更換信息記錄,如果存在,必 須要先刪除該電表的更換信息記錄,然后才能執行刪除電表信息操作。
5.2.2電表更換信息管理的實現
電表更換信息的管理主要包括增加電表更換信息、修改電表更換信息、刪除 電表更換信息、查詢電表更換信息功能。下面以增加電表更換信息為例,詳細介 紹電表更換信息管理的實現。
增加電表更換信息時,首先在窗體中錄入電表更換信息,然后獲取用戶輸入 的電表更換信息并對信息進行格式檢驗,如果檢驗通過,則調用數據庫訪問層的 方法插入記錄;如果不通過,則輸出對錯誤信息的提示;插入記錄時,可能由于 數據庫服務器沒打開等原因造成插入失敗,所以,記錄插入完畢后,需要給出插 入結果提示。
增加電表更換信息流程圖與增加電表信息的流程圖類似,這里不再重復。
執行電表更換信息操作時,必須記錄新舊電表的表底,為計算小時電量提供 依據。
5.3業務配置信息管理模塊的實現
業務配置信息管理模塊主要實現對單位與電表關系、工藝與電表關系和線路 與電表關系的管理。這一部分的實現主要包括增加單位與電表關系、修改單位與 電表關系、刪除單位與電表關系、查詢單位與電表關系、增加工藝與電表關系、 修改工藝與電表關系、刪除工藝與電表關系、查詢工藝與電表關系、增加線路與 電表關系、修改線路與電表關系、刪除線路與電表關系、查詢線路與電表關系。
5.3.1單位與電表關系功能的實現
單位與電表關系的管理主要包括增加單位與電表關系、修改單位與電表關系、 刪除單位與電表關系、查詢單位與電表關系的功能。單位與電表關系的實現過程 中存在2個判斷過程,一是判斷進入系統的信息是否符合格式要求,如果不符合 格式要求,需要給出提示信息,方便修改完善后進入系統;二是判斷進入系統的 信息是否己經存在,如果存在,不允許進入系統,避免重復數據出現。下面以增 加單位與電表關系為例,詳細介紹單位與電表關系管理的實現。
增加單位與電表關系時,首先在窗體中錄入單位與電表關系信息,然后獲取 用戶輸入的單位與電表關系信息并對信息進行格式檢驗,如果不通過,則輸出對 錯誤信息的提示;如果檢驗通過,判斷數據庫中是否存在需要錄入的單位與電表 關系信息,存在則結束操作,否則調用數據庫訪問層的方法插入記錄;插入記錄 時,可能由于數據庫服務器沒打開等原因造成插入失敗,所以,記錄插入完畢后, 需要給出插入結果提示。
添加單位與電表關系的流程圖如圖5.2所示。.
注意,對單位與電表關系進行維護時,需要進行進出口關系維護,判斷出該 電表記錄的是該單位的進口電量還是出口電量。在系統的實現過程中,采用的單 選框的形式出現,同時給岀校驗結果,避免錯誤信息進入系統,造成后期統計信 息失真的情況出現。
/獲取單位與電表關系信息/
*
圖5.2添加單位與電表關系流程圖
Fig. 5.2 Flow chart of add unit and electricity meter
5.3.2工藝與電表關系功能的實現
工藝與電表關系的管理主要包括增加工藝與電表關系、修改工藝與電表關系、 刪除工藝與電表關系、查詢工藝與電表關系的功能。增加工藝與電表關系的操作 步驟和單位與電表關系的操作雷同,不再詳述,下面以修改工藝與電表關系為例, 詳細介紹工藝與電表關系管理的實現。
修改工藝與電表關系時,首先在窗體中輸入査詢條件,調用數據訪問層方法, 查詢出需要修改的記錄,選定該記錄,進行信息編輯,然后獲取用戶編輯的工藝 與電表關系信息并對信息進行格式檢驗,如果不通過,則輸出對錯誤信息的提示; 如果檢驗通過,依據該記錄主鍵,調用數據庫訪問層的方法修改記錄;修改記錄 時,可能由于數據庫服務器沒打開等原因造成修改失敗,所以,記錄修改完畢后, 需要給出修改結果提示。
修改工藝與電表關系的流程圖與添加單位與電表關系的流程圖類似,這里不 再重復。
5.3.3線路與電表關系功能的實現
線路與電表關系的管理主要包括增加線路與電表關系、修改線路與電表關系、 刪除線路與電表關系、查詢線路與電表關系的功能。增加線路與電表關系的操作 步驟和單位與電表關系的操作雷同,修改線路與電表關系的操作步驟和工藝與電 表關系的操作雷同,不再詳述,下面以刪除線路與電表關系為例,詳細介紹線路 與電表關系管理的實現。
刪除線路與電表關系時,首先在窗體中輸入查詢條件,調用數據問層方法, 查詢出需要刪除的記錄,選定該記錄,進行刪除操作,刪除記錄時,可能由于數 據庫服務器沒打開等原因造成修改失敗,所以,記錄刪除完畢后,需要給出刪除 結果提示。
刪除線路與電表關系的流程圖與添加單位與電表關系的流程圖類似,這里不 再重復。
5.4電量基本信息管理模塊的實現
電量基本信息管理模塊是本系統的核心模塊之一。電量基本信息管理模塊主 要包括電表表底信息管理、小時電量信息管理、班電量信息管理、日電量信息管 理和月電量信息管理等幾大功能。
5.4.1電表表底信息管理功能的實現
電表分電子表和機械表,電子表是聯網電表,表底按小時進入工控服務器是 廠家完成的,機械表每月人工抄錄一次表底,并錄入數據庫服務器。將工控服務 器表底數據釆集到電量平衡系統數據庫服務器,采用的是Window服務形式,做 一個服務程序來說實現。電表表底信息管理主要包括電子表表底采集、電子表表 底補錄、機械表表底錄入、修改電表表底、刪除電表表底和查詢電表表底功能。 下面以電子表表底補錄為例,詳細介紹電表表底信息管理的實現。
電子表表底補錄時,首先在窗體中輸入查詢條件,調用數據訪問層方法,查 詢補錄的表底信息是否存在,如果表底信息存在則無需補錄,并給出提示信息; 如果表底信息不存在,則在錄入窗體中錄入電表表底數據,然后獲取用戶輸入的 電表表底信息并對信息進行格式檢驗,如果不通過,則輸出對錯誤信息的提示; 否則調用數據庫訪問層的方法插入記錄;插入記錄時,可能由于數據庫服務器沒 打開等原因造成插入失敗,所以,記錄插入完畢后,需要給出插入結果提示。
電子表表底補錄流程如圖5.3所示。
圖5.3電子表表底補錄流程圖
Fig. 5.3 Flow chart of electronic table bottom makeup
在查詢是否存在需要補錄的電表表底數據時,查詢條件設置包括電表ID和生 成表底的時間,避免把其他電表的表底做為需要補錄的電表表底等錯誤情況的發 生。
5.4.2小時電量信息管理功能的實現
電表小時電量的計算,是整個系統實現的關鍵環節,在計算小時電量的時候, 首先要考慮一點,就是該塊電表在需要計算的小時內是否存在換表記錄,避免大
數據的出現,如果忽略了這一點,直接用舊表的上一小時表底減去新表的表底, 就會出現大數據,嚴重影響系統的穩定運行。
小時電量計算流程圖如圖5.4所示。
圖5.4小時電量計算流程圖
Fig. 5.4 Flow chart of energy calculation by hour
存儲過程是由流控制和SQL語句書寫的過程,這個過程經編譯和優化后存儲 在數據庫服務器中,應用程序使用時只要調用即可。小時電量信息管理就是寫存 儲過程實現的。首先獲取服務器時間和聯網電表ID號,設置游標,取出第一個聯 網電表ID號,在電表表底數據庫表中,查找該電表該時間點的表底是否存在,不 存在則獲取新的聯網電表ID號;存在則取出該聯網電表該時間點和上一小時的表 底數據,然后在換表記錄里面查找該聯網電表是否存在換表操作,不存在則依取 出的兩個表底想減計算出小時電量;存在則取出換表操作時記錄的新、舊電表表 底,根據新表表底、舊表表底、上一小時表底數、該小時表底數計算出小時電量 并存入小時電量表,然后判斷該聯網電表是否是取出的最后一條聯網電表,不是 則獲取新的聯網電表ID,開始循環計算;如果是最后一條聯網電表ID,則結束循 環。
5.4.3班日月電量信息管理功能的實現
班、日、月電量均是以小時電量為基礎累加計算出來的,計算過程也是寫存 儲過程實現的。其中班電量的計算較為特殊,一天分三個班次,即四點班、零點 班和八點班,四點班的生產時間是當日16到次日0點;零點班的生產時間是當日 0點到當日8點;八點班的生產時間是當日8點到當日16點。下面以班電量的計 算為例,詳細介紹班日月電量信息管理功能的實現。
班電量計算流程圖如圖5.5所示。
圖5.5班電量計算流程圖
Fig. 5.5 Flow chart of energy calculation by shift
首先獲取服務器時間,根據服務器時間計算出班次和該班次的起止時間,獲 取聯網電表ID號,在電表小時電量數據庫表中,依據該班次的起止時間,査找該 電表該時間段內的小時電量是否存在,不存在則獲取新的聯網電表ID號;存在則 累加計算出該聯網電表該班次的班電量數據,存入班電量表,然后判斷該聯網電 表是否是取出的最后一條聯網電表,不是則獲取新的聯網電表ID,開始循環計算; 如果是最后一條聯網電表ID,則結束循環。
5.5結算信息管理模塊的實現
結算信息管理模塊主要包括結算信息管理和結算單打印管理,實現礦業公司 各子廠礦月電費結算功能。其中結算信息管理主要包括結算調整量管理和生成結 算單功能。各電表電量依據采集時間所在的尖峰平谷時期不同,電費不同,按月 計算出電費數據,根據前期配置的單位與電表關系,計算出礦業公司各子廠礦的 月電費數據,作為該子廠礦月底結算的依據。結算信息按月生成結算報表,并按 照年度、廠礦等進行橫向和縱向比較分析,以便在今后的生產中合理安排,節約 電費成本。
5.5.1結算信息管理功能的實現
結算信息管理主要實現礦業公司及其各子廠礦按月結算電費的功能。在結算 信息管理的實現過程中,首先選擇結算月份、結算單位和結算類型等條件,然后 調用數據訪問層方法,按點位查詢需要結算的信息,如果各點位結算信息不需要 調整,則直接進行結算,如果個別點位需要進行結算調整,則選擇這些點位,在 相應的調整量框內錄入調整量進行結算操作,如果結算信息能夠順利進入數據庫, 則給出“結算成功”提示,否則給出“結算失敗”提示。結算信息管理流程圖如 圖5.6所示。
5.5.2結算單打印管理功能的實現
結算單打印管理主要實現礦業公司及其各子廠礦按月打印結算單的功能,結 算單打印管理較多的使用了 Report Builder報表功能。在結算單打印管理的實現過 程中,首先選擇結算月份、結算單位和結算類型等條件,然后調用數據訪問層方 法,查詢需要打印的結算單信息,在Report Builder報表中顯示出來,如果需要打 印,則選擇打印,系統調用打印機進行打印,如果打印成功,則給出“打印成功” 提示,否則給出“打印失敗”提示,結算單打印功能為結算信息提供歷史査詢參 考。
結算單打印功能流程圖與結算信息管理流程圖類似,這里不再重復。
( 開始 )
圖5.6結算信息管理流程圖
Fig. 5.6 Flow chart of settlement information management
5.6電量平衡信息管理模塊的實現
電量平衡信息管理模塊主要包括單位平衡信息管理、工藝平衡信息管理和線 路平衡信息管理等功能模塊。進入系統的小時電量,按照單位與電表關系、工藝 與電表關系和線路與電表關系,計算出各單位、各工藝、各線路的小時電量,與 其歷史電量信息對比分析,為各單位、各工藝、各線路的經濟用電提供參考。
5.6.1單位平衡信息管理功能的實現
單位平衡信息管理包括單位電量平衡分析和單位電量平衡歷史分析功能。依 據業務配置管理模塊中的單位與電表關系配置,可以方便的查詢出電表的歸屬單 位,為該單位每月的電表耗電量計算提供參考,依據計算出的月電耗與歷史數據 比較,得出該月單位電耗偏差,給出分析結果,為該單位降低能耗提供參考。下
面以單位電量平衡歷史分析功能為例,詳細介紹單位平衡信息管理的實現。
進行單位電量平衡歷史分析時,首先在窗體中輸入選擇條件,如單位和時間 段等,調用數據訪問層方法,查詢該單位在該時間段內的進廠電量、消耗電量、 損失率、控制標準及下一級單位電量數據分析,下一級單位電量數據分析內容主 要包括電量消耗情況、能耗比重等,同時給出各個時間點的電量消耗情況統計折 線圖。
單位電量平衡歷史分析流程圖如圖5.7所示。
圖5.7單位電量平衡歷史分析流程圖
Fig. 5.7 Flow chart of analysis of energy balance historical units
5.6.2工藝平衡信息管理功能的實現
工藝平衡信息管理包括工藝電量平衡分析和工藝電量平衡歷史分析功能。首 鋼礦業公司的生成工藝包括采、選、球、燒等各個工藝,每個工藝分為多個系列, 為了精確把握各工藝,各系列的能耗情況,設計出了工藝平衡信息管理模塊。工 藝平衡信息管理依據業務配置管理模塊中的工藝與電表關系配置,查詢出電表的 歸屬工藝,參考各工藝的工藝產量數據,為計算工藝單耗提供依據。下面以工藝 電量平衡分析功能為例,詳細介紹工藝平衡信息管理功能的實現。
進行工藝電量平衡分析時,首先在窗體中輸入選擇條件,如工藝名稱等,調 用數據訪問層方法,查詢該工藝的日實際電耗、日電耗標準、日比較、月累計電 耗、月電耗標準、月比較及工藝單耗明細數據,工藝單耗明細數據內容主要包括 時間、電量、精礦量、單耗、標準、單耗-標準比較等,同時給出各個時間點該工 藝的電量消耗情況統計折線圖。
工藝電量平衡分析流程圖與單位電量平衡歷史分析流程圖類似,這里不再重 復。
5.6.3線路平衡信息管理功能的實現
線路平衡信息管理包括一級線路平衡信息、二級線路平衡信息和三級線路平 衡信息功能。下面以一級線路平衡信息管理為例,詳細介紹線路平衡信息管理功 能的實現。
進行一級線路平衡信息管理時,首先在窗體中輸入選擇條件,如時間等,調 用數據訪問層方法,查詢該線路的時間、總進口電量、總出口電量、線變損、損 耗比等信息,同時給出各個時間點該線路的電量消耗情況統計折線圖。
一級線路平衡信息流程圖與單位電量平衡歷史分析流程圖類似,這里不再重 復。
5.7統計查詢信息管理模塊的實現
統計查詢信息管理模塊主要包括對系統其他各模塊信息的查詢分析功能。系 統采集的各類數據,需要分類匯總,并按照各種查詢條件顯示出來,同時為了方 便理解,配合折線圖、餅狀圖等圖表展示出來。主要分為電表相關、單位查詢、 工藝相關、運行數據相關等需要統計查詢的信息。
5.7.1基礎數據查詢管理功能的實現
基礎數據查詢管理模塊主要包括電表、工藝、單位等查詢功能。主要分為電 表相關、單位査詢、工藝相關、結算相關等需要統計查詢的信息。下面以電表相 關中的電表信息查詢為例,詳細介紹基礎數據査詢管理功能的實現。
進行電表信息査詢時,首先在窗體中輸入選擇條件,如歸屬單位,安裝點位等, 如果沒有查詢條件,則查詢出所有的電表信息,調用數據訪問層方法,查詢該單 位安裝在該點位的電表基本信息,包括電表出廠編號、規格型號、檢定日期、倍 率、歸屬單位、安裝點位等信息。
電表信息查詢流程圖如圖5.8所示。
圖5.8電表信息查詢流程圖
Fig. 5.8 Flow chart of electricity information query
5.7.2運行數據查詢管理功能的實現
運行數據查詢管理主要是電表表底數據、產量數據、電表電量數據等的查詢 功能。下面以電表電量數據中的電表小時量查詢為例,詳細介紹基礎數據查詢管 理功能的實現。
進行電表小時量查詢時,首先在窗體中輸入選擇條件,如時間,電表名稱等, 調用數據訪問層方法,査詢該電表該時間段內的小時電量信息,包括時間、電表 號、電表點位、尖、峰、平、谷、總電量等信息,同時給出各個時間點該電表的 電量情況統計折線圖。
電表小時量查詢流程圖與增加電表信息的流程圖類似,這里不再重復。
5.8本章小結
本章詳細描述了系統中各個模塊的實現,包括電表基本信息管理、業務配置 信息管理、電量基本信息管理、結算信息管理、電量平衡信息管理及統計査詢信 息管理功能的實現。在介紹各個模塊的詳細實現的過程中,詳細介紹了涉及的關 鍵技術的實現、包括.NET服務技術、存儲過程等技術。
測試是軟件開發活動中非常重要的過程,下一章將詳細介紹對系統的測試方 法和測試結果。
第6章系統測試
6.1軟件測試
軟件測試是指使用人工或者自動手段來運行或測試某個系統的過程,其目的在于檢 驗它是否滿足規定的需求或弄清預期結果與實際結果之間的差別。它是幫助識別開發完 成的計算機軟件(整體或部分)的正確度(correctness)、完全度(completeness)和質量(quality) 的軟件過程。
軟件測試的意義在于:
(1)發現軟件錯誤。越早的發現錯誤,越方便改正。
(2)有效定義和實現軟件成分由低層到高層的組裝過程。
(3)驗證軟件是否滿足任務書和系統定義文檔所規定的技術要求。
(4)為軟件質量模型的建立提供依據。
軟件測試的目的,第一是確認軟件的質量,其一方面是確認軟件做了所期盧的事情 (Do the right thing),另一方面是確認軟件以正確的方式來做了這個事件(Do it right)o第 二是提供信息,比如提供給開發人員或程序經理的反饋信息,為風險評估所準備的信息。 第三軟件測試不僅是在測試軟件產品的本身,而且還包括軟件開發的過程。如果一個軟 件產品開發完成之后發現了很多問題,這說明此軟件開發過程很可能是有缺陷的。因此 軟件測試的第三個目的是保證整個軟件開發過程是高質量的。測試的總體目標是保證軟 件的質量㈤。 '
軟件測試需要遵循以下幾項原則;
(1)所有測試的標準都建立在用戶需求之上。軟件工程以質量為核心,開發出來 的軟件產品應該滿足用戶的需求。所有,測試時需要更多的考慮用戶能否正確、完整的 使用被測軟件,用戶使用這套軟件能夠給他們的工作帶來多少好處,不過多考慮用戶不 在意的問題。
(2)所有的需求都是可驗證的。在需求分析活動中,對提出的所有需求都應該設 定明確的驗收標準。測試人員根據這些驗收標準判斷軟件是否滿足要求,而不是根據自 己的感覺判斷。
(3)可以提前展開測試活動。盡早測試,盡早發現問題,才能盡早解決問題。事 實上,需求分析完畢后,就可以編制測試計劃和測試用例,在設計說明書產生后,可以 進一步細化和修訂測試計劃與測試用例。
(4)增量測試。時常有這樣的情況發生,每個模塊都能單獨工作,但這些模塊集 成在一起之后卻不能正常工作。增量測試可以幫助測試人員更容易找到缺陷,容易孤立 新出現的錯誤朗。
(5)不能忽略非正常的輸入數據。測試用例中,不僅要有合法的輸入數據,而且 需要非法的輸入數據。應當充分考慮各種預想不到的輸入情況,例如輸入了非法字符、 按錯鍵等。
6.2測試內容
本系統在軟件開發的各個階段分別進行了單元測試、集成測試和功能測試,下面將 分別給予介紹。
6.2.1單元測試
單元測試是在軟件開發過程中要進行的最低級別的測試活動,在單元測試活動中, 軟件的獨立單元將在與程序的其他部分相隔離的情況下進行測試⑷。
單元測試是把一個模塊作為獨立的程序單元進行測試,以保證它能夠正確執行規定 的功能。模塊是通過接口和其他模塊相互聯系的,只有接口正確,才能保證數據的正確 流入和流出,這是模塊能正常工作的先決條件;在測試過程中,重點測試邊界條件,保 證模塊在邊界上能正確操作。
單元測試是由程序員自己來完成,最終受益的也是程序員自己。可以說,程序員有 責任編寫功能代碼,同時也就有責任為自己的代碼編寫單元測試。執行單元測試,就是 為了證明這段代碼的行為和期望的一致。
在本系統的開發過程中,基本上對每個功能函數都進行了單元測試,包括正確數據 和各種類型的錯誤數據。
下面,以上傳文件功能為例,詳細介紹單元測試。本系統中,在UpDownLoadClient 類里編寫了 Upload(string localPath, string fileType, ref string serverPath)方法,其中參數 localPath是指要上傳的文件在本地計算機中的路徑,參數fileType是文件的類型,根據 它讀取文件上傳后存放在服務器上的位置,參數serverPath用于返回上傳文件后文件在 服務器上的位置。針對該功能編寫了以下測試用例:
(1) 參數localPath中是本地計算機上的文件路徑,參數fileType中是正確的文件 類型;
(2) 參數localPath中是本地計算機中并不存在的文件路徑,但參數fileType中是 正確的文件類型;
(3) 參數localPath中是本地計算機上的文件路徑,但參數fileType中是并不存在 的文件類型;
(4) 參數localPath中是本地計算機中并不存在的文件路徑,且參數fileType中是 并不存在的文件類型;
(5)參數localPath中是本地計算機上的文件路徑,參數fileType中是正確的文件 類型,但是文件正在以只讀狀態打開;
(6)參數localPath中是本地計算機上的文件路徑,參數fileType中是正確的文件 類型,但是文件正在以寫狀態打開。
執行這些測試用例,查看返回參數serverPath的值,以及對應于不同類型的錯誤, 是否給出了正確提示。
經驗表明,一個盡責的單元測試方法將會在軟件開發的某個階段發現很多的Bug, 并且這時修改它們的成本也很低。在本系統的單元測試過程中,也發現了很多存在的問 題,并且及時地尋找到了解決辦法,下面詳細說明一下其中比較典型的幾個。
(1)問題描述:查詢電表信息時,查詢不到沒有點位的電表信息。
解決辦法:使用左外連接執行查詢,"left outer join,,>包含了左表中的全部彳亍,其 中左表是電表信息表。
(2)問題描述:上傳文檔時,如果文檔存在,則能夠正確上傳,如果不存在,則
發生異常。 >
解決辦法:在上傳文檔前,首先File.Exists方法對文件路徑進行判斷,如果確實存 在,再進行下一步操作,否則,給出“需要上傳的文檔并不存在”提示。
(3)問題描述:添加電子簽名時,如果該用戶對應的數據庫記錄中存儲了電子簽 名,則能夠正常添加,但如果不存在,則發生"Null Reference5啲異常。
解決辦法:從數據庫里讀岀電子簽名字段時,需要進行是否為空的判斷,卻果不為 空,再生成對應的Image對象,否則,給出“該用戶還沒有電子簽名”的提示。"
在提供了經過測試的單元的情況下,系統集成過程將會大大地簡化。開發人員可以 將精力集中在單元之間的交互作用和全局的功能實現上,而不是陷入充滿很多Bug的單 元之中不能自拔。
6.2.2集成測試
系統集成時,時常有這樣的情況發生,每個模塊都能單獨工作,但這些模塊集成在 一起之后卻不能正常工作。主要原因是:模塊相互調用時接口會引入許多新問題。例如, 數據經過接口可能丟失;一個模塊對另一模塊可能造成不應有的影響;幾個子功能組合 起來不能實現主功能;誤差不斷積累達到不可接受的程度;全局數據結構出現錯誤,等 等。綜合測試是組裝軟件的系統測試技術,按設計要求把通過單元測試的各個模塊組裝 在一起之后,進行綜合測試以便發現與接口有關的各種錯誤。
增量式集成方法中,程序一段一段地擴展,測試的范圍一步一步地增大,錯誤易于 定位和糾正,界面的測試亦可做到完全徹底。下面詳細介紹本系統中用到的自底向上集 成方法。
自底向上測試是從“原子”模塊(即軟件結構最低層的模塊)開始組裝測試,因測試到 較高層模塊時,所需的下層模塊功能均己具備,所以不再需要樁模塊。自底向上綜合測 試的步驟分為:
(1)把低層模塊組織成實現某個子功能的模塊群(cluster);
(2)開發一個測試驅動模塊,控制測試數據的輸入和測試結果的輸出;
(3)對每個模塊群進行測試;
(4)刪除測試使用的驅動模塊,用較高層模塊把模塊群組織成為完成更大功能的 新模塊群。
從第一步開始循環執行上述各步驟,直至整個程序構造完畢。
本系統在集成階段,對每個功能模塊都進行了集成測試,這里以電表電量信息為例, 集成了添加電表表底、計算電表小時電量、計算電表班量、計算電表日量、計算電表月 量等功能,為此編寫了集成測試用例如下:
(1)服務取出電表表底時,電表表底已經進入自動化庫內,由于服務停止等原因, 表底沒有進入電量平衡信息管理系統中;
(2)計算電表小時電量時,由于表底信息出現中斷,上一小時的表底減去下一小 時的表底無法實現;
(3)計算電表班電量時,由于小時電量出現中斷,班電量累計計算時無法實現。
在集成測試過程中,發現了很多接口方面的問題,現簡要介紹幾個其中比較典型的 問題:
(1)問題描述:查詢電表表底信息時,當選擇點位作為查詢條件時,本應該查詢 出的電表表底信息無法正常展示。
原因:由于查詢電表信息的執行語句中,使用的是using子句,無論塊是如何退出 的,using子句都會確保關閉和釋放數據庫連接,這樣,沒有了數據庫連接,再查詢聯 系人信息時必然會拋出異常。
解決方案:數據庫的方法和方法之間不再共用連接,每個方法內部都新建一個連接。
(2)問題描述:開啟服務器后,在執行插入電表關系維護時,時間一長就不能繼 續查詢了,發生了異常。
原因:插入電表關系維護時,需要調用數據訪問層對象,而數據訪問層對象在服務 器端,是通過Remoting獲取的遠程對象的引用。
解決方案:重寫遠程處理生存期服務所使用的生存期租約對象定義方法。
(3)問題描述:多個用戶同時登陸系統進行表底信息補錄時,出現補錄不同電表 時最好補錄的是同一塊電表的表底。
原因:SQL中沒有使用事務來控制不同用戶對同一個數據庫表操作,導致插入了同 一塊電表的不同表底。
解決辦法:改用事務的方法控制數據庫操作,并且涉及2個以上數據庫表的操作都 要用事務來控制,這樣重新完善了業務流程,避免了類似問題的發生。
集成測試中發現的問題還有很多,這里不再一一贅述。在集成測試過程中,成功地 執行了測試計劃中規定的所有集成測試,并修正了所發現的錯誤。
6.2.3功能測試
在漫長的軟件發展中,界面設計工作一直沒有被重視起來。其實,軟件界面設計就 像工業產品中的工業造型設計一樣,是產品的重要買點。友好美觀的界面會給用戶帶來 舒適的視覺享受,拉近用戶與軟件的距離。界面設計不是單純的美術繪畫,需要定位使 用者、使用環境、使用方式并且為最終用戶而設計。檢驗一個界面的標準不是某個項目 開發組領導的意見也不是項目成員投票的結果,而是最終用戶的感受。所以,界面設計 要和用戶研究緊密結合。
下面,以添加電表信息和電表電量信息為例,簡單介紹系統頁面。
添加電表信息界面上的功能主要是錄入新的電表信息,頁面整體簡潔大方,操作方 便,從上到下、從左到右的整齊布局滿足用戶的視覺需求。
添加電表信息界面如圖6」所示。
系統菅理,首貢"運frtJS »主救據維護聯網電表主救據表維護
I藥H返回選擇頁面
圖6」添加電表信息界面圖
Fig. 6.1 UI of adding electricity information
電表表底信息是本系統的重要頁面,設計該頁面時,考慮到電表表底分尖峰平谷不
同時段,設計了自動計算總表底功能,方便實用。
電表表底信息頁面如圖6.2所示。
系統管理:首員行管理"電表表底維護
請選擇 聯網 電表R 9鴿子灣綠化隊院北{首治v 日期選擇 2014-12-29 |查詢
日期時間 2014-12-29 1 00 00 尖期表底 69 53 峰期表底 249 48
平期表底 311 35 谷期表底 315 86 總表底 946 22
|保 在I |取 消I
■ [ 1
選擇 9 65.55 249.4S 3H35 315.84 945.20 trtl ' } •> ^0 A<».AA./»n
J — * — 7 刪除
選擇 9 69.53 249.48 311.35 315.86 946.22 2014-12-29 01:00:00.000 ■除
選擇 9 69.53 249.4S 31135 315.8S 946.24 201-1-12-29 g 閱購.剛 刪除
9 69.53 249.4S 311.35 315.90 ^6.26 2014.12-2$ 03:30:00.0-OC 刪除
選擇 9 69.53 249.1S 311.35 315.9] 2GU-I2-29 昶:鮒磁 刪除
選擇 9 65.53 24OS 3:1.35 315.95 ^46.29 -v v- .v.UV .v V 刪除
9 65.53 245.1S 31155 315.95 9心1 >14-12-2? 06:00:00. &00 刪除
選擇 9 69.53 219.4S 311.55 315.96 曲5•衛 23U.12.29 0':C-O:00.a00 刪除
選擇 9 5$.53 249.18 311.5' S15.96 9^.34 2Gli-12-29 OSrOOrOO.OOO 刪除
選擇 9 59.53 249.49 315.se 釘 6.3, 2014-12-29 唆 00:00.000 刪涂
選擇 9 69.53 249.50 311.S" 315.96 946.36 2014-12-29 10:QO:OO.QQO 刪除
選擇 9 69.53 249.51 311.$' 315.95 946.37 20U-12-29 11:00:00.000 刪除
選擇 9 69.53 249.51 31138 315.96 ^6.38 2QU-12-29 12:00:00.000 刪除
選擇 9 W.53 2M5I 311.40 315.96 2014-12-2$ B:00:00.000 刪除
選擇 9 69.53 249.51 315.96 ^6.41 2014-12-211 他 g000 刪除
圖6.2電表表底信息管理界面圖
Fig. 6.2 UI of the reading managment
電表關系維護也是本系統的重要頁面,設計該頁面時,考慮到電表的基本信息較多,
電表關系維護頁面如圖6.3所示。
系統管理:首頁2業務配置>:-■電表關系維護
圖63電表關系維護界面圖
Fig, 6.3 UI of meter relationship maintenance
電表小時電量頁面是本系統中的另一個重要頁面,該頁面主要包括查詢存儲過程計 算出的小時電量等功能。
電表小時電量頁面如圖6.4所示。
敦據查詢:首員 >> 電表相關》電表小時童
日期的問 2014-12-23 21 v 至 2014-12-29 20 v O尖期C:薩期O平期:夸期040
電表選擇 @全部O單位O工藝 電表 185新主廠1 * | 査遜 |
—尖一嵯一平 谷一總
40 T ■ - ■
14-12-28 21 00 14-12-29 02 00 14-12-29 07 00 14-12-2912:00
日期時間
2014-12-2S21:3C:00
2014-12-28 22:00:00 P5
!-5 老細破變壓器
老細破變壓器 iS
0 >2 0 0 4S
0 0
2014-12-2823:00:00 175 老細破變壓器 0 -2 0 0 11
2011-12-29 0:00:00 老細破變壓器 0 0 0 is is
2014-12-29 1:00:00 老細破變壓器 0 0 0 d V
201442-2? 2:00:00 j'5 老細破變圧器 0 0 0 4S
20U-12-29 3:00:00 老細破變壓器 0 Q ?2 -2
圖6.4電表小時電量界面圖
Fig. 6.4 UI of electricity meter by hour 在本系統的功能測試時,重點測試了以下方面:
(1)直觀性。用戶界面是否潔凈、不唐突、不擁擠,界面不應該為用戶制造障礙,
所需功能或者期待的響應應該明顯,并在預期出現的地方。界面組織和布局是否合理, 是否允許用戶輕松地從一個功能轉到另一個功能,下一步做什么、該如何做是否明顯, 是否任何時刻都可以決定放棄或者退回、退出,輸入是否得到承認。 '
(2)一致性。整個軟件是否使用同樣的術語,例如,電表信息是否一直都叫電表 信息,而不是表?添加的快捷鍵是否一致,例如“Enter”代表確定,“Esc”代表取消?整 個系統中的色調、字體大小、顏色、布局是否統一等等。
(3)靈活性。靈活的軟件實現同一任務有多種選擇方式,例如輸入查詢條件后, 輸入“Enter”等價于點擊“確定”按鈕;在DataGridView中,雙擊一行和單擊一行后再點擊 按鈕等效;在錄入信息界面,按下“Tab”時,活動光標自動跳到下一個控件中;數據輸 入時,既支持用戶直接用鍵盤輸入也支持復制、粘貼等。
功能測試時,也發現了一些界面布局、文字表達、顏色搭配等方面的問題,下面介 紹一下其中的典型問題:
(1)問題描述:查詢電表信息時,查詢得到的結果都用Label控件顯示,這些Label 控件和它們的對應標題字體的大小、顏色都一樣,不容易區分。
解決辦法:把所有的標題,例如“電表信息”的字體顏色設置為'HotTrack”,而所有 顯示查詢結果的Label,例如“西里鋪加壓一段”的字體顏色設置為“Black”。
(2)問題描述:執行完操作后,用Label輸岀的提示信息不夠明顯,用戶不能直 觀的判斷出操作結果。
解決辦法:把Label方式的提示信息改為使用MessageBox顯示,并根據不同的操 作結果設置不同的圖標,如果操作失敗,則設置為“Warning”,如操作成功,則設置為 "Information",如需電表信息,則設置為"Question"。
(3)問題描述:幾個頁面之間的風格不統一,其中包括窗體大小不一,重要控件 的顏色風格不一致,對于相似功能,有的添加了快捷鍵功能,有的沒有添加等。
解決辦法:制定UI規范,根據實際情況確定窗體大小為“900, 600”,所有相同類 型、同等地位的控件外觀一致,添加相同的快捷鍵功能,包捋"Enter”、“Esc”和“Tab”。
6.3測試結論
經過測試,本系統基本上可以無故障穩定運行,系統無論在功能還是性能等方面均 能滿足用戶要求。
具有良好的人機接口,使用方便,系統的界面友好、簡潔。經過功能測試,確定系 統可以被簡易的安裝并正常運行。
總之,通過測試,系統已實現了功能需求分析中的各個功能,系統簡單實用,具有 較快的響應速度、較強的安全性和容錯能力、良好的可維護性,基本滿足了預期的需求。
6.4本章小結
本章闡述了系統測試的相關工作。首先,對軟件測試進行了簡要介紹,然后詳細介 紹了系統的單元測試、集成測試、功能測試,其中包括對測試方法的介紹和一些測試用 例,并給岀了各個測試部分發現的典型問題,剖析了問題的原因,給出了相應的解決方 案。最后,根據各個測試得出了系統的測試結論。
第7章結論
7.1本文工作總結
開展礦業公司電能平衡工作,是全面系統摸清礦業公司的電力、電量消耗總量、構 成、分布、流向、用電設備的狀況利電能利用率,是加強能源科學管理、制訂節電規劃、 確定節能措施方案和提高能源合理利用水平的重要基礎工作。為此,在大力抓好電力建 設,增加供電能力的同時,必須加強用電需求的科學管理,采取技術上可行、經濟上合 理的節電措施,減少電能的直接和間接損耗,提高能源使用效率,以緩解礦業公司電力 供應階段性嚴重不足與合理使用問題。在確定用電體系的邊界內,對界外供給的電能量 在本用電體系內的輸送、轉換、分布、流向進行考察、測定、分析和研究,并建立供給 和損耗電量之間平衡關系的全過程,能夠完成每月各廠礦電量結算,做到單位平衡、線 路平衡和工藝平衡。根據近幾個月的電量數據,能夠為各設備用電起到統計分:折作用, 為礦業公司內部各單位經濟用電起到指導作用,統計分析的結果以報表、圖表的形式展 現出來,并提供打印功能。同時系統內的靈活設置,能方便的幫助用戶在業務改變時,做 出相應的調整,如換表操作、設備轉入轉出等,電量的計量準確無誤,查詢結果方便快捷。 系統用戶分權限設置,為不同的用戶分配不同的角色,不同的角色分配不同的操作頁面, 保證不同級別的用戶操作不同的功能頁面,增加數據的安全性。
本系統基于.NET開發框架,實現了電表基本信息管理、業務配置信息管理、電量 基本信息管理、結算信息管理、電量平衡信息管理及統計查詢信息管理功能等功能,為 兩級能源管理部門提供科學依據的同時,更是面向廣大職工,為廣大職工提供科學的參 考依據。在系統設計過程中,釆用了模塊化設計、面向對象、E-R圖設計等科學設計方 法,系統實現過程中使用.NET服務、COM組件等先進技術,經過不同階段的單元測試、 集成測試、功能測試和壓力測試,證實本系統實現的功能已經能夠滿足用戶的基本需求, 達到了預期目標。
現將本文工作總結如下:
(1) 深入研究了首鋼礦業公司電量平衡信息管理系統和ASP.NET技術的相關概 念、原理和應用方式。
(2) 詳細分析了現有系統運行中存在的不足,并據此得出本系統的需求分析及數 據流圖。
(3) 針對需求分析,提出了系統的總體設計方案。使用模塊法進行系統設計,使 用關系數據庫設計方法設計數據庫。
(4) 詳細討論了電表基本信息管理、電量基本信息管理及相關功能的實現方法。
(5)在系統開發的不同階段,進行了單元測試、集成測試、功能測試、壓力測試、 安裝測試。
較現行系統,本文所實現的系統增加了以下功能:
(1) 系統安全靈活的權限設置。通過角色的操作權限、權限與頁面對應關系的處 理功能頁面的權限驗證三個方能保護電表數據安全,同時解決了用戶因權限名稱變化而 帶來修改源代碼的問題,提高了系統的適應性。
(2) 根據數據庫記錄自動生成Word文檔和Excel文檔,直接提高了用戶的工作 效率。自動生成的文檔格式規范,在提高系統數據資料的利用率和共享性的同時,便于 用戶對文檔進行二次加工和重復使用。
(3) 文件的上傳和下載功能,使得各種報表可以保存在服務器上。這樣,不但提 高了數據的共享性,而且方便了用戶對文件的管理。
(4) 數據庫錯誤信息處理。在數據庫應用系統中,對記錄的增加、修改、刪除和 查詢等處理,都以用戶輸入的信息為依據,系統對用戶輸入的各種指令能夠及時做出回 應。當發生數據操作異常時,終止操作并將引發的錯誤信息以直觀的語言提示給用戶。
(5) 自動升級功能,不但解決了分布式系統的更新維護問題,而且降低了漏裝或 者錯裝的概率,并且不需要專業人士進行升級,減少了人力資源的浪費。
7.2進一步工作展望
本系統已經基本滿足了用戶需求,但是在試運行階段,用戶針對當前系統提出了一 些需要改進的地方以及進一步的需求,主要包括以下幾個方面:
(1) 及時的信息推送功能,實現與手機APP功能結合,把系統中的重要數據, 如月底結算量,能夠實時推送到相關專業及主管領導的手機上去。
(2) 統計查詢功能更加詳細,目前雖然能夠實現按單位、工藝和線路等進行統計 查詢,但在各類圖表的使用上還有待提高。
在系統的實現過程中,為了使系統界面更加友好和易操作,采用了 jQueryEasyUI 的插件集合,而jQueryEasyUI的目標就是幫助web開發者更輕松的打造出功能豐富并 且美觀的UI界面。jQueryEasyUI的特點就是簡單但功能異常強大,開發產品時可節省 大量的時間和資源,不需要編寫復雜的javascript,也不需要對css樣式有深入的了解, 需要了解的只有一些簡單的html標簽。同時,jQueryEasyUI是服務器控件,減少了服 務器和客戶端的交互,大大提高了系統的運行效率,并且能夠做到頁面的局部刷新,防 止頁面在操作某個按鈕時,出現整個頁面的連續閃動的現象,增加了頁面的美觀度。
參考文獻
1.周建平,周建雄.節電技術及相關產品性能分析張家憲卩].能源研究與信息,2013年第2 期.
2.劉華杰,趙東.淺析能源與利用,科技創新與應用[J].2O13年第32期.
3.王武禮,楊華.基于B/S與三層C/S混合模式的MIS構建[J].青島理工大學學報,2007, 28(3): 101-104.
4.李建偉.計算機在能源管理自動化系統中的開發與應用[J].科技新能源,2000年第1期.
5.Taiming Hou,Shuheng Chen,Pin Liu. The Design and Realization of Management Information System of Substation based on .Net Framework[A]. The Fifth International Conference on Power Transmission & Distribution Technology 2005[C], 2005, 821-825.
6.艾迪明• .NET框架體系結構[J].計算機工程與應用,2003,39(2):174-176.
7.Chengyun Chu. Introduction to Microsoft .NET security [J], IEEE Security and Privacy, 2008, 6(6):73-7&
&任立軍,侯立剛,魏延良.COM與.NET互操作技術的研究及實現[J].遼寧石油化工大 學學報,2008, 28(2): 63-66.
9.余劍,崔W. COM Interop技術實現.Net平臺下對COM的訪問[J].微計算機信息,2006,
22(6): 272-274. *
10.臧澤帥,金海波,丁運亮.基于COM/DCOM的分布式優化設計系統[J].計算機工程, 2006, 32(19): 94-96.
11.Xuelei Wu, Chen Jia,Bi Lan. Research and application on .NET and COM integrated technology [A]. 2008 International Symposium on Intelligent Information Technology Application Workshops[C], 200& 1001-1004.
12.Qureshi Shehrzad. C#, COM objects, & interop services [developing ActiveX controls and COM objects in C#][J], Dr. Dobb's Journal, 2004, 29(9): SI-4.
13.李志毅,趙政.軟件復用與.NET及COM組件技術[J].微處理機,2006,27(6): 57-60.
14.Jonathan Chaffer, Karl Swedberg.jQuery 基礎教程[M].第二版.李松峰,盧玉平譯.北京: 人民郵電出版社2009.11.
15•閆真.富互聯網應用程序交互界面的設計模式及設計方法研究[D].華東大學.2010.
16.李建偉.計算機在能源管理自動化系統中的開發與應用[J].科技新能,2000年第1期.
17.Twala B, Cartwright M, Shepperd M. Comparison of various methods for handling incomplete data in software engineering databases[A], International Symposium on
Empirical Software Engineering[C], 2005, 105-114.
18.劉凱,胡仁杰.基于XML Web Service的新型C/S、B/S混合模式應用[J].計算機與現 代化,2008(7): 117-119.
19.李念強,張煥春,經亞枝.分布式應用集成模型——.NET遠程框架[J].計算機工程, 2002, 28(3): 267-269.
20.李敏波譯.C#高級編程(第4版)[M],北京:清華大學出版社,2006, 308-583.
21.Cyril S Ku, Thomas J Marlowe, Tatyana Budanskaya, Philip K. Kang. Software Engineering Design Patterns for Relational Databases [A], 2007 International Conference on Software Engineering Research & Practice (SERP 2007)[C], 2007, 333-339.
22.Masayuki Hirayama, Osamu Mizuno, Tohru Kikuno. Analysis of Software Test Item Generation - Comparison Between High Skilled and Low Skilled Engineers[J], 計算機科 學技術學報(英文版),2005,20(2): 250-257.
23黃晨,段永載.基于UML模型的嵌入式軟件測試用例生成方法[J].空間控制技術與應 用,2013年第1期.