版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 本科畢業(yè)論文</b></p><p> (科研訓(xùn)練、畢業(yè)設(shè)計(jì))</p><p> 題 目:唯信機(jī)械MIS系統(tǒng)分析和設(shè)計(jì)</p><p> ——商品資料設(shè)置模塊與庫(kù)存管理模塊</p><p><b> 姓 名:</b></p><p&g
2、t; 學(xué) 院:軟件學(xué)院</p><p><b> 系:</b></p><p> 專 業(yè):軟件工程</p><p><b> 年 級(jí): </b></p><p><b> 學(xué) 號(hào):</b></p><p> 指導(dǎo)教師(
3、校內(nèi)): 職稱: </p><p> 指導(dǎo)教師(校外): 職稱:</p><p> 年 月 日</p><p> 唯信機(jī)械MIS系統(tǒng)分析和設(shè)計(jì)</p><p> ——商品資料設(shè)置模塊與庫(kù)存管理模塊</p><p> [摘要] 隨著21 世紀(jì)
4、信息時(shí)代的到來,全球經(jīng)濟(jì)一體化進(jìn)程加快,市場(chǎng)競(jìng)爭(zhēng)日趨激烈,可以說,企業(yè)競(jìng)爭(zhēng)力的高低已經(jīng)完全取決于企業(yè)對(duì)信息的獲取和處理能力。企業(yè)的生存和發(fā)展必須依靠正確的決策,而決策的基礎(chǔ)就是信息。企業(yè)要準(zhǔn)確、快速地獲取和處理信息,信息化是必然的選擇。</p><p> 針對(duì)中小機(jī)械銷售行業(yè)以單據(jù)為基礎(chǔ)的運(yùn)營(yíng)方式的特點(diǎn),我們?cè)O(shè)計(jì)小組通過對(duì)市場(chǎng)的充分調(diào)查后,力求設(shè)計(jì)開發(fā)出這套唯信機(jī)械MIS系統(tǒng),通過對(duì)其進(jìn)貨、銷售、存貨的業(yè)務(wù)處理
5、,管理機(jī)械行業(yè)的日常流程,以期幫助該行業(yè)實(shí)現(xiàn)信息化。</p><p> 本文共分四個(gè)章節(jié),首先是引言;第一章介紹了系統(tǒng)的總的方案設(shè)計(jì),描述了設(shè)計(jì)要素及設(shè)計(jì)方法,并對(duì)系統(tǒng)的總體規(guī)劃進(jìn)行了介紹;第二章介紹了項(xiàng)目開發(fā)流程(項(xiàng)目總體設(shè)計(jì));第三章是項(xiàng)目的詳細(xì)設(shè)計(jì),主要介紹我負(fù)責(zé)的四個(gè)模塊的設(shè)計(jì)方案;第四章介紹開發(fā)中的難點(diǎn)以及解決方案;最后是結(jié)束語,總結(jié)了我在開發(fā)過程中的心得與體會(huì)。</p><p&g
6、t; [關(guān)鍵詞] 三層 應(yīng)用服務(wù)器 客戶端</p><p> Planning and Designing of WININFO Mechanical MIS System</p><p> ——Product Infomation Management and Storage Management Modules</p><p> [Abstract]
7、 With the arrival of the information age of 21st century, the process of integration of global economy is accelerated, have fiercer market competitions becoming , we can say level , enterprise of competitiveness depend
8、on enterprise obtaining and processing ability to message totally already. The existence and development of enterprises must depend on correct decision , and the foundation of decision is the information. Enterprises sho
9、uld obtain and deal with information accurately , </p><p> Sell the trade characteristic taking document as foundation operation way to medium and small machinery , we design group pass abundant investigati
10、on in market , is it is it develop these suit mechanical MIS system which name is WININFO to design to make every effort, through stocking up to it , sale , business treatment of the stock , manage the daily procedure of
11、 the mechanical trade, in the hope of helping this trade to realize the informationization.</p><p> This text divides four chapters altogether, first is the foreword ; Chapter one introduced the system'
12、s total programming that the gross's project design, described the design main factor and design method, and introduced the system's total programing;Chapter two introduced the relevant technology of the project
13、and introduction to the software; Chapter three recommended the project to develop the procedure; Chapter four introduce the difficult point and solution while developing ; And last, as </p><p> [Keyword]
14、Three-tier application server client</p><p><b> 目錄</b></p><p><b> 目錄1</b></p><p><b> 引言1</b></p><p> 第一章 方案設(shè)計(jì)2</p>&
15、lt;p> 1.1 設(shè)計(jì)原則2</p><p> 1.1.1 整體性保障原則:2</p><p> 1.1.2 合適性原則:2</p><p> 1.1.3 界面設(shè)計(jì)人性化原則2</p><p> 1.1.4 模塊化設(shè)計(jì)原則2</p><p> 1.1.5 權(quán)限細(xì)分原則2</p>
16、;<p> 1.2 運(yùn)行架構(gòu)2</p><p> 1.2.1 系統(tǒng)的開發(fā)環(huán)境3</p><p> 1.3 相關(guān)技術(shù)和運(yùn)行架構(gòu)介紹3</p><p> 1.3.1 Borland Delphi 7.0介紹3</p><p> 1.3.2 Microsoft SQL Server 2000簡(jiǎn)介4</p&g
17、t;<p> 1.3.3 三層應(yīng)用體系結(jié)構(gòu)介紹[2]5</p><p> 第二章 系統(tǒng)總體規(guī)劃7</p><p><b> 2.1需求概述7</b></p><p><b> 2.2系統(tǒng)功能7</b></p><p> 2.2.1功能模塊概述7</p>
18、<p> 2.2.2功能描述7</p><p><b> 2.3流程圖8</b></p><p> 2.3.1登錄流程8</p><p> 2.3.2進(jìn)入各個(gè)模塊的流程9</p><p> 第三章 模塊的具體實(shí)現(xiàn)10</p><p> 3.1應(yīng)用服務(wù)器的搭建10
19、</p><p> 3.1.1界面效果10</p><p> 3.1.2應(yīng)用服務(wù)器的設(shè)計(jì)流程11</p><p> 3.1.3應(yīng)用服務(wù)器的詳細(xì)設(shè)計(jì)13</p><p> 3.2客戶端架構(gòu)的搭建15</p><p> 3.2.1界面效果16</p><p> 3.2.2客戶端
20、的設(shè)計(jì)流程18</p><p> 3.2.3客戶端的詳細(xì)設(shè)計(jì)20</p><p> 3.3商品資料設(shè)置22</p><p> 3.3.1商品類別設(shè)置23</p><p> 3.3.2計(jì)量單位設(shè)置27</p><p> 3.3.3庫(kù)存單位換算設(shè)置28</p><p> 3.
21、3.4商品庫(kù)存設(shè)置30</p><p> 3.4庫(kù)存管理32</p><p> 3.4.1庫(kù)存明細(xì)查詢33</p><p> 3.4.2進(jìn)貨入庫(kù)34</p><p> 第四章技術(shù)難點(diǎn)、解決方案44</p><p> 4.1客戶端與應(yīng)用服務(wù)器的通信問題44</p><p>
22、 4.2關(guān)于使用臨時(shí)表的問題45</p><p> 4.3單據(jù)自動(dòng)編號(hào)的問題45</p><p><b> 結(jié)論46</b></p><p><b> 致謝語47</b></p><p><b> 參考文獻(xiàn)48</b></p><p>
23、<b> 引言</b></p><p> 面臨21世紀(jì)的機(jī)遇和挑戰(zhàn),如何高效運(yùn)作獲取新的經(jīng)濟(jì)增長(zhǎng)點(diǎn)已成為企業(yè)關(guān)注的焦點(diǎn)。實(shí)現(xiàn)信息化是企業(yè)由“傳統(tǒng)企業(yè)”轉(zhuǎn)變?yōu)椤艾F(xiàn)代化企業(yè)”的根本途徑。而要實(shí)現(xiàn)上述變革,就需要依靠高效率的、強(qiáng)有力的信息系統(tǒng)。企業(yè)只有實(shí)現(xiàn)了經(jīng)營(yíng)決策層、管理調(diào)度層、命令執(zhí)行層的信息有機(jī)集成,才能及時(shí)調(diào)整管理策略,最大限度地滿足市場(chǎng)需求,達(dá)到企業(yè)現(xiàn)代化集成管理的目的。</p
24、><p> 唯信機(jī)械行業(yè)MIS系統(tǒng)將機(jī)械企業(yè)供應(yīng)鏈(進(jìn)、銷、存)溶為一體,以提升企業(yè)管理水平、減少運(yùn)營(yíng)成本、簡(jiǎn)化業(yè)務(wù)流程并實(shí)現(xiàn)企業(yè)效益最大化為目的,將物流、資金流與信息流以及人力資源結(jié)合在一起,從而對(duì)企業(yè)進(jìn)行統(tǒng)一系統(tǒng)的管理,實(shí)現(xiàn)資源的優(yōu)化配置。系統(tǒng)將管理與軟件有機(jī)的結(jié)合起來,以簡(jiǎn)捷的操作、規(guī)范的流程、實(shí)用的功能、穩(wěn)定的性能、鮮明的行業(yè)特點(diǎn),幫助企業(yè)實(shí)現(xiàn)管理信息化。</p><p><b
25、> 第一章 方案設(shè)計(jì)</b></p><p><b> 1.1 設(shè)計(jì)原則</b></p><p> 1.1.1 整體性保障原則:</p><p> 系統(tǒng)的開發(fā)采取“總體規(guī)劃、分步實(shí)施”的開發(fā)策略。即在開發(fā)之初,小組先進(jìn)行總體的規(guī)劃(即總體分析與總體設(shè)計(jì)),然后在總體規(guī)劃的指導(dǎo)與約束下分組分步開發(fā)。</p>
26、<p> 1.1.2 合適性原則:</p><p> 高水平的設(shè)計(jì)師高就高在設(shè)計(jì)出恰好滿足客戶需求的軟件,并且使開發(fā)方和客戶方獲取最大的利益,而不是不惜代價(jià)設(shè)計(jì)出最先進(jìn)的軟件。[1]</p><p> 1.1.3 界面設(shè)計(jì)人性化原則</p><p> 人性化的界面設(shè)計(jì),簡(jiǎn)單明了的操作方式,使一般用戶無需培訓(xùn)即可使用。</p><
27、;p> 1.1.4 模塊化設(shè)計(jì)原則</p><p> 系統(tǒng)采用模塊化的設(shè)計(jì)模式,使功能結(jié)構(gòu)具有很好的伸縮性,設(shè)計(jì)人員還可根據(jù)實(shí)際情況擴(kuò)展模塊。</p><p> 1.1.5 權(quán)限細(xì)分原則</p><p> 系統(tǒng)采用獨(dú)特的權(quán)限管理設(shè)計(jì),將現(xiàn)實(shí)中的組織結(jié)構(gòu)與網(wǎng)絡(luò)教學(xué)中的角色定義有機(jī)地統(tǒng)一起來,將權(quán)限設(shè)置直接應(yīng)用于平臺(tái)權(quán)限管理之中,對(duì)應(yīng)的權(quán)限與關(guān)系自動(dòng)建立。
28、</p><p><b> 1.2 運(yùn)行架構(gòu)</b></p><p> 1.2.1 系統(tǒng)的開發(fā)環(huán)境</p><p> 表1-1 系統(tǒng)開發(fā)環(huán)境</p><p> 圖1-1 系統(tǒng)運(yùn)行架構(gòu)圖</p><p> 1.3 相關(guān)技術(shù)和運(yùn)行架構(gòu)介紹</p><p> 1.3.
29、1 Borland Delphi 7.0介紹</p><p> Delphi是windows平臺(tái)上最好的RAD(Rapid Application Development,快速應(yīng)用開發(fā))工具之一。它提供了一個(gè)完全可視化的開發(fā)環(huán)境,以直觀的界面、簡(jiǎn)潔的語言、強(qiáng)大的功能和開放的系統(tǒng)為特色。它的出現(xiàn),使得開發(fā)軟件成為了一種樂趣。</p><p> 在RAD開發(fā)工具當(dāng)中,Delphi的能力恐怕
30、是最為全面的。用Borland的話來說,它具有開發(fā)任何Windows程序的能力。由于其開放而優(yōu)秀的控件體系,Delphi任何能力方面的不足都可以由其控件來增強(qiáng)。</p><p> 在Delphi中,與數(shù)據(jù)庫(kù)相關(guān)的控件大致可分為三類:</p><p> 數(shù)據(jù)存取控件,用于從數(shù)據(jù)庫(kù)中取得數(shù)據(jù)和修改數(shù)據(jù)庫(kù)中的數(shù)據(jù)</p><p> 數(shù)據(jù)控制控件,將數(shù)據(jù)存取控件的功能
31、以可視的方式提供給用戶使用</p><p> 報(bào)表控件,提供數(shù)據(jù)庫(kù)中的報(bào)表打印、預(yù)覽等功能</p><p> 可貴的是每一類控件都有多種實(shí)現(xiàn)。使用Delphi,程序員能夠方便地利用BDE、ODBC和ADO等數(shù)據(jù)引擎,能夠利用dbExpress或SQL Link訪問多種商業(yè)數(shù)據(jù)庫(kù)管理系統(tǒng)。盡管能夠處理如此多種多樣的數(shù)據(jù)連接,但是程序員使用它們的方式都是類似的。這要?dú)w功于Delphi面向?qū)?/p>
32、象的開發(fā)方式,在大多數(shù)時(shí)候,Delphi程序員可以忽略各數(shù)據(jù)庫(kù)的細(xì)微不同之處,并采用相同的數(shù)據(jù)控制控件來使用它們。</p><p> 1.3.2 Microsoft SQL Server 2000簡(jiǎn)介</p><p> 1.3.2.1 Microsoft SQL Server 2000的體系結(jié)構(gòu)</p><p> Microsoft SQL Server 2
33、000是基于客戶端/服務(wù)器模式的新一代大型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS),它在電子商務(wù)、數(shù)據(jù)倉(cāng)庫(kù)和數(shù)據(jù)庫(kù)解決方案等應(yīng)用中起著重要的核心作用,可為企業(yè)的數(shù)據(jù)管理提供強(qiáng)大的支持,對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)提供有效的管理,并采用有效的措施實(shí)現(xiàn)數(shù)據(jù)的完整性及數(shù)據(jù)的安全性。</p><p> Microsoft SQL Server 2000是一個(gè)基于C/S模式的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),如圖1-2所示。</p><
34、;p> 圖1-2 SQL Server 2000 C/S模式結(jié)構(gòu)示意圖</p><p> Microsoft SQL Server 2000采用C/S體系結(jié)構(gòu)把所有的工作負(fù)荷分解為服務(wù)器上的任務(wù)和客戶端任務(wù)??蛻舳藨?yīng)用程序負(fù)責(zé)商業(yè)邏輯和向用戶提供數(shù)據(jù),服務(wù)器負(fù)責(zé)對(duì)數(shù)據(jù)庫(kù)的數(shù)據(jù)進(jìn)行操作和管理。客戶端(又稱前臺(tái))應(yīng)用程序包含顯示與用戶交互的界面,而對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行處理描述成Transact-SQL語句(
35、簡(jiǎn)稱T-SQL語句),并將T-SQL語句送至服務(wù)器端(又稱后臺(tái)),后臺(tái)的SQL Server執(zhí)行該T-SQL語句后,產(chǎn)生查詢結(jié)果,并將結(jié)果返回給客戶端的應(yīng)用程序。T-SQL是SQL Server使用的一種數(shù)據(jù)庫(kù)查詢和編程語言,它除了包含標(biāo)準(zhǔn)的SQL語句外,還增加了一些非標(biāo)準(zhǔn)的SQL語句,使其功能更強(qiáng)大。使用T-SQL語言可建立、修改、查詢和管理關(guān)系數(shù)據(jù)庫(kù)。</p><p> 1.3.2.2 存儲(chǔ)過程</p
36、><p> 在SQL Server中,可以定義子程序存放在數(shù)據(jù)庫(kù)中,這樣的子程序稱為存儲(chǔ)過程,存儲(chǔ)過程是數(shù)據(jù)庫(kù)對(duì)象之一。使用存儲(chǔ)過程的優(yōu)點(diǎn)如下:</p><p> 1.存儲(chǔ)過程在服務(wù)器端運(yùn)行,執(zhí)行速度快。</p><p> 2.存儲(chǔ)過程執(zhí)行一次后,其執(zhí)行規(guī)劃就駐留在高速緩沖存儲(chǔ)器,在以后的操作中,只需從高速緩沖存儲(chǔ)器中調(diào)用已編譯好的二進(jìn)制代碼執(zhí)行,提高了系統(tǒng)性能。
37、</p><p> 3.確保數(shù)據(jù)庫(kù)的安全。使用存儲(chǔ)過程可以完成所有的數(shù)據(jù)庫(kù)操作,并可通過編程方式控制上述操作對(duì)數(shù)據(jù)庫(kù)信息訪問的權(quán)限。</p><p> 自動(dòng)完成需要預(yù)先執(zhí)行的任務(wù)。存儲(chǔ)過程可以在系統(tǒng)啟動(dòng)時(shí)候自動(dòng)執(zhí)行,而不必在系統(tǒng)啟動(dòng)后再進(jìn)行手工操作,大大方便了用戶的使用,可以自動(dòng)完成一些需要預(yù)先執(zhí)行的任務(wù)。用戶存儲(chǔ)過程只能定義在當(dāng)前數(shù)據(jù)庫(kù)中,可以使用SQL命令語句或SQL Server
38、的企業(yè)管理器創(chuàng)建存儲(chǔ)過程</p><p> 1.3.3 三層應(yīng)用體系結(jié)構(gòu)介紹[2]</p><p> 面對(duì)不斷增長(zhǎng)的應(yīng)用和信息服務(wù)需求,傳統(tǒng)的軟件設(shè)計(jì)模式C/S(Client/Server) 變得越來越不適應(yīng)這種增長(zhǎng),三層應(yīng)用體系結(jié)構(gòu)的產(chǎn)生,就是為了解決越來越龐大和復(fù)雜的客戶端使得網(wǎng)絡(luò)通信和軟件的維護(hù)變得非常困難和昂貴所帶來的問題。在三層應(yīng)用體系結(jié)構(gòu)中,整個(gè)系統(tǒng)是由三個(gè)部分組成: 客戶
39、機(jī)、應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器??蛻魴C(jī)上只需安裝應(yīng)用程序,它負(fù)責(zé)處理與用戶的交互和與應(yīng)用服務(wù)器的交互。應(yīng)用服務(wù)器負(fù)責(zé)處理應(yīng)用邏輯,具體地說就是接受客戶機(jī)方應(yīng)用程序的請(qǐng)求,然后根據(jù)應(yīng)用邏輯將這個(gè)請(qǐng)求轉(zhuǎn)化為數(shù)據(jù)庫(kù)請(qǐng)求后與數(shù)據(jù)庫(kù)服務(wù)器交互,并將與數(shù)據(jù)庫(kù)服務(wù)器交互的結(jié)果傳送給客戶機(jī)方的應(yīng)用程序。數(shù)據(jù)庫(kù)服務(wù)器軟件根據(jù)應(yīng)用服務(wù)器發(fā)送的請(qǐng)求進(jìn)行數(shù)據(jù)庫(kù)操作,并將操作的結(jié)果傳送給應(yīng)用服務(wù)器。由于上述三層在邏輯上是相互獨(dú)立的,因此,在某一層內(nèi)所進(jìn)行的變更,對(duì)
40、于其他的兩層而言是透明的,所以這種結(jié)構(gòu)可以很好地適應(yīng)復(fù)雜而又頻繁變化的商業(yè)應(yīng)用系統(tǒng)。通過了解用戶對(duì)系統(tǒng)的實(shí)際需求,軟件的規(guī)模以及實(shí)現(xiàn)效果,選擇三層分布式應(yīng)用體系結(jié)構(gòu),最終目的是為用戶提供一套較完整和實(shí)用可靠的行業(yè)管理軟件。三層應(yīng)用軟件體系結(jié)構(gòu)如圖1-3所示。</p><p> 圖1-3 三層應(yīng)用軟件體系結(jié)構(gòu)圖</p><p> 多層分布式系統(tǒng)主要的優(yōu)點(diǎn)有:</p><
41、;p><b> 1、業(yè)務(wù)規(guī)則集中</b></p><p> 在傳統(tǒng)的客戶/服務(wù)器系統(tǒng)中,因?yàn)閿?shù)據(jù)處理工作在每個(gè)客戶端,所以每個(gè)客戶應(yīng)用程序都要知道業(yè)務(wù)處理規(guī)則。這不僅增加了客戶端的大小,使之不是“瘦”客戶;而且還增加了軟件開發(fā)人員進(jìn)行軟件改進(jìn)的難度。當(dāng)客戶端的程序進(jìn)行更新時(shí),如果客戶端太多的話,很難保證每個(gè)客戶端的程序及時(shí)更新,從而使他們不能執(zhí)行一致的業(yè)務(wù)規(guī)則,結(jié)果會(huì)導(dǎo)致數(shù)據(jù)的邏輯
42、錯(cuò)誤。把業(yè)務(wù)規(guī)則放在應(yīng)用服務(wù)器上,則只需要?jiǎng)?chuàng)建和維護(hù)一個(gè)業(yè)務(wù)規(guī)則的副本,每個(gè)使用該應(yīng)用服務(wù)器的用戶都執(zhí)行相同的業(yè)務(wù)規(guī)則。</p><p><b> 2、瘦客戶端</b></p><p> 傳統(tǒng)的客戶/服務(wù)器系統(tǒng)因?yàn)閷?duì)數(shù)據(jù)的處理大部分放在客戶端,所以一般都加重了自身的負(fù)擔(dān)。這樣不僅增長(zhǎng)了可執(zhí)行文件,而且使客戶機(jī)的負(fù)擔(dān)增長(zhǎng),對(duì)它的工作性能有很大的影響。以一個(gè)訪問SQL
43、 Server數(shù)據(jù)庫(kù)的Delphi應(yīng)用程序?yàn)槔蛻粜枰惭b訪問數(shù)據(jù)庫(kù)所需的BDE、SQL Links或ODBC,以及訪問SQL Sever所需的動(dòng)態(tài)鏈接庫(kù),安裝完這些文件后,還要進(jìn)行正確的配置,這使安裝過程變得非常復(fù)雜,客戶機(jī)對(duì)這么多的任務(wù)也很難承受。如果使用Midas,數(shù)據(jù)訪問由應(yīng)用服務(wù)器來完成,與用戶的交互則由客戶端應(yīng)用程序來完成。這意味著只需要發(fā)布客戶應(yīng)用程序和一個(gè)用來訪問服務(wù)器的接口就可以了,而且客戶端的一部分任務(wù)分給了應(yīng)用服
44、務(wù)器,很大程度上減輕了客戶端的負(fù)荷,使它可以更好地為用戶服務(wù),這就是瘦客戶體系結(jié)構(gòu)。</p><p><b> 3、錯(cuò)誤處理</b></p><p> 如果由于不可預(yù)料的環(huán)境導(dǎo)致服務(wù)器不能使用,那么就可以動(dòng)態(tài)切換到備份服務(wù)器而不需要重新編譯客戶或服務(wù)器端的應(yīng)用程序,保證系統(tǒng)的正常運(yùn)行。這種功能正趨向于成為分布式系統(tǒng)不可缺少的一部分功能,多層分布式系統(tǒng)已經(jīng)初步具有這
45、種能力了。</p><p><b> 4、均衡負(fù)載</b></p><p> 采用分布式數(shù)據(jù)處理過程,將一個(gè)應(yīng)用程序要處理的任務(wù)分在幾臺(tái)機(jī)器上進(jìn)行處理,從而提高了程序執(zhí)行的性能。</p><p> 當(dāng)多個(gè)客戶端應(yīng)用程序訪問服務(wù)器時(shí),顯然要大量占用服務(wù)器資源。有兩種平衡服務(wù)器的方法,靜態(tài)負(fù)載平衡和動(dòng)態(tài)負(fù)載平衡。對(duì)于靜態(tài)負(fù)載平衡,需要增加另一
46、臺(tái)服務(wù)器,讓一半用戶使用服務(wù)器A,另一半使用服務(wù)器B。但是,如果使用服務(wù)器A的用戶比使用服務(wù)器B的用戶產(chǎn)生的壓力大時(shí)怎么辦呢?使用動(dòng)態(tài)負(fù)載平衡,可以解決這個(gè)問題,服務(wù)器A檢測(cè)到它的壓力比較大時(shí),就把一部分任務(wù)交給服務(wù)器B,有許多動(dòng)態(tài)負(fù)載平衡的算法可以用來進(jìn)行服務(wù)器的負(fù)擔(dān)檢測(cè)。</p><p> 5、提高了數(shù)據(jù)的安全性</p><p> 將不同的數(shù)據(jù)功能封裝成一定的中間層,并且授予不同的
47、訪問權(quán)限,這樣就能保證對(duì)數(shù)據(jù)的訪問限制。使用Delphi中的MTS或者COBRA技術(shù)可以支持這項(xiàng)功能。</p><p> 基于以上開發(fā)工具的優(yōu)點(diǎn)以及軟件性能的考慮,本系統(tǒng)前臺(tái)使用Borland Delphi7.0,后臺(tái)數(shù)據(jù)庫(kù)采用Microsoft SQL Server 2000 sp3,數(shù)據(jù)庫(kù)的連接技術(shù)則使用ADO,并采用三層分布式的體系架構(gòu)進(jìn)行設(shè)計(jì)。鑒于Delphi有著強(qiáng)大的第三方控件的支持,同時(shí)本著用戶交互
48、界面友好,界面統(tǒng)一、清晰的原則,我們開發(fā)小組使用了一些第三方控件,具體如下:</p><p> 1、VCLSkin 3.02 換膚控件,可以支持多種皮膚,并能將官方可視化控件進(jìn)行換膚,不需要編寫一條語句</p><p> 2、ScrollText_V1.03 字幕滾動(dòng)控件,可以輕松實(shí)現(xiàn)字幕的左右或是上下的滾動(dòng),使用它,可以輕松實(shí)現(xiàn)公告消息的滾動(dòng)效果</p><p&g
49、t; 3、MxOutlookBar 2.13 滑動(dòng)工具條控件,可以實(shí)現(xiàn)OUTLOOK風(fēng)格和QQ風(fēng)格的菜單,該控件功能強(qiáng)大,操作簡(jiǎn)單,能為系統(tǒng)友好界面增色不少。</p><p> 4、EhLib 類似于delphi中Data Control組件欄的各種控件,能夠彌補(bǔ)官方數(shù)據(jù)感知控件的不足</p><p> 5、SncCurrency 貨幣編輯控件,使用它嵌入到DBGrid中能夠?qū)崿F(xiàn)財(cái)務(wù)
50、憑證貨幣欄的效果</p><p> 6、貨幣轉(zhuǎn)換大寫控件 該組件由國(guó)人開發(fā),能夠?qū)⒕庉嬁蚶锩娴臄?shù)字轉(zhuǎn)成金額的大寫效果,方便國(guó)人的習(xí)慣</p><p> 第二章 系統(tǒng)總體規(guī)劃</p><p><b> 2.1需求概述</b></p><p> 唯信機(jī)械MIS系統(tǒng)是一個(gè)信息傳遞的過程,通過網(wǎng)絡(luò)技術(shù),使每一位業(yè)務(wù)處理
51、的參與者能有效的了解、掌握進(jìn)、銷、存對(duì)應(yīng)環(huán)節(jié)的動(dòng)態(tài)信息并及時(shí)地傳遞出自己的信息,有利于業(yè)務(wù)的鏈?zhǔn)教幚恚?shí)現(xiàn)企業(yè)的初步信息化。</p><p><b> 2.2系統(tǒng)功能</b></p><p> 2.2.1功能模塊概述</p><p> 唯信機(jī)械MIS系統(tǒng)由以下若干模塊組成:資料管理、業(yè)務(wù)管理、財(cái)務(wù)管理、員工管理、系統(tǒng)維護(hù)等。主要模塊均具
52、有自動(dòng)安裝、用戶自由定制、模塊自動(dòng)升級(jí)等能力。 </p><p> 模塊可以根據(jù)實(shí)際用戶需求進(jìn)行功能組合,適應(yīng)不同用戶的需求,并由管理員進(jìn)行集中的使用權(quán)限管理。整個(gè)系統(tǒng)具有很強(qiáng)的擴(kuò)展能力和靈活性,符合當(dāng)前計(jì)算機(jī)技術(shù)的發(fā)展方向。所有模塊都具有很靈活的接口,為系統(tǒng)管理員提供了修改、配置的能力,滿足用戶的要求。(基本模塊設(shè)置如圖2-1所示)</p><p> 圖2-1 功能模塊圖&
53、lt;/p><p><b> 2.2.2功能描述</b></p><p><b> 資料管理</b></p><p> 包括本單位資料、往來公司資料、商品資料三個(gè)模塊。本單位資料包括員工資料設(shè)置、倉(cāng)庫(kù)資料設(shè)置、部門信息設(shè)置以及職稱信息設(shè)置。往來公司資料包括行業(yè)類型設(shè)置、地區(qū)資料設(shè)置、客戶信用度設(shè)置和公司基本資料設(shè)置。商品
54、資料設(shè)置包括商品類別設(shè)置、計(jì)量單位設(shè)置、庫(kù)存單位換算設(shè)置和商品庫(kù)存設(shè)置。用戶成功登陸之后可以在資料管理的各個(gè)具體模塊中對(duì)本系統(tǒng)的基本信息進(jìn)行詳細(xì)的設(shè)置,可以進(jìn)行增加、刪除、修改、查找等操作,以便為該MIS系統(tǒng)提供基本的數(shù)據(jù)基礎(chǔ)。</p><p><b> 業(yè)務(wù)處理</b></p><p> 這是本系統(tǒng)的核心模塊,具體包括進(jìn)貨管理、銷售管理和庫(kù)存管理。進(jìn)貨管理包括進(jìn)
55、貨詢價(jià)、進(jìn)貨報(bào)價(jià)、進(jìn)貨單、進(jìn)貨退貨四個(gè)模塊。銷售管理包括銷售報(bào)價(jià)、銷售單和銷售退貨。進(jìn)貨和銷售都離不開庫(kù)存的管理,因此庫(kù)存管理模塊包括進(jìn)貨入庫(kù)、進(jìn)貨退貨出庫(kù)、銷售出庫(kù)、銷售退貨入庫(kù)以及庫(kù)存明細(xì)查詢五個(gè)模塊。通過進(jìn)、銷、存這三個(gè)模塊,實(shí)現(xiàn)商品流通過程各個(gè)環(huán)節(jié)中的實(shí)時(shí)數(shù)據(jù)采集、實(shí)時(shí)數(shù)據(jù)監(jiān)測(cè)和調(diào)整,并根據(jù)需要即時(shí)進(jìn)行信息分析,從而幫助企業(yè)實(shí)現(xiàn)信息化,提高競(jìng)爭(zhēng)力。</p><p><b> 財(cái)務(wù)處理</
56、b></p><p> 財(cái)務(wù)管理模塊主要用于對(duì)資金進(jìn)行帳務(wù)管理,并對(duì)公司的業(yè)務(wù)處理進(jìn)行統(tǒng)計(jì)分析,內(nèi)容涉及公司的費(fèi)用、收入、資產(chǎn)等。系統(tǒng)能夠進(jìn)行業(yè)務(wù)處理應(yīng)收應(yīng)付款管理、現(xiàn)金費(fèi)用和一般費(fèi)用處理以及統(tǒng)計(jì)分析等一系列實(shí)用的功能。財(cái)務(wù)處理使成本核算清晰明了,大大減少手工的工作量,保證數(shù)據(jù)的統(tǒng)一性,減輕工作人員的勞動(dòng)強(qiáng)度和手工核算工作量。</p><p><b> 員工管理<
57、/b></p><p> 用來記錄員工的日常工作和相關(guān)活動(dòng),包括員工合同、員工考勤和員工出差報(bào)告等功能。系統(tǒng)可以通過增加、刪除或查詢,制定員工合同,記錄員工考勤和員工出差報(bào)告,管理員工的日常工作。</p><p><b> 系統(tǒng)維護(hù)</b></p><p> 系統(tǒng)管理是整個(gè)系統(tǒng)可靠安全運(yùn)行的重要保證,不僅提供對(duì)其他子系統(tǒng)或模塊的管理
58、功能,而且為整個(gè)系統(tǒng)提供一個(gè)好的運(yùn)行環(huán)境,以保證各個(gè)子系統(tǒng)能有效、協(xié)調(diào)和安全地工作。該模塊主要供系統(tǒng)管理人員使用,具體包括賬戶管理、消息管理以及系統(tǒng)維護(hù)三個(gè)模塊。在賬戶管理中,管理人員可以對(duì)用戶賬號(hào)、用戶密碼進(jìn)行增、刪、改等基本的設(shè)置,還能夠查詢用戶歷史在線信息、管理用戶實(shí)時(shí)在線等操作,同時(shí)還能夠?qū)τ脩暨M(jìn)行各項(xiàng)權(quán)限的設(shè)置。消息管理包括公告消息管理和個(gè)人消息管理,管理人員可以發(fā)布,修改公告消息,管理自己的個(gè)人消息。系統(tǒng)維護(hù)包括系統(tǒng)備份和系
59、統(tǒng)恢復(fù)兩項(xiàng)功能,從而保證數(shù)據(jù)的安全性和完整性。</p><p><b> 2.3流程圖</b></p><p><b> 2.3.1登錄流程</b></p><p> 圖2-2 登錄流程圖</p><p> 用戶進(jìn)入本系統(tǒng)前,首先要經(jīng)過登錄頁(yè)面進(jìn)行登錄,用戶輸入用戶名和對(duì)應(yīng)的密碼,系統(tǒng)進(jìn)行身
60、份驗(yàn)證,不通過時(shí),給出錯(cuò)誤信息,并禁止用戶進(jìn)入系統(tǒng)。當(dāng)驗(yàn)證通過進(jìn)入系統(tǒng),顯示系統(tǒng)主框架頁(yè)面,讀取本系統(tǒng)包括的模塊信息,提供模塊接口。</p><p> 2.3.2進(jìn)入各個(gè)模塊的流程</p><p> 圖2-3進(jìn)入各個(gè)模塊流程圖</p><p> 登錄到各個(gè)功能模塊之前進(jìn),根據(jù)用戶的登陸名進(jìn)行該功能模塊權(quán)限的驗(yàn)證。有權(quán)限才可能進(jìn)入,無此權(quán)限就跳轉(zhuǎn)到無此權(quán)限的頁(yè)面
61、對(duì)用戶進(jìn)行提示說明。</p><p> 用戶進(jìn)入該模塊后,做每一個(gè)操作都進(jìn)行權(quán)限判斷,禁止任何越權(quán)操作,有效地保護(hù)系統(tǒng)數(shù)據(jù)的安全性。</p><p> 第三章 模塊的具體實(shí)現(xiàn)</p><p> 在本系統(tǒng)中,我負(fù)責(zé)的模塊主要有:應(yīng)用服務(wù)器的搭建、客戶端架構(gòu)的搭建以及主界面的設(shè)計(jì)、資料管理中的商品資料設(shè)置模塊以及業(yè)務(wù)管理中的庫(kù)存管理模塊。</p>&
62、lt;p> 3.1應(yīng)用服務(wù)器的搭建</p><p> 三層分布式體系結(jié)構(gòu)的應(yīng)用服務(wù)器,其基礎(chǔ)是一個(gè)遠(yuǎn)程數(shù)據(jù)模塊(Remote Data Module),它能夠支持IAppServer接口。 客戶端正是使用IAppServer接口與應(yīng)用服務(wù)器上的供應(yīng)器(TDatasetProvider)通信,從而進(jìn)行各種數(shù)據(jù)操作。作為應(yīng)用服務(wù)器,起到的功能是客戶端與數(shù)據(jù)庫(kù)服務(wù)器之間的銜接作用。用戶可以通過輸入IP動(dòng)態(tài)連接
63、數(shù)據(jù)庫(kù)服務(wù)器,連接成功之后,可以實(shí)時(shí)查看客戶端的連接情況。</p><p><b> 3.1.1界面效果</b></p><p> 如下圖所示,為了體現(xiàn)機(jī)械行業(yè)的特色,我們使用了VCLSkin換膚控件,并選擇了一款具有金屬特色的皮膚,同時(shí)我們提供了菜單和按鈕兩種操作方式,整體界面簡(jiǎn)單、直觀。</p><p> 圖3-1 應(yīng)用服務(wù)器連接前的
64、效果</p><p> 圖3-2 應(yīng)用服務(wù)器連接后的效果</p><p> 圖3-3 查看在線用戶</p><p> 圖3-4最小化后縮小到任務(wù)欄的圖標(biāo)</p><p> 3.1.2應(yīng)用服務(wù)器的設(shè)計(jì)流程</p><p> 應(yīng)用程序服務(wù)器的數(shù)據(jù)庫(kù)連接模式流程如圖3-5所示。</p><p&g
65、t; 圖3-5 應(yīng)用服務(wù)器設(shè)計(jì)流程</p><p> 輸入:數(shù)據(jù)庫(kù)IP,數(shù)據(jù)庫(kù)名,用戶名,密碼</p><p><b> 處理:</b></p><p> 1、應(yīng)用服務(wù)器Logo界面啟動(dòng)后,出現(xiàn)應(yīng)用服務(wù)器的連接配置界面</p><p> 2、從菜單欄的選擇設(shè)置->連接,系統(tǒng)自動(dòng)從當(dāng)前目錄下的DB.ini配
66、置文件中讀取上次服務(wù)器成功配置后的信息,并寫入對(duì)應(yīng)的編輯框中,以方便用戶,當(dāng)然,用戶也可以自己手動(dòng)填寫配置信息</p><p> 3、填寫配置信息,用戶可以點(diǎn)擊測(cè)試連接或者確定按鈕,系統(tǒng)將根據(jù)用戶的選擇進(jìn)行對(duì)應(yīng)的處理</p><p> 4、若連接成功,將成功配置的各項(xiàng)信息寫入DB.ini文件,狀態(tài)欄出現(xiàn)數(shù)據(jù)庫(kù)服務(wù)器以及應(yīng)用服務(wù)器IP和主機(jī)的名稱,并開始計(jì)時(shí),測(cè)試連接按鈕變成了斷開連接,
67、若連接失敗,則給出提示</p><p> 5、連接成功之后,用戶可以選擇菜單查看->在線用戶,查看客戶端用戶的登陸情況,并能夠?qū)崟r(shí)刷新。可以點(diǎn)擊斷開連接按鈕,重新配置數(shù)據(jù)庫(kù)服務(wù)器。同時(shí),可以將應(yīng)用服務(wù)器最小化,則系統(tǒng)欄將出現(xiàn)應(yīng)用服務(wù)器的圖標(biāo),可以右擊鼠標(biāo)進(jìn)行相關(guān)操作</p><p> 輸出:配置成功之后的應(yīng)用服務(wù)器</p><p> 3.1.3應(yīng)用服務(wù)器
68、的詳細(xì)設(shè)計(jì)</p><p> 服務(wù)器端程序?qū)嶋H上是個(gè)COM 工程,它本身連接數(shù)據(jù)源,再通過接口與客戶端聯(lián)系,這個(gè)COM 工程必須注冊(cè)在服務(wù)器上。建立一個(gè)應(yīng)用服務(wù)器的關(guān)鍵是動(dòng)態(tài)連接數(shù)據(jù)庫(kù)服務(wù)器以及使用一個(gè)遠(yuǎn)程數(shù)據(jù)模塊,此外的工作和通常的數(shù)據(jù)庫(kù)應(yīng)用很類似。</p><p> 3.1.3.1動(dòng)態(tài)連接數(shù)據(jù)庫(kù)服務(wù)器的實(shí)現(xiàn)</p><p> 首先用Delphi新建一個(gè)應(yīng)用
69、程序(Application),系統(tǒng)會(huì)自動(dòng)生成一個(gè)頁(yè)面form,在窗體中添置一個(gè)ADO組件欄的ADOConnection控件(如圖3-6)</p><p> 圖3-6 添加ADOConnection組件</p><p> 并進(jìn)行一些必要的窗體設(shè)置后,窗體如圖3-7所示:</p><p> 圖3-7 應(yīng)用服務(wù)器的設(shè)計(jì)窗體</p><p>
70、 在這個(gè)應(yīng)用服務(wù)器配置窗體中,需要輸入數(shù)據(jù)庫(kù)服務(wù)器主機(jī)名(或者IP地址)、數(shù)據(jù)庫(kù)名、數(shù)據(jù)庫(kù)用戶名以及密碼,這些配置信息將用來連接數(shù)據(jù)庫(kù)服務(wù)器。如果連接成功,輸入的配置信息將被寫入到當(dāng)前目錄的DB.ini文件中,下次程序啟動(dòng)時(shí),可以通過連接按鈕讀取該文件的配置信息,就可以方便地連接應(yīng)用服務(wù)器程序了。</p><p> 3.1.3.2遠(yuǎn)程模塊的創(chuàng)建</p><p> Delphi共有四種
71、遠(yuǎn)程數(shù)據(jù)模塊,分別是遠(yuǎn)程數(shù)據(jù)模塊(TRemoteDataModule)、事務(wù)數(shù)據(jù)模塊(TMTSDataModule)、Corba數(shù)據(jù)模塊(TCorbaDataModule)以及SOAP數(shù)據(jù)模塊,TMTSDataModule用于建立MTS/COM+的應(yīng)用服務(wù)器,Corba主要面向Corba客戶端,SOAP主要支持于Web Service,由于本系統(tǒng)基于C/S架構(gòu),因此我們選用了最為普遍的TRemoteDataModule遠(yuǎn)程數(shù)據(jù)模塊。&l
72、t;/p><p> 從Delphi的菜單中選擇File->New->Other,出現(xiàn)New Items的對(duì)話框,單擊Multitier頁(yè)面,選擇Remote Data Module選項(xiàng),這樣就選擇了一個(gè)TRemoteDataModule遠(yuǎn)程數(shù)據(jù)模塊,如圖3-8所示:</p><p> 圖3-8 選擇遠(yuǎn)程模塊</p><p> 接下來是它的向?qū)渲媒缑妫?/p>
73、需要指定Coclass名字、實(shí)例類型、線程模型,如圖3-9所示:</p><p> 圖3-9遠(yuǎn)程模塊向?qū)?lt;/p><p> 在Coclass Name指定類名,程序?qū)⒔⒁粋€(gè)新的單元,它是TRemoteDataModule的派生,在此我們輸入Engine。Instancing是指定實(shí)例的類型,我們選擇默認(rèn)的Multiple Instance,這樣每個(gè)遠(yuǎn)程數(shù)據(jù)模塊是單個(gè)客戶端連接專有的,
74、但他們都共享同一進(jìn)程空間。在Threading Model中,選擇Apartment能夠確保遠(yuǎn)程數(shù)據(jù)模塊的任何實(shí)例在同一時(shí)間內(nèi)只服務(wù)于一個(gè)請(qǐng)求,這樣能夠避免線程沖突。</p><p> 到此,應(yīng)用服務(wù)器大體搭建完畢,運(yùn)行程序,應(yīng)用服務(wù)器將完成注冊(cè),此時(shí)系統(tǒng)將提供一個(gè)唯一的GUID值(如圖3-10),供客戶端連接驗(yàn)證。</p><p> 圖3-10 應(yīng)用服務(wù)器的GUID值</p&g
75、t;<p> 3.1.3.3在線用戶的查看</p><p> 為方便管理員查看在線用戶,應(yīng)用服務(wù)器提供查看在線用戶的功能,實(shí)現(xiàn)這項(xiàng)功能很簡(jiǎn)單,只需在數(shù)據(jù)庫(kù)中建一個(gè)表user_online_search_table(表3-1),客戶端一旦登陸,便在該表上增加一條記錄,登記用戶的賬戶名,用戶的IP,主機(jī)名和登陸時(shí)間,用戶退出時(shí),根據(jù)傳遞過來的賬戶名刪去這條信息。在應(yīng)用服務(wù)器斷只要查詢這個(gè)表就能夠查看
76、實(shí)時(shí)在線的用戶了,同時(shí)還能夠阻止用同一個(gè)賬號(hào)重復(fù)登陸。</p><p> 表3-1 用戶在線信息表user_online_search_table</p><p> 3.2客戶端架構(gòu)的搭建</p><p><b> 3.2.1界面效果</b></p><p> 圖3-11 客戶端主界面</p>&l
77、t;p> 圖3-12 客戶端選擇應(yīng)用服務(wù)器界面</p><p> 圖3-13 客戶端列舉網(wǎng)絡(luò)資源</p><p> 圖3-14用戶登陸界面</p><p> 圖3-15選擇用戶列表</p><p> 3.2.2客戶端的設(shè)計(jì)流程</p><p> 客戶端的流程圖大致如下:</p><
78、p> 圖3-16客戶端流程圖</p><p> 輸入:應(yīng)用服務(wù)器IP,端口號(hào),賬號(hào)名稱,密碼</p><p><b> 處理:</b></p><p> 1、客戶端Logo界面啟動(dòng)后,系統(tǒng)自動(dòng)讀取注冊(cè)表(HKEY_LOCAL_MACHINE\SOFTWARE\唯信機(jī)械MIS系統(tǒng)),如果里面存在相關(guān)信息,系統(tǒng)會(huì)自動(dòng)連接應(yīng)用服務(wù)器,如
79、果連接成功,會(huì)出現(xiàn)賬戶登錄界面,否則,系統(tǒng)會(huì)顯示連接應(yīng)用服務(wù)器的配置界面,用戶必須手動(dòng)輸入應(yīng)用服務(wù)器IP(或主機(jī)名),以及端口號(hào)(默認(rèn)211),當(dāng)然,用戶可以點(diǎn)擊右邊的刷新網(wǎng)絡(luò)資源選擇應(yīng)用服務(wù)器主機(jī)名進(jìn)行選擇,然后點(diǎn)擊確定,嘗試連接</p><p> 2、若連接成功,系統(tǒng)會(huì)將此次配置成功的信息寫入注冊(cè)表中,以便下次連接時(shí)使用,同時(shí)系統(tǒng)顯示用戶賬戶登錄界面,用戶可以點(diǎn)擊右邊的按鈕,在用戶列表的窗口中進(jìn)行選擇,也可
80、以手動(dòng)輸入賬號(hào)、密碼,進(jìn)行連接</p><p> 3、連接成功之后,出現(xiàn)客戶端主界面,界面底部狀態(tài)欄顯示系統(tǒng)時(shí)間和用戶名稱,右邊上部窗口顯示公告信息,而下面則是用戶的個(gè)人信息,它們都可以實(shí)時(shí)刷新。用戶可以選擇左邊的MXOutlook組件提供滑動(dòng)工具條進(jìn)入功能模塊,進(jìn)行相關(guān)的業(yè)務(wù)處理,也可以通過頂部的主菜單進(jìn)行操作,他們的效果是一樣的</p><p> 輸出:連接成功之后,顯示客戶端主界
81、面</p><p> 3.2.3客戶端的詳細(xì)設(shè)計(jì)</p><p> 對(duì)于最終用戶來說,三層體系結(jié)構(gòu)的客戶端和兩層結(jié)構(gòu)的沒有太大的區(qū)別。在結(jié)構(gòu)上,客戶端應(yīng)用程序看起來就像平面單層的應(yīng)用程序一樣,也是使用標(biāo)準(zhǔn)的數(shù)據(jù)顯示組件從客戶端數(shù)據(jù)集中獲取數(shù)據(jù)并和用戶進(jìn)行交互。但和兩層結(jié)構(gòu)不同的是,三層體系結(jié)構(gòu)中的客戶端應(yīng)用程序是通過應(yīng)用服務(wù)器提供的接口來和Provider通信,并獲取數(shù)據(jù)以及向應(yīng)用服務(wù)
82、器申請(qǐng)?zhí)峤桓聰?shù)據(jù)的。在通常情況下,這個(gè)接口就是IAppServer接口。</p><p> 3.2.3.1連接方式的選擇</p><p> 在Two-Tier模式中,客戶端程序是直接和數(shù)據(jù)庫(kù)服務(wù)器的數(shù)據(jù)源相連的,而Multi-Tier模式,多個(gè)客戶端連接的是應(yīng)用程序服務(wù)器,它們之間是通過IAppServer接口進(jìn)行通信的,而客戶端則是通過一個(gè)連接組件得到這個(gè)接口。在Delphi中,存
83、在著多種連接組件,它們對(duì)應(yīng)著不同的通信協(xié)議,對(duì)應(yīng)于應(yīng)用服務(wù)器上的不同種類的遠(yuǎn)程數(shù)據(jù)模塊,客戶端也需要不同的種類的連接組件,如下圖所示:</p><p> 圖3-17客戶端的連接方式</p><p> 由于應(yīng)用服務(wù)器所選用的遠(yuǎn)程數(shù)據(jù)模塊是RemoteDataModule,并且系統(tǒng)基于C/S架構(gòu),因此所選用的連接組件將是TDCOMConnection或TSocketConnection。T
84、DCOMConnection 提供了核心的NTLM的安全性和驗(yàn)證機(jī)制。在COM/DCOM里面我們可以很輕松地使用早聯(lián)編(early-binding)、 回調(diào)機(jī)制(callback)和連結(jié)點(diǎn)機(jī)制(ConnectionPoints)。 但是它的不利因素就是配置客戶端的DCOM和讓DCOM透過防火墻(FireWall)相當(dāng)麻煩.而相對(duì)于TDCOMConnection,TSocketConnection雖然不支持早聯(lián)編(early-bindin
85、g),但它無疑是最容易配置的連接方式,而且TSocketConnection只使用一個(gè)端口(默認(rèn)211)來進(jìn)行通訊,這樣如果在擁有防火墻的系統(tǒng)中,管理員會(huì)更樂意接受。在安裝中間層的機(jī)器上,只要運(yùn)行SCKTSRVR.EXE(如圖3-18)就可以和客戶端建立Socket的連接了。</p><p> 圖3-18 SCKTSRVR.EXE</p><p> 3.2.3.2搭建客戶端和應(yīng)用服務(wù)器
86、的連接</p><p> 使用File菜單下的New Application建立一個(gè)新應(yīng)用程序。將新建的form命名為e_main.pas,并在其中放置一個(gè)連接組件SocketConnection (TsocketConnection組件),如圖3-19,其IP屬性中本應(yīng)指定應(yīng)用程序服務(wù)器的IP地址,但由于要實(shí)現(xiàn)動(dòng)態(tài)連接應(yīng)用服務(wù)器,而且我們開發(fā)客戶端程序的時(shí)候必須注冊(cè)應(yīng)用服務(wù)器,所以為了開發(fā)方便,使用的是同一臺(tái)
87、,因此這里的IP地址選擇本機(jī)127.0.0.1。這樣在ServerName屬性中設(shè)置應(yīng)用程序服務(wù)器(在這里,應(yīng)用程序服務(wù)器就是上面創(chuàng)建的名為server.Engine的遠(yuǎn)程數(shù)據(jù)模塊),就可以定位應(yīng)用服務(wù)器和IAppServer接口。同時(shí)在Port屬性中取默認(rèn)值211與SCKTSRVR.EXE對(duì)應(yīng),如圖3-20。這樣客戶端的架構(gòu)就大體搭建完了。</p><p> 圖3-19選擇SocketConnection組件
88、 圖3-20 SocketConnetion1的屬性</p><p> 3.2.3.3動(dòng)態(tài)連接應(yīng)用服務(wù)器</p><p> 客戶端程序在運(yùn)行時(shí),需要連接應(yīng)用服務(wù)器程序以取得服務(wù)。但是,在系統(tǒng)實(shí)際應(yīng)用的時(shí)候,運(yùn)行應(yīng)用服務(wù)器程序的計(jì)算機(jī)是經(jīng)常改變的,因此在客戶端程序啟動(dòng)時(shí),應(yīng)該先找到運(yùn)行應(yīng)用服務(wù)器程序的計(jì)算機(jī)的設(shè)置。我們將這個(gè)配置信息存儲(chǔ)在windows系統(tǒng)的
89、注冊(cè)表中,(分支:HKEY_LOCAL_MACHINE\SOFTWARE\唯信機(jī)械MIS系統(tǒng)),客戶端啟動(dòng)時(shí)如果能夠找到配置信息,便進(jìn)行嘗試連接,連接成功則進(jìn)入用戶賬號(hào)登陸界面,如果連接失敗,則彈出應(yīng)用服務(wù)器配置界面重新配置。為了適應(yīng)這些界面的邏輯調(diào)度,我們決定把e_main.pas作為工程主頁(yè)面(客戶端一運(yùn)行即在后臺(tái)啟動(dòng),但不顯示),然后調(diào)用函數(shù)(ConnectAppServ)讀取注冊(cè)表進(jìn)行連接,連接成功則顯示賬戶的頁(yè)面,連接失敗則出
90、現(xiàn)客戶端配置界面,動(dòng)態(tài)連接應(yīng)用服務(wù)器的流程類似于上面提到的動(dòng)態(tài)數(shù)據(jù)庫(kù)服務(wù)器連接,在此不作贅述,具體請(qǐng)參看源代碼。</p><p> 成功登陸之后,將出現(xiàn)客戶端主界面,如圖所示,在客戶端主界面的設(shè)計(jì)中,我們?cè)谧筮叴绑w中放置了一個(gè)MxOutlookBar滑動(dòng)工具條控件,在中間頁(yè)面中使用了pagecontrol控件,這樣用戶可以通過操作類似outlook標(biāo)簽風(fēng)格的工具條選擇不同的功能模塊進(jìn)行操作。在右邊的窗體中則是公
91、告信息和個(gè)人信息。公告信息子窗體使用的是第三方控件ScrollText,它能夠按時(shí)間先后順序讀取表info_table里面記錄的前10條并進(jìn)行滾動(dòng)顯示。個(gè)人信息使用兩張基本相同的gif圖片,區(qū)別是一張?zhí)鴦?dòng),一張靜止,當(dāng)用戶登錄之后,如果表tip_table中有關(guān)于這位用戶的記錄,則裝入跳動(dòng)的gif的那張圖片,否則裝入靜止那一張。</p><p><b> 3.3商品資料設(shè)置</b><
92、/p><p> 根據(jù)需求,商品資料設(shè)置包括商品類別設(shè)置、計(jì)量單位設(shè)置、庫(kù)存單位換算設(shè)置和商品庫(kù)存設(shè)置,用戶可以點(diǎn)擊左邊滑動(dòng)工具菜單:資料管理->商品資料,進(jìn)入商品資料設(shè)置主界面:</p><p> 圖3-21商品資料設(shè)置主界面</p><p> 然后,用戶可以根據(jù)業(yè)務(wù)流程,用鼠標(biāo)點(diǎn)擊圖片進(jìn)入相應(yīng)的功能設(shè)置頁(yè)面。</p><p> 3
93、.3.1商品類別設(shè)置</p><p> 3.3.1.1數(shù)據(jù)庫(kù)設(shè)計(jì)</p><p> 根據(jù)需求,商品有大類小類之分,每種商品都隸屬于某個(gè)大類的商品之中,(例如深溝球軸承和調(diào)心球軸承隸屬于軸承類,YSH-A型混合機(jī)屬于混合機(jī)類) ,因此商品類別設(shè)置主要是管理商品的這些分類信息。</p><p> 表3-2 商品的大類信息表product_big_table<
94、/p><p> 表3-3 商品的小類信息表product_small_table</p><p> 為保持?jǐn)?shù)據(jù)的完整性,設(shè)置上述兩個(gè)表的數(shù)據(jù)關(guān)系(product_big_id與product_small_big_id),這樣對(duì)product_big_table進(jìn)行修改,product_small_table中涉及到的相關(guān)記錄也會(huì)做出相應(yīng)的改變</p><p> 圖
95、3-22 product_big_id與product_small_big_id關(guān)系圖</p><p> 由于本系統(tǒng)采用三層結(jié)構(gòu),對(duì)數(shù)據(jù)的查詢、增加、修改等均采用存儲(chǔ)過程來操作。對(duì)于數(shù)據(jù)庫(kù)運(yùn)算處理頻繁或數(shù)據(jù)運(yùn)算量較大的任務(wù),用存儲(chǔ)過程實(shí)現(xiàn),可以提高系統(tǒng)整體的運(yùn)行效率;此外,存儲(chǔ)過程在數(shù)據(jù)庫(kù)服務(wù)器端執(zhí)行,只將執(zhí)行結(jié)果返回到客戶端。在商品資料設(shè)置這個(gè)模塊中,涉及到的存儲(chǔ)過程有:得到商品小類信息-get_produc
96、t_small_info,商品大類信息的增加或修改-update_product_big_info,商品小類信息的增加或修改-update_product_small_info,查找商品信息-find_product_info。</p><p> 3.3.1.2詳細(xì)設(shè)計(jì)</p><p> 圖3-23 商品資料詳細(xì)信息設(shè)計(jì)頁(yè)面</p><p> 首先新建一個(gè)窗體
97、命名e_product.pas,在窗體里添加一個(gè)clientdataset組件,clientdataset1設(shè)置RemoteServer屬性值為main.SocketConnection1,這樣就通過應(yīng)用服務(wù)器連接上數(shù)據(jù)庫(kù),設(shè)置ProviderName屬性值為‘get_product_big_name_dsp’,指明其數(shù)據(jù)集供應(yīng)器來自于應(yīng)用程序服務(wù)器遠(yuǎn)程數(shù)據(jù)模塊的TDataSetProvider的名稱,這是多層數(shù)據(jù)庫(kù)應(yīng)用程序設(shè)計(jì)中最為關(guān)
98、鍵的屬性設(shè)置。然后,在服務(wù)端的遠(yuǎn)程數(shù)據(jù)模塊上設(shè)置好get_product_big_name_dsp的相關(guān)屬性,主要是Dataset屬性,它指向一個(gè)數(shù)據(jù)集組件,可以是TADOQuery(SQL查詢器),TADOTable(表),ADOStoreProc(存儲(chǔ)過程)等,這里我們添加一個(gè)TADOQuery組件命名為get_product_big_name_aq,將其SQL屬性設(shè)置為“select * from product_big_tabl
99、e”,然后將get_product_big_name_dsp的dataset屬性指向get_produc</p><p> 當(dāng)點(diǎn)擊增加或者雙擊編輯商品記錄時(shí),根據(jù)點(diǎn)擊對(duì)象的不同,會(huì)彈出“商品大類設(shè)置-詳細(xì)信息”或是“商品小類設(shè)置-詳細(xì)信息”頁(yè)面,如下圖所示:</p><p> 圖3-24商品大類設(shè)置設(shè)計(jì)</p><p> 圖3-25商品小類設(shè)置設(shè)計(jì)</p
100、><p> 由于這兩個(gè)頁(yè)面都是采用數(shù)據(jù)感知組件(DBedit、DBMemo等),可以自動(dòng)讀取要編輯的相應(yīng)記錄,用戶可以在頁(yè)面中進(jìn)行修改,當(dāng)單擊“保存”按鈕后,程序?qū)⑹紫热〕鼍庉嫏谥械母黜?xiàng)數(shù)據(jù)做為參數(shù),調(diào)用Server端提供的接口函數(shù)update_product_big和update_product_small進(jìn)行處理,服務(wù)端得到這些數(shù)據(jù)后,將其傳遞到數(shù)據(jù)庫(kù)中的存儲(chǔ)過程update_product_big_info和
101、update_product_small_info中進(jìn)行處理,從而達(dá)到更新數(shù)據(jù)的目的。這也是三層結(jié)構(gòu)表示層通過業(yè)務(wù)層處理數(shù)據(jù)的原理。</p><p> 其余的操作如查找、刪除與此類似,在次便不再贅述,請(qǐng)參看源代碼。</p><p> 3.3.2計(jì)量單位設(shè)置</p><p> 同一種商品在進(jìn)貨和銷售可能會(huì)使用到不同的計(jì)量單位,故應(yīng)對(duì)此進(jìn)行設(shè)置。此項(xiàng)功能設(shè)計(jì)以及下
102、面將要闡述的庫(kù)存單位換算設(shè)置和商品庫(kù)存設(shè)置與商品資料的管理基本相似,由于篇幅關(guān)系,故只給出數(shù)據(jù)庫(kù)的設(shè)計(jì)以及效果圖片,相關(guān)代碼請(qǐng)參看源代碼。</p><p> 3.3.2.1數(shù)據(jù)庫(kù)設(shè)計(jì)</p><p> 表3-3計(jì)量單位表measure_table</p><p> 涉及到的存儲(chǔ)過程有:得到計(jì)量單位信息-get_measure_info,計(jì)量單位信息的增加或修改
103、-update_measure_info</p><p> 3.3.2.2效果圖</p><p> 圖3-26計(jì)量單位錄入窗體</p><p> 圖3-27計(jì)量單位設(shè)置主界面</p><p> 3.3.3庫(kù)存單位換算設(shè)置</p><p> 由于商品在進(jìn)貨和銷售時(shí),面向的供貨單位或是客戶單位不同,因此使用的計(jì)量
104、單位可能有差別,而且可能同一種計(jì)量單位在不同公司的換算率會(huì)不同,比如在A公司,1包=30個(gè),而在B公司,1包則等于20個(gè),因此如果單純的設(shè)置計(jì)量單位間的換算關(guān)系,則要關(guān)聯(lián)公司的ID,相當(dāng)于為每一家往來公司設(shè)置一種換算律,這樣在庫(kù)存中的統(tǒng)計(jì)中會(huì)顯得非常的復(fù)雜。為了解決這個(gè)問題,我們?yōu)閹?kù)存設(shè)置了一個(gè)固定單位:“箱”,規(guī)定每種商品在入庫(kù)或出庫(kù)時(shí)都是按照這個(gè)固定單位和倉(cāng)庫(kù)ID查找數(shù)據(jù)庫(kù)中相應(yīng)的換算率進(jìn)行換算,這樣商品可以在進(jìn)貨和銷售時(shí)按照不同的
105、計(jì)量單位進(jìn)行進(jìn)貨和銷售業(yè)務(wù),而在庫(kù)存統(tǒng)計(jì)中又方便了管理,符合實(shí)際情況,也便于我們小組成員之間的分工。</p><p> 3.3.3.1數(shù)據(jù)庫(kù)設(shè)計(jì)</p><p> 表3-4庫(kù)存單位換算表depot_measure_table</p><p> 涉及到的存儲(chǔ)過程有:得到庫(kù)存單位換算信息-get_depot_measure_info,庫(kù)存單位換算信息的增加或修改-
106、update_depot_measure_info,庫(kù)存單位換算信息的查找find_depot_measure_info</p><p> 3.3.3.2效果圖</p><p> 圖3-28庫(kù)存單位換算設(shè)置主界面</p><p> 圖3-29庫(kù)存單位換算設(shè)置錄入窗體</p><p> 3.3.4商品庫(kù)存設(shè)置</p>&l
107、t;p> 庫(kù)存管理中很重要的一項(xiàng)的功能就是庫(kù)存預(yù)警功能,這需要為商品設(shè)置安全庫(kù)存和最高庫(kù)存,有了上述的庫(kù)存固定單位,就可以輕松的設(shè)置了。本系統(tǒng)可以為每種商品在不同的倉(cāng)庫(kù)設(shè)置不同的安全庫(kù)存和最高庫(kù)存。</p><p> 3.3.4.1數(shù)據(jù)庫(kù)設(shè)計(jì)</p><p> 表3-4商品庫(kù)存表depot_set_table</p><p> 根據(jù)需求,在庫(kù)存管理模塊
108、中,必須實(shí)現(xiàn)庫(kù)存明細(xì)查詢的功能,給出商品的ID和倉(cāng)庫(kù)的ID就必須能夠查詢?cè)摲N商品在對(duì)應(yīng)倉(cāng)庫(kù)中的現(xiàn)有庫(kù)存、進(jìn)貨均價(jià)和銷售均價(jià)。由于這兩張表的主鍵相同,如果單獨(dú)再新建另一張表,不免有些浪費(fèi)空間,因此我們?cè)谏唐穾?kù)存表depot_set_table中增加了現(xiàn)有庫(kù)存量now_depot,進(jìn)貨均價(jià)stock_average_price,銷售均價(jià)sale_average_price這三個(gè)字段,如果在商品庫(kù)存設(shè)置這個(gè)模塊中增加一條記錄,填入安全庫(kù)存和最
109、高庫(kù)存后,就把這三個(gè)字段值設(shè)為0,以便后面的庫(kù)存明細(xì)查詢模塊時(shí)使用。但在商品庫(kù)存頁(yè)面中不對(duì)這三個(gè)字段進(jìn)行顯示或編輯。</p><p> 涉及到的存儲(chǔ)過程有:得到商品庫(kù)存信息-get_depot_set_info,商品庫(kù)存信息的增加或修改-update_depot_set_info,商品庫(kù)存信息信息的查找find_depot_set_info</p><p> 3.3.4.2效果圖<
110、;/p><p> 圖3-30商品庫(kù)存設(shè)置主界面</p><p> 圖3-31商品庫(kù)存設(shè)置錄入窗體(1)</p><p> 當(dāng)然安全庫(kù)存不能超過最高庫(kù)存,如果超過,則在保存加個(gè)判斷給出提示,讓用戶重新設(shè)置。</p><p> 圖3-32商品庫(kù)存設(shè)置錄入窗體(2)</p><p><b> 3.4庫(kù)存管理&
111、lt;/b></p><p> 在MIS系統(tǒng)中,庫(kù)存管理的內(nèi)容就是商品入庫(kù)、出庫(kù)以及查詢庫(kù)存量,它是系統(tǒng)的中間環(huán)節(jié),反映了商品在企業(yè)內(nèi)流動(dòng)的客觀過程,庫(kù)存管理與進(jìn)貨和銷售管理都有著直接聯(lián)系。可以說它在其中起到了樞紐和基礎(chǔ)的重要作用。一方面,入庫(kù)和出庫(kù)的數(shù)量是由進(jìn)貨和銷售環(huán)節(jié)決定的,另一方面,它又反作用于進(jìn)貨和銷售管理。因此,有效的庫(kù)存管理,可以降低運(yùn)營(yíng)成本,進(jìn)而提高商品周轉(zhuǎn)率,增加利潤(rùn)。根據(jù)需求,庫(kù)存管理
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 唯信機(jī)械行業(yè)mis系統(tǒng)分析和設(shè)計(jì)——單位資料設(shè)置模塊與進(jìn)貨管理模塊
- 唯信機(jī)械行業(yè)mis系統(tǒng)分析和設(shè)計(jì)——單位資料設(shè)置模塊與進(jìn)貨管理模塊
- [畢業(yè)設(shè)計(jì)資料]庫(kù)存管理信息系統(tǒng)分析與設(shè)計(jì)
- 基于jsp的社區(qū)助老服務(wù)系統(tǒng)分析與設(shè)計(jì)—服務(wù)發(fā)布預(yù)定模塊和后臺(tái)管理模塊【文獻(xiàn)綜述】
- 基于jsp的社區(qū)助老服務(wù)系統(tǒng)分析與設(shè)計(jì)—服務(wù)發(fā)布預(yù)定模塊和后臺(tái)管理模塊【開題報(bào)告】
- 庫(kù)存管理數(shù)據(jù)挖掘系統(tǒng)分析與設(shè)計(jì).pdf
- 基于jsp的社區(qū)助老服務(wù)系統(tǒng)分析與設(shè)計(jì)—服務(wù)發(fā)布預(yù)定模塊和后臺(tái)管理模塊[任務(wù)書]
- 基于jsp的社區(qū)助老服務(wù)系統(tǒng)分析與設(shè)計(jì)—服務(wù)發(fā)布預(yù)定模塊和后臺(tái)管理模塊[畢業(yè)論文]
- 唯信機(jī)械行業(yè)mis系統(tǒng)設(shè)計(jì)與開發(fā)-畢業(yè)論文
- 機(jī)載電臺(tái)控制模塊自動(dòng)測(cè)試系統(tǒng)分析與設(shè)計(jì).pdf
- 物資庫(kù)存管理系統(tǒng)分析與建模.pdf
- 光纖總線系統(tǒng)分析及光收發(fā)模塊設(shè)計(jì)與測(cè)試.pdf
- 商品車物流系統(tǒng)分析設(shè)計(jì)
- 基于RFID技術(shù)的庫(kù)存管理系統(tǒng)分析與設(shè)計(jì).pdf
- mis課程設(shè)計(jì)報(bào)告---診所系統(tǒng)分析設(shè)計(jì)
- 噴繪企業(yè)信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)——庫(kù)存模塊、資源設(shè)置模塊---畢業(yè)論文
- 噴繪企業(yè)信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)——庫(kù)存模塊、資源設(shè)置模塊---畢業(yè)論文
- 虛擬參考實(shí)時(shí)咨詢系統(tǒng)分析設(shè)計(jì)及核心模塊實(shí)現(xiàn)(1)
- 基于php的gilt商城系統(tǒng)分析與設(shè)計(jì)——交易信息管理模塊 【文獻(xiàn)綜述】
- 基于php的gilt商城系統(tǒng)分析與設(shè)計(jì)——交易信息管理模塊【開題報(bào)告】
評(píng)論
0/150
提交評(píng)論