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