唯信機械行業(yè)MIS系統(tǒng)分析和設(shè)計論文_第1頁
唯信機械行業(yè)MIS系統(tǒng)分析和設(shè)計論文_第2頁
唯信機械行業(yè)MIS系統(tǒng)分析和設(shè)計論文_第3頁
唯信機械行業(yè)MIS系統(tǒng)分析和設(shè)計論文_第4頁
唯信機械行業(yè)MIS系統(tǒng)分析和設(shè)計論文_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 本科畢業(yè)論文(科研訓(xùn)練、畢業(yè)設(shè)計)題 目:唯信機械行業(yè)MIS系統(tǒng)分析和設(shè)計單位資料設(shè)置模塊與進貨管理模塊姓 名:王建森學(xué) 院:軟件學(xué)院系:專 業(yè):軟件工程年 級:03級學(xué) 號:03368035指導(dǎo)教師(校):王備戰(zhàn) 職稱:副教授指導(dǎo)教師(校外): 職稱:2005年 6月 3日- 37 - / 44唯信機械MIS系統(tǒng)的分析和設(shè)計單位資料管理模塊與進貨管理模塊摘要本文以唯信機械行業(yè)MIS系統(tǒng)(英文:WININFO MIS)設(shè)計與開發(fā)為背景,介紹該系統(tǒng)的總體設(shè)計,單位資料管理與進貨管理模塊的詳細設(shè)計。該系統(tǒng)是在分析目前機械行業(yè)日常流程與分析相關(guān)數(shù)據(jù)的基礎(chǔ)上,結(jié)合管理信息系統(tǒng)開發(fā)的概念與系統(tǒng)開發(fā)的基

2、本原理和方法,采用Client/Server架構(gòu),并利用中間服務(wù)器對數(shù)據(jù)進行合理有效的處理,使用Delphi7.0進行設(shè)計,以MS SQL Server 2000網(wǎng)絡(luò)數(shù)據(jù)庫技術(shù)作為其程序開發(fā)的底層數(shù)據(jù)庫,開發(fā)的一套管理信息系統(tǒng)。用戶可以使用客戶端程序在客戶機上訪問數(shù)據(jù)庫,通過執(zhí)行應(yīng)用服務(wù)器端的應(yīng)用程序,以滿足不同權(quán)限的用戶通過客戶端進行數(shù)據(jù)查詢和業(yè)務(wù)錄入,從而實現(xiàn)同網(wǎng)實時管理,數(shù)據(jù)實時傳輸。關(guān)鍵字應(yīng)用服務(wù)器 客戶端 多層 管理信息系統(tǒng) 控件Planning and designing of WININFO mechanical systemCompany datum management an

3、d stock management moduleAbstractThis thesis introduces the general frame of the system, and specifies at company datum management moduleand stocking module, based on the design and programming of WININFO MIS. This system aims at analyzing general business flow and related data in machine industry,

4、integrating with MIS concept and methods of software system development. With Delphi7.0 as development platform and Microsoft SQL server as database, the system is designed in three-tier client/server architecture, including user interface, application server and database management system. Users ac

5、cess database with user system interface through a middle tier-application server. Users input and queue data by sending message to middle tier, and then, owing to the role of the user, the middle tier retrieves data. This provides a real-time management and transaction.KeywordsMulti-tier applicatio

6、n server client MIS widget目錄第一章引言- 1 -第二章開發(fā)平臺、技術(shù)介紹- 2 -2.1 Delphi7.0- 2 -2.1.1 Delphi7.0簡介- 2 -2.1.2 Delphi7.0一些特性- 2 -2.2 Microsoft SQL Server 2000- 3 -2.2.1簡介- 3 -2.2.2特性- 3 -2.3 分布式多層結(jié)構(gòu)體系- 4 -第三章系統(tǒng)總體設(shè)計與分析- 6 -3.1 需求分析- 6 -3.2 運行環(huán)境- 6 -3.2.1硬件設(shè)備- 6 -3.2.2支持軟件- 6 -3.3 安全與可靠性設(shè)計- 7 -3.4 功能性需求分析- 7 -3

7、.5 模塊處理流程設(shè)計- 8 -3.6 數(shù)據(jù)庫設(shè)計- 9 -3.6.1 表設(shè)計- 9 -3.6.2 存儲過程- 9 -3.7 接口說明- 10 -第四章本單位資料管理和進貨管理的設(shè)計與實現(xiàn)- 11 -4.1系統(tǒng)整體模塊設(shè)計- 11 -4.2模塊詳細設(shè)計與分析- 11 -4.2.1服務(wù)器端- 11 -4.2.1.1 應(yīng)用服務(wù)器模式流程與配置- 11 -4.2.1.2遠程模塊的創(chuàng)建- 13 -4.2.2 客戶端架構(gòu)概述- 14 -4.2.3 本單位資料管理模塊- 17 -4.2.3.1 子模塊劃分與數(shù)據(jù)流圖- 17 -4.2.3.2 數(shù)據(jù)庫設(shè)計- 18 -4.2.3.3 本單位資料模塊詳細設(shè)計-

8、20 -4.2.4 進貨管理模塊- 23 -4.2.4.1 子模塊劃分與數(shù)據(jù)流圖- 23 -4.2.4.2 數(shù)據(jù)庫設(shè)計- 23 -4.2.4.3 子模塊詳細設(shè)計- 26 -第五章技術(shù)難點、解決方案- 32 -5.1 關(guān)于scktsrvr.exe- 32 -5.2 關(guān)于存儲過程中臨時表- 32 -5.3 單據(jù)自動編號- 33 -第六章結(jié)論- 34 -致語- 35 -參考文獻- 36 -第一章 引言面臨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è)只

9、有實現(xiàn)了經(jīng)營決策層、管理調(diào)度層、命令執(zhí)行層的信息有機集成,才能與時調(diào)整管理策略,最大限度地滿足市場需求,達到企業(yè)現(xiàn)代化集成管理的目的。而所謂MIS(管理信息系統(tǒng)-Management Information System)系統(tǒng) ,是一個由人、計算機與其他外圍設(shè)備等組成的能進行信息的收集、傳遞、存貯、加工、維護和使用的系統(tǒng)。目前,企業(yè)的計算機網(wǎng)絡(luò)已成為企業(yè)進行技術(shù)改造與提高企業(yè)管理水平的重要手段。隨著我國與世界信息高速公路的接軌,企業(yè)通過計算機網(wǎng)絡(luò)獲得信息必將為企業(yè)帶來巨大的經(jīng)濟效益和社會效益,企業(yè)的辦公與管理都將朝著高效、快速、無紙化的方向發(fā)展。唯信機械行業(yè)MIS系統(tǒng)將機械企業(yè)供應(yīng)鏈(進、銷、

10、存)與財務(wù)管理溶為一體,以提升企業(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)管理信息化。該系統(tǒng)通過業(yè)務(wù)單據(jù)、業(yè)務(wù)查詢、財務(wù)處理、決策分析等功能模塊為企業(yè)建立完善的經(jīng)營管理平臺,與嚴格的流程控制。通過商品多單位價格管理、進價與售價跟蹤、銷售價低于進價報警、庫存上下限報警、客戶信用額度控制、多倉庫管理、貨位管理與決策分析等功能,為企業(yè)提供良好的信息管理渠道,最大程度的保障企業(yè)

11、業(yè)務(wù)處理的流暢和安全,促進企業(yè)的高效運作。第二章 開發(fā)平臺、技術(shù)介紹2.1 Delphi7.02.1.1Delphi7.0簡介Delphi 7是Borland公司推出基于Object Pascal語言的一種可視化集成開發(fā)工具,它提供了一個高度可視化的集成開發(fā)環(huán)境,也被稱為IDE(Integrated Development Environment)。利用Delphi 7提供的集成開發(fā)環(huán)境可以快速、高效地開發(fā)出基于Windows環(huán)境的各類程序,與其他可視化的編程語言相比,Delphi提供的集成開發(fā)環(huán)境更具效率和人性化,可以大大縮短程序的開發(fā)時間。Delphi是windows平臺上最好的RAD(R

12、apid Application Development,快速應(yīng)用開發(fā))工具之一。它提供了一個完全可視化的開發(fā)環(huán)境,以直觀的界面、簡潔的語言、強大的功能和開放的系統(tǒng)為特色。它的出現(xiàn),使得開發(fā)軟件成為了一種樂趣。2.1.2Delphi7.0一些特性1. 全面的開發(fā)平臺在RAD開發(fā)工具當(dāng)中,Delphi的能力恐怕是最為全面的。用Borland的話來說,它具有開發(fā)任何Windows程序的能力。由于其開放而優(yōu)秀的控件體系,Delphi任何能力方面的不足都可以由其控件來增強。第三方廠商為Delphi提供了為數(shù)眾多的優(yōu)秀控件,Delphi的能力得到了相當(dāng)大的擴充。2. Delphi數(shù)據(jù)庫應(yīng)用程序的體系結(jié)構(gòu)

13、一個完整的數(shù)據(jù)庫應(yīng)用程序通常有以下幾個部分組成:用戶界面元素(數(shù)據(jù)控制控件)、數(shù)據(jù)源、數(shù)據(jù)集控件和數(shù)據(jù)庫連接控件。大體上的遵循的結(jié)構(gòu)都如圖2-1所示。數(shù)據(jù)集控件數(shù)據(jù)源控件連接控件用戶界面(數(shù)據(jù)控制控件)數(shù)據(jù)庫數(shù)據(jù)模塊應(yīng)用程序圖2-1 Delphi 數(shù)據(jù)庫程序基本結(jié)構(gòu)Delphi 7 有關(guān)數(shù)據(jù)庫操作的可視化控件的功能相當(dāng)強大,訪問數(shù)據(jù)庫的方有很多種:直接訪問,如訪問Paradox和DBASE數(shù)據(jù)庫;通過ODBC訪問,如訪問Access、Foxpro等數(shù)據(jù)庫;通過嵌(Native)方式訪問數(shù)據(jù)庫,如訪問SQL Server、Oracle、DB2;通過Express方式直接訪問數(shù)據(jù)庫;通過ADO方式

14、訪問數(shù)據(jù)庫等。而唯信機械MIS系統(tǒng)正是通過ADO方式訪問數(shù)據(jù)庫的。ADO(Active Data Object)是采用直接訪問技術(shù),是微軟公司所推出的一套數(shù)據(jù)庫訪問規(guī)。采用ADO的優(yōu)點主要有3點:第一,速度快占用存小,主要因為它直接使用操作系統(tǒng)的API函數(shù);第二,它支持目前最為熱門的Web應(yīng)用開發(fā);第三,它支持RDS(Remote Data Service),即通過客戶端程序直接從遠程服務(wù)器中把數(shù)據(jù)讀取到客戶端待客戶端處理完這些數(shù)據(jù)后,再將修改后的數(shù)據(jù)返回遠程服務(wù)器。2.2 Microsoft SQL Server 20002.2.1簡介Microsoft SQL Server 2000是基于

15、客戶端/服務(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ù)的安全性。2.2.2特性1. SQL Server 2000的體系結(jié)構(gòu)SQL Server 2000是一個基于C/S模式的關(guān)系數(shù)據(jù)庫管理系統(tǒng),如圖2-2所示??蛻舳藨?yīng)用程序提交SQL語句查詢結(jié)果返回前臺SQL Server 2000客戶端服務(wù)器端圖2-2 SQL Server 2000 C/S模式結(jié)構(gòu)示意圖SQL Server采用C/S體系結(jié)構(gòu)把所有的工作負荷分

16、解為服務(wù)器上的任務(wù)和客戶端任務(wù)??蛻舳藨?yīng)用程序負責(zé)商業(yè)邏輯和向用戶提供數(shù)據(jù),服務(wù)器負責(zé)對數(shù)據(jù)庫的數(shù)據(jù)進行操作和管理??蛻舳耍ㄓ址Q前臺)應(yīng)用程序包含顯示與用戶交互的界面,而對數(shù)據(jù)庫中的數(shù)據(jù)進行處理描述成Transact-SQL語句(簡稱T-SQL語句),并將T-SQL語句送至服務(wù)器端(又稱后臺),后臺的SQL Server執(zhí)行該T-SQL語句后,產(chǎn)生查詢結(jié)果,并將結(jié)果返回給客戶端的應(yīng)用程序。T-SQL是SQL Serve使用的一種數(shù)據(jù)庫查詢和編程語言,它除包含標(biāo)準的SQL語句外,還增加了一些非標(biāo)準的SQL語句,使其功能更強大。使用T-SQL語言可建立、修改、查詢和管理關(guān)系數(shù)據(jù)庫。2. 存儲過程在

17、SQL Server中,可以定義子程序存放在數(shù)據(jù)庫中,這樣的子程序稱為存儲過程,存儲過程是數(shù)據(jù)庫對象之一。使用存儲過程的優(yōu)點如下:l 存儲過程在服務(wù)器端運行,執(zhí)行速度快。l 存儲過程執(zhí)行一次后,其執(zhí)行規(guī)劃就駐留在高速緩沖存儲器,在以后的操作中,只需從高速緩沖存儲器中調(diào)用已編譯好的二進制代碼執(zhí)行,提高了系統(tǒng)性能。l 確保數(shù)據(jù)庫的安全。使用存儲過程可以完成所有的數(shù)據(jù)庫操作,并可通過編程方式控制上述操作對數(shù)據(jù)庫信息訪問的權(quán)限。l 自動完成需要預(yù)先執(zhí)行的任務(wù)。存儲過程可以在系統(tǒng)啟動時候自動執(zhí)行,而不必在系統(tǒng)啟動后再進行手工操作,大大方便了用戶的使用,可以自動完成一些需要預(yù)先執(zhí)行的任務(wù)。用戶存儲過程只能

18、定義在當(dāng)前數(shù)據(jù)庫中,可以使用SQL命令語句或SQL Server的企業(yè)管理器創(chuàng)建存儲過程2.3 分布式多層結(jié)構(gòu)體系隨著計算機的軟、硬件與網(wǎng)絡(luò)技術(shù)的發(fā)展,企業(yè)的需求也在不斷地增長與變化?;诙鄬蛹軜?gòu)的分布式應(yīng)用正在作為一種解決方案逐漸流行,MIDAS正是作為一種構(gòu)造這種多層架構(gòu)分布式應(yīng)用系統(tǒng)而被推出的快速開發(fā)工具。MIDAS是多層分布式應(yīng)用服務(wù)包(Multi-tier Distributed Application Services Suite)的縮寫,是由Inprise公司開發(fā)的Windows平臺的中間件產(chǎn)品,它能夠有效地利用DCOM、TCPIP、OLE Enterprise和CORBA技術(shù)。

19、MIDAS提供了一套高級組件、服務(wù)和核心技術(shù),可以簡化跨平臺(Windows、UNIX、Linux)、跨產(chǎn)品(Delphi、CBuilder、VC、VB等開發(fā)系統(tǒng)可以協(xié)調(diào)工作)的多級分布式應(yīng)用系統(tǒng)的開發(fā)。使用MIDAS可以建立“瘦客戶端應(yīng)用程序服務(wù)器數(shù)據(jù)庫系統(tǒng)”的多層分布應(yīng)用程序。多層體系結(jié)構(gòu)最大的優(yōu)勢可以概括為兩點,一是集中化的商業(yè)邏輯,另一個是客戶程序可以做的很“瘦”。目前較常見的是三層的體系結(jié)構(gòu),其中最關(guān)鍵的是應(yīng)用服務(wù)器,它是三層體系結(jié)構(gòu)中起承上啟下的作用。如圖2-3所示是三層數(shù)據(jù)庫應(yīng)用程序的體系結(jié)構(gòu)。操縱數(shù)據(jù)庫信息的邏輯是處在中間層上,中間層集中管理支配數(shù)據(jù)庫交互的邏輯,從而使不同的客

20、戶端應(yīng)用程序能夠使用同一數(shù)據(jù),而且可以使客戶應(yīng)用程序很“瘦”,因為許多處理放在了中間層上面了。圖2-3 三層數(shù)據(jù)庫應(yīng)用程序的體系結(jié)構(gòu)三層是最簡單的多層應(yīng)用,它把應(yīng)用程序分為:瘦客戶端應(yīng)用程序、應(yīng)用程序服務(wù)器和遠端數(shù)據(jù)庫服務(wù)器。其中,客戶端主要負責(zé)用戶界面的處理;服務(wù)器端主要負責(zé)商業(yè)邏輯的處理,為客戶端提供公共的數(shù)據(jù)服務(wù),處理客戶端與數(shù)據(jù)庫間的數(shù)據(jù)流;遠端數(shù)據(jù)庫服務(wù)器提供關(guān)系數(shù)據(jù)的存取和維護。一般的三層體系結(jié)構(gòu)如圖2-4所示,包括三部分:l 客戶應(yīng)用程序(Client Application),它存放在用戶的計算機上,用于實現(xiàn)用戶的接口;l 應(yīng)用程序服務(wù)器(Application Server)

21、,提供公共的數(shù)據(jù)服務(wù)等,它存放在所有客戶端可訪問到的計算機上;l 遠程數(shù)據(jù)庫服務(wù)器(Remote DataBase Server),用來存儲應(yīng)用程序數(shù)據(jù)資料的關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)。客戶應(yīng)用程序客戶應(yīng)用程序客戶應(yīng)用程序應(yīng)用程序服務(wù)器遠程數(shù)據(jù)庫服務(wù)器圖2-4 三層體系結(jié)構(gòu)第三章 系統(tǒng)總體設(shè)計與分析3.1 需求分析本單位資料管理子模塊包括職工資料設(shè)置,倉庫信息設(shè)置,部門信息設(shè)置,職稱信息設(shè)置四個部分。在設(shè)置職工資料的時候,應(yīng)該先設(shè)置部門信息和職稱信息。1. 職工資料設(shè)置的主要功能是:負責(zé)錄入公司員工的一些基本信息,如員工編號,生日,學(xué)歷,所屬部門,職稱等信息。 2. 倉庫信息設(shè)置的主要功

22、能是:設(shè)置公司所擁有的倉庫信息,名字代表倉庫的所在地。用戶可以查詢倉庫的具體信息。3. 部門信息設(shè)置的主要功能是:設(shè)置公司部門信息,管理可添加、刪除公司的部門設(shè)置。用戶可查看所有部門信息。4. 職稱信息設(shè)置的主要功能是:設(shè)置公司職工的職稱。進貨管理子模塊包括進貨詢價、進貨報價、進貨單、進貨退貨單。用戶先通過進貨詢價,生成進貨報價單,通過進貨報價單向往來公司進貨。1. 進貨詢價的主要功能是:向往來公司查詢要進貨商品的價格,運費等信息。2. 進貨報價的主要功能是:根據(jù)進貨詢價單,對進貨的商品逐個進行報價。3. 進貨單的主要功能是:對已經(jīng)報價的商品生成一進貨單據(jù)。4. 進貨退貨的主要功能是:對不滿意

23、的商品進行退貨。3.2 運行環(huán)境3.2.1硬件設(shè)備運行該軟件所需要的設(shè)備與其規(guī)格,包括:1. 客戶端要求:CPU為奔騰處理器3與以上,存為64M與以上。2. 服務(wù)器要求:CPU為賽揚2G與以上,存為256M與以上。3.2.2支持軟件1. 客戶端要求:系統(tǒng)為Windows98與以上2. 服務(wù)器要求:l 服務(wù)器操作系統(tǒng):Windows98與以上。l 數(shù)據(jù)庫:SQL Server 20003.3 安全與可靠性設(shè)計1. 安全設(shè)計我們在用戶登錄時進行判斷,設(shè)計了一個安全機制,用以檢驗當(dāng)前用戶是否登陸,未登陸則不可以使用該系統(tǒng),以實現(xiàn)檢驗當(dāng)前用戶是否為合法用戶。2. 權(quán)限設(shè)計為了進一步保證系統(tǒng)的安全和可靠

24、性,我們設(shè)置了二種不同的用戶權(quán)限,分別是管理員、一般用戶。l 管理員用戶可以操作該系統(tǒng)的所有功能。l 一般用戶只可以對已經(jīng)分配權(quán)限的模塊進行操作。3.4 功能性需求分析表1 功能性需求分類描述表功能類別功能名稱、標(biāo)識符描述系統(tǒng)風(fēng)格風(fēng)格選擇用戶可選定所需風(fēng)格資料管理本單位資料設(shè)置模塊管理員可設(shè)置職工資料、部門信息、職稱信息、單位倉庫信息往來公司資料設(shè)置模塊用戶可設(shè)置行業(yè)類型、地區(qū)資料、客戶信用度、客戶公司資料信息商品資料設(shè)置模塊用戶可設(shè)置商品類別、計量單位、庫存單位換算、商品庫存信息等業(yè)務(wù)管理進貨管理模塊用戶可通過進貨詢價單進行進貨報價,再通過進貨報價單生成進貨單,可進行進貨退貨管理銷售管理模塊

25、用戶可通過銷售報價單生成銷售單,可進行銷售退貨管理庫存管理模塊用戶可通過進貨單進行進貨入庫,通過進貨退貨單進行退貨出庫,可通過銷售單進行銷售出庫,通過銷售退貨單進行退貨入庫,用戶可查詢現(xiàn)有庫存系統(tǒng)管理管理管理員可設(shè)置員工為系統(tǒng)用戶,為用戶分配權(quán)限,管理實時在線用戶;用戶可修改密碼,查詢在線歷史記錄消息管理用戶可查看公告消息和個人信息系統(tǒng)維護3.5模塊處理流程設(shè)計圖3-1系統(tǒng)程序邏輯流程3.6 數(shù)據(jù)庫設(shè)計3.6.1 表設(shè)計表2 本單位資料子模塊的數(shù)據(jù)庫表表名 說明屬性說明clerk_table定義職工編號、職工、姓別、學(xué)歷、職稱、所屬部門、生日、入職時間、聯(lián)系等depot_table定義倉庫編號

26、、倉庫名稱、備注dep_table定義部門編號、部門名稱、備注title_table定義職稱編號、職稱名稱、備注表3 進貨管理子模塊的數(shù)據(jù)庫表表名 說明屬性說明stock_inquiry_table定義編號、詢價時間、操作員、供應(yīng)商、報價與否stock_inquiry_product_table定義詢價單中商品的類別、單價、運費、數(shù)量等stock_quote_table定義報價單編號、對應(yīng)的詢價單編號、報價人、時間等stock_table定義進貨單編號、對應(yīng)的報價單編號、進貨人、審核人、是否審核、進貨總價等stock_product_table定義詢價單中商品的類別、單價、運費、數(shù)量等stoc

27、k_return_table定義退貨單編號、對應(yīng)的進貨單編號、退貨人、審核人、 是還審核、退貨總價等stock_return_product_table定義詢價單中商品的類別、單價、運費、數(shù)量等3.6.2 存儲過程由于本系統(tǒng)采用三層結(jié)構(gòu),對數(shù)據(jù)的查詢、增加、修改等均采用存儲過程來操作。對于數(shù)據(jù)庫運算處理頻繁或數(shù)據(jù)運算量較大的任務(wù),用存儲過程實現(xiàn),可以提高系統(tǒng)整體的運行效率;此外,存儲過程在數(shù)據(jù)庫服務(wù)器端執(zhí)行,只將執(zhí)行結(jié)果返回到客戶端。對于多層Client/Server結(jié)構(gòu)的數(shù)據(jù)庫應(yīng)用系統(tǒng),一般采用將程序參數(shù)存放在后臺數(shù)據(jù)庫表中,可以更好的保持數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)一致性。3.7 接口說明我們定子功

28、能間的接口模式為數(shù)據(jù)庫模式。如一般用戶向系統(tǒng)提交的進貨單時是向stock_table表中插入;而進貨單審核員通過查看該記錄選擇同意進貨與否。第四章 本單位資料管理和進貨管理的設(shè)計與實現(xiàn)4.1系統(tǒng)整體模塊設(shè)計唯信機械行業(yè)MIS系統(tǒng)資料管理業(yè)務(wù)管理賬務(wù)管理員工管理系統(tǒng)維護系統(tǒng)管理本單位資料設(shè)置往來公司資料設(shè)置商品資料設(shè)置進貨管理銷售管理庫存管理賬戶管理消息管理圖4-1 系統(tǒng)模塊劃分4.2模塊詳細設(shè)計與分析4.2.1服務(wù)器端4.2.1.1 應(yīng)用服務(wù)器模式流程與配置應(yīng)用程序服務(wù)器的數(shù)據(jù)庫連接模式流程如圖4-2所示。 圖4-2 應(yīng)用程序服務(wù)器數(shù)據(jù)連接模塊流程圖三層分布式體系結(jié)構(gòu)的應(yīng)用服務(wù)器,其基礎(chǔ)是一個

29、遠程數(shù)據(jù)模塊(Remote Data Module),它能夠支持IAppServer接口。 客戶端正是使用IAppServer接口與應(yīng)用服務(wù)器上的供應(yīng)器通信,從而進行各種數(shù)據(jù)操作。作為應(yīng)用服務(wù)器,起到的功能是客戶端與數(shù)據(jù)庫服務(wù)器之間的銜接作用。用戶可以通過輸入IP動態(tài)連接數(shù)據(jù)庫服務(wù)器,連接成功之后,可以實時查看客戶端的連接情況。服務(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)用很類似。動態(tài)連接數(shù)據(jù)庫服務(wù)器的實現(xiàn)。首先用Delphi新

30、建一個應(yīng)用程序(Application),系統(tǒng)會自動生成一個頁面form,在窗體中添置一個ADO組件欄的ADOConnection控件(如圖4-3),并進行一些必要的窗體設(shè)置后,窗體如圖4-4所示:圖4-3 ADOConnection控件圖4-4 服務(wù)器窗體在這個應(yīng)用服務(wù)器配置窗體中,需要輸入數(shù)據(jù)庫服務(wù)器主機名(或者IP地址)、數(shù)據(jù)庫名、數(shù)據(jù)庫用戶名以與密碼,這些配置信息將用來連接數(shù)據(jù)庫服務(wù)器。如果連接成功,輸入的配置信息將被寫入到當(dāng)前目錄的DB.ini文件中,下次程序啟動時,可以通過連接按鈕讀取該文件的配置信息,就可以方便連接數(shù)據(jù)庫了。4.2.1.2遠程模塊的創(chuàng)建Delphi共有四種遠程數(shù)據(jù)

31、模塊,分別是遠程數(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ù)模塊從Delphi的菜單中選擇FileNewOther,出現(xiàn)New Items的對話框,單擊Multitier頁面,選擇Remote Data Module選項,選擇了一個TRe

32、moteDataModule遠程數(shù)據(jù)模塊(如圖4-5)圖4-5 遠程數(shù)據(jù)模塊接下來是它的向?qū)渲媒缑妫枰付–oclass名字、實例類型、線程模型,如圖4-6所示:圖4-6 向?qū)渲迷贑oclass Name指定類名,程序?qū)⒔⒁粋€新的單元,它是TRemoteDataModule的派生,在此我們輸入Engine。Instancing是指定實例的類型,我們選擇默認的Multiple Instance,這樣每個遠程數(shù)據(jù)模塊是單個客戶端連接專有的,但他們都共享同一進程空間。在Threading Model中,選擇Apartment能夠確保遠程數(shù)據(jù)模塊的任何實例在同一時間只服務(wù)于一個請求,這樣能夠避

33、免線程沖突。到此,應(yīng)用服務(wù)器大體搭建完畢,運行程序,應(yīng)用服務(wù)器將完成注冊,此時系統(tǒng)將提供一個唯一的GUID值(如圖4-7),供客戶端連接驗證。圖4-7 GUID值4.2.2 客戶端架構(gòu)概述1. 連接服務(wù)器方式的選擇在Two-Tier模式中,客戶端程序是直接和數(shù)據(jù)庫服務(wù)器的數(shù)據(jù)源相連的,而Multi-Tier模式,多個客戶端連接的是應(yīng)用程序服務(wù)器,它們之間是通過IAppServer接口進行通信的,而客戶端則是通過一個連接組件得到這個接口。在Delphi中,存在著多種連接組件,它們對應(yīng)著不同的通信協(xié)議,對應(yīng)于應(yīng)用服務(wù)器上的不同種類的遠程數(shù)據(jù)模塊,客戶端也需要不同的種類的連接組件,如表4所示:表4

34、連接組件比較組件協(xié)議連接到的遠程數(shù)據(jù)模塊TDCOMConnectionDCOMRemoteDataModule或者MTSDataModuleTSocketConnectionWindows Socket (TCP/IP)RemoteDataModule或者MTSDataModuleTWebConnectionRemoteDataModule或者MTSDataModuleTSoapConnectionSOAP ( 和XML)SoapDataModuleTCorbaConnectionCORBA(IIOP)CorbaDataModule由于應(yīng)用服務(wù)器所選用的遠程數(shù)據(jù)模塊是RemoteDataMod

35、ule,并且系統(tǒng)基于C/S架構(gòu),因此所選用的連接組件將是TDCOMConnection或TSocketConnection。TDCOMConnection 提供了核心的NTLM的安全性和驗證機制。在COM/DCOM里面我們可以很輕松地使用早聯(lián)編(early-binding)、 回調(diào)機制(callback)和連結(jié)點機制(ConnectionPoints)。 但是它的不利因素就是配置客戶端的DCOM和讓DCOM透過防火墻(FireWall)相當(dāng)麻煩而相對于TDCOMConnection,TSocketConnection雖然不支持早聯(lián)編(early-binding),但它無疑是最容易配置的連接方式

36、,而且TSocketConnection只使用一個端口(默認211)來進行通訊,這樣如果在擁有防火墻的系統(tǒng)中,管理員會更樂意接受。在安裝中間層的機器上,只要運行SCKTSRVR.EXE(如圖4-8)就可以和客戶端建立Socket的連接了。(scktsrvr.exe存放于Delphi安裝路徑的Bin目錄下)如圖4-8 scktsrvr.exe2. 客戶端架構(gòu)的搭建使用File菜單下的New Application建立一個新應(yīng)用程序。將新建的form命名為e_main.pas,并在其中放置一個連接組件SocketConnection1 (TsocketConnection組件)如圖4-9所示,其I

37、P屬性中本應(yīng)指定應(yīng)用程序服務(wù)器的IP地址,但由于要實現(xiàn)動態(tài)連接應(yīng)用服務(wù)器,而且我們開發(fā)客戶端程序的時候必須注冊應(yīng)用服務(wù)器,所以為了開發(fā)方便,使用的是同一臺,因此這里的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)。圖4-9 TsocketConnection組件圖4-10 SocketConnection1屬性配置3. 動態(tài)連接應(yīng)用服務(wù)器、用戶登陸界面客戶端程

38、序在運行時,需要連接應(yīng)用服務(wù)器程序以取得服務(wù)。但是,在系統(tǒng)實際應(yīng)用的時候,運行應(yīng)用服務(wù)器程序的計算機是經(jīng)常改變的,因此在客戶端程序啟動時,應(yīng)該先找到運行應(yīng)用服務(wù)器程序的計算機的設(shè)置。我們將這個配置信息存儲在windows系統(tǒng)的注冊表中,(分支:HKEY_LOCAL_MACHINESOFTWARE唯信機械MIS系統(tǒng)),客戶端啟動時如果能夠找到配置信息,便進行嘗試連接,連接成功則進入用戶賬號登陸界面,如果連接失敗,則彈出應(yīng)用服務(wù)器配置界面重新配置。為了適應(yīng)這些界面的邏輯調(diào)度,我們決定把e_main.pas作為工程主頁面(客戶端一運行即在后臺啟動,但不顯示),然后調(diào)用函數(shù)(ConnectAppSer

39、v)讀取注冊表進行連接,連接成功則顯示賬戶的頁面,連接失敗則出現(xiàn)客戶端配置界面如圖4-11。 圖4-11 客戶端配置界面4.2.3 本單位資料管理模塊4.2.3.1 子模塊劃分與數(shù)據(jù)流圖根據(jù)系統(tǒng)功能,本單位將資料管理劃分為幾個模塊,如圖4-12所示。圖4-12 本單位資料模塊構(gòu)架圖本單位資料設(shè)置的數(shù)據(jù)流圖(DFD圖)如圖4-13所示。圖4-13 本單位資料數(shù)據(jù)流圖4.2.3.2 數(shù)據(jù)庫設(shè)計1. 基本表設(shè)計根據(jù)上述數(shù)據(jù)流圖,本單位資料管理中共包含4個數(shù)據(jù)庫表,依次為職工資料信息表clerk_table保存公司職工的基本信息,倉庫信息表depot_table用于設(shè)置公司倉庫,部門信息表dep_ta

40、ble設(shè)置公司的部門種類,職稱信息表title_table設(shè)置公司的職稱類型。這里只列出表clerk_table的具體設(shè)計,如表5所示。表5 職工資料信息表clerk_table序號字段名類型長度精度小數(shù)位數(shù)默認值允許空主鍵說明0clerk_idvarchar50職工編號1clerk_namevarchar50職工2clerk_sexvarchar4職工姓別3clerk_diplomavarchar50職工學(xué)歷4clerk_dep_idvarchar50職工所在部門ID5clerk_title_idvarchar50職工職稱ID6clerk_birthdaysmalldatetime4職工生日

41、7clerk_workdaysmalldatetime4職工入職日期8clerk_phonevarchar50職工9clerk_emailvarchar50職工電子信箱10clerk_addressvarchar50職工居住地址11clerk_markvarchar300備注2. 存儲過程創(chuàng)建由于本系統(tǒng)采用三層結(jié)構(gòu),對數(shù)據(jù)的查詢、增加、修改等均采用存儲過程來操作。對于數(shù)據(jù)庫運算處理頻繁或數(shù)據(jù)運算量較大的任務(wù),用存儲過程實現(xiàn),可以提高系統(tǒng)整體的運行效率;此外,存儲過程在數(shù)據(jù)庫服務(wù)器端執(zhí)行,只將執(zhí)行結(jié)果返回到客戶端。而本單位資料管理中,涉與到的存儲過程有職工資料信息的增加或修改update_cle

42、rk_info,倉庫信息的增加或修改update_depot_info,部門信息的增加或修改update_dep_info,職稱信息的增加或修改update_title_info。這里只給出update_clerk_info的具體程序,如下所示: / update_clerk_infoCREATE PROCEDURE update_clerk_info( t int, -判斷插入還是修改 update_id int, -插入的要修改的id數(shù)值 id varchar(50), name varchar(50), sex char(2), diploma char(10), vdep_id var

43、char(50), vdep_name varchar(50), vtitle_id varchar(50), vtitle_name varchar(50), birthday smalldatetime, workday smalldatetime, phone varchar(50), email varchar(50), address varchar(50), mark varchar(300) asif (t=1)begin select vdep_id=dep_id from dep_table where dep_name=vdep_name; select vtitle_id

44、=title_id from title_table where title_name=vtitle_name;update clerk_table set clerk_name=name,clerk_sex=sex,clerk_diploma=diploma,clerk_dep_id=vdep_id,clerk_title_id=vtitle_id,clerk_birthday=birthday,clerk_workday=workday,clerk_phone=phone,clerk_email=email,clerk_address=address,clerk_mark=markwher

45、e clerk_id=id ;endif (t=2)begin select vdep_id=dep_id from dep_table where dep_name=vdep_name; select vtitle_id=title_id from title_table where title_name=vtitle_name;insert clerk_table values(id,name,sex,diploma,vdep_id,vtitle_id,birthday,workday,phone,email,address,mark); update auto_add_table set

46、 clerk_id= update_id where auto_id=1; endGO4.2.3.3 本單位資料模塊詳細設(shè)計本單位資料設(shè)置主要是讓管理員管理職工資料、部門信息、倉庫信息、職稱信息。采用用戶點擊完,彈出具體頁面讓用戶設(shè)置。1. “職工資料詳細信息”子窗體設(shè)計完成后的“職工資料詳細信息”子窗體如圖4-14所示。圖4-14 “職工資料詳細信息” 子窗體該窗體用于查看所有職工的基本信息,在窗體里添加一個clientdataset1,其RemoteServer屬性值為main.SocketConnection1(主窗體用于連接應(yīng)用程序服務(wù)器server),ProviderName屬性值為

47、get_clerk_dsp(應(yīng)用程序服務(wù)器server中用于連接數(shù)據(jù)庫的存儲過程的TDataSetProvider),通過設(shè)置數(shù)據(jù)庫控件的以上屬性,將Client端數(shù)據(jù)庫控件與Server端遠程數(shù)據(jù)模塊中的數(shù)據(jù)庫控件連接起來,這是多層數(shù)據(jù)庫應(yīng)用程序設(shè)計中最為關(guān)鍵的屬性設(shè)置。當(dāng)單擊“增加”或“編輯”按鈕后,彈出“職工資料錄入”子窗體,如圖4-15所示。當(dāng)單擊“刪除”按鈕后,彈出對話框確認是否刪除,其中“刪除”事件調(diào)用server中的Appserver函數(shù)del_clerk(clerk_id,vdeled)。當(dāng)單擊“查找”按鈕時,彈出如圖4-16所示的窗體,可以選擇要按哪個字段查找。圖4-15 “

48、職工資料錄入”子窗體當(dāng)單擊“職工資料錄入”子窗體中的“保存”按鈕后,程序?qū)⑹紫热〕鼍庉嫏谥械臄?shù)據(jù)做為參數(shù),通過Server端提供的接口函數(shù)update_clerk(vt,vupdate_id,vid,vname,vsex,vdiploma,vdep_name,vtitle_name,vbirthday,vworkday,vphone,vemail,vaddress,vmark,vsaved),傳遞到數(shù)據(jù)庫中的存儲過程update_clerk_info中,執(zhí)行并更新數(shù)據(jù)庫Engine中的表clerk_table。圖4-16 “職工資料查找”子窗體當(dāng)單擊“職工資料查找”子窗體中的“確定”按鈕后,程

49、序取出要查字段做為參數(shù),通過Server端提供的接口函數(shù)find_clerk(itemnumber,contentstr,vfound),把參數(shù)傳遞到數(shù)據(jù)庫中的存儲過程find_clerk_info中,執(zhí)行存儲過程,并把找到的數(shù)據(jù)存放在一個臨時表中。2. “倉庫資料詳細信息”子窗體由于該模塊的具體設(shè)置跟“職工資料詳細信息”子窗體很相似,故這里只簡單重復(fù)介紹一下參數(shù)設(shè)置和容。容:編號自動生成,設(shè)置倉庫名稱與倉庫區(qū)簡介作用:商品入庫時,供用戶選擇。操作:可增加、編輯、刪除、查找倉庫資料。該模塊通過TClientDataSet控件與后臺數(shù)據(jù)庫相連,RemoteServer屬性設(shè)置為main.Sock

50、etConnection1,ProviderName屬性值為get_depot_dsp。增加、修改通過調(diào)用server的接口函數(shù)update_depot,執(zhí)行數(shù)據(jù)庫中的存儲過程update_depot_info。刪除通過調(diào)用server的接口函數(shù)delet_depot。查找通過調(diào)用server的接口函數(shù)find_depot,執(zhí)行數(shù)據(jù)庫中的存儲過程find_depot_info。3. “部門資料詳細信息”子窗體由于該模塊的具體設(shè)置跟“職工資料詳細信息”子窗體很相似,故這里只簡單重復(fù)介紹一下參數(shù)設(shè)置和容。容:編號自動生成,設(shè)置部門名稱與備注。作用:當(dāng)公司增加職工時,可選擇該職工所在的部門。操作:可

51、增加、編輯、刪除、查找部門資料。該模塊通過TClientDataSet控件與后臺數(shù)據(jù)庫相連,RemoteServer屬性設(shè)置為main.SocketConnection1,ProviderName屬性值為get_dep_dsp。增加、修改通過調(diào)用server的接口函數(shù)update_dep,執(zhí)行數(shù)據(jù)庫中的存儲過程update_dep_info。刪除通過調(diào)用server的接口函數(shù)delet_dep。查找通過調(diào)用server的接口函數(shù)find_dep,執(zhí)行數(shù)據(jù)庫中的存儲過程find_dep_info。4. “職稱資料詳細信息”子窗體由于該模塊的具體設(shè)置跟“職工資料詳細信息”子窗體很相似,故這里只簡單

52、重復(fù)介紹一下參數(shù)設(shè)置,容與操作。容:編號自動生成,職稱名稱與備注。作用:當(dāng)公司增加職工時,可選擇該職工的職稱。操作:可增加、編輯、刪除、查找職稱資料。該模塊通過TClientDataSet控件與后臺數(shù)據(jù)庫相連,RemoteServer屬性設(shè)置為main.SocketConnection1,ProviderName屬性值為get_title_dsp。增加、修改通過調(diào)用server的接口函數(shù)update_title,執(zhí)行數(shù)據(jù)庫中的存儲過程update_title_info。刪除通過調(diào)用server的接口函數(shù)delet_title。查找通過調(diào)用server的接口函數(shù)find_title,執(zhí)行數(shù)據(jù)庫中

53、的存儲過程find_title_info。4.2.4 進貨管理模塊4.2.4.1 子模塊劃分與數(shù)據(jù)流圖根據(jù)系統(tǒng)功能,本單位將資料管理劃分為幾個模塊,如圖4-17所示。圖4-17 本單位資料模塊構(gòu)架圖 本單位資料設(shè)置的數(shù)據(jù)流圖(DFD圖)如圖4-18所示。圖4-18 本單位資料數(shù)據(jù)流圖4.2.4.2 數(shù)據(jù)庫設(shè)計1. 基本表設(shè)計根據(jù)上述數(shù)據(jù)流圖,進貨管理模塊中共包含7個數(shù)據(jù)庫表,依次為進貨詢價表stock_inquiry_table保存詢價的基本信息,進貨詢價商品表stock_inquiry_product_table用于添加商品信息,進貨報價表stock_quote_table保存報價的基本信息,進貨單表stock_table對應(yīng)該于進貨報價單的基本信息,進貨商品表stock_product_table對應(yīng)于進貨報價商品,進貨退貨表stock_return_table對應(yīng)

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論