VC倉庫電子管理系統(tǒng)_第1頁
VC倉庫電子管理系統(tǒng)_第2頁
VC倉庫電子管理系統(tǒng)_第3頁
VC倉庫電子管理系統(tǒng)_第4頁
VC倉庫電子管理系統(tǒng)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、編號(hào) 本科生畢業(yè)設(shè)計(jì)倉庫管理系統(tǒng)Warehouse Management System學(xué) 生 姓 名專 業(yè)計(jì)算機(jī)科學(xué)與技術(shù)學(xué) 號(hào)指 導(dǎo) 教 師學(xué) 院計(jì)算機(jī)科學(xué)與技術(shù)2009年 06月 摘要本文對(duì)倉庫管理系統(tǒng) 的功能及實(shí)現(xiàn)分別進(jìn)行了論述,本系統(tǒng)采用SQL Server 2000作為后臺(tái)數(shù)據(jù)庫的開發(fā)工具,應(yīng)用VC+ 6.0作為前臺(tái)開發(fā)語言。本系統(tǒng)主要包括基礎(chǔ)信息管理,入庫管理,出庫管理,查詢管理等幾個(gè)主模塊。本系統(tǒng)操作簡單明了,界面美觀,簡化了倉庫管理煩瑣的傳統(tǒng)管理方式,以簡單明了的方式對(duì)倉庫庫存進(jìn)行系統(tǒng)的電子管理。本文首先闡述了管理信息系統(tǒng)開發(fā)的基本理論,包括開發(fā)過程的介紹、系統(tǒng)平臺(tái)的選擇、數(shù)據(jù)

2、庫設(shè)計(jì)方法等。其次針對(duì)貨物銷售的業(yè)務(wù)需求,給出了一個(gè)完整的貨物銷售管理系統(tǒng) 的實(shí)現(xiàn)方案,包括系統(tǒng)的需求分析,系統(tǒng)的體系結(jié)構(gòu)設(shè)計(jì),各模塊的功能 設(shè)計(jì),數(shù)據(jù)庫 設(shè)計(jì)及系統(tǒng)的集成部署等。對(duì)倉庫管理管理系統(tǒng) 進(jìn)行了詳細(xì)設(shè)計(jì)及描述。關(guān)鍵字:功能 數(shù)據(jù)庫 倉庫管理系統(tǒng)AbstractFunction and realizing describing of this text separately to the warehouse managemen system, system this adopt SQL Server 2000 as backstage supporter developing ins

3、trument of database, employ VC+ 6.0 develop languages as front desk. This system mainly including the fundamental information management,warehouse entry management, warehouse output management,inquiry management,etc. This system operation is simple and clear, the interface is esthetic, simplify the

4、convoluted traditional management style of warehouse management, manage the systematic electron to warehouse management in simple and clear way apt to be grasped. This text explain basic theories that the management information system develop at first, introduction, systematic choice, database desig

5、n method,etc. of platform to develop course. Secondly direct against the business demand of sales of goods, provide the realization scheme of an intact warehouse managemen system, including systematic demand analyze systematic system structural design, every module of functions design, the design of

6、 storehouse of the data and systematic one are integrated and disposed etc. Have designed and described the warehouse managemen system in detail.Key words: Function;Database;Warehouse Management System目錄第一章 緒論- 1 -1.1 選題背景- 1 -1.2 研究目的及意義- 1 -1.3 國內(nèi)外現(xiàn)狀- 1 -1.4 開發(fā)環(huán)境- 2 -第二章 開發(fā)工具簡介- 3 -2.1 Visual C+ 編

7、程環(huán)境簡介- 3 -2.2 SQL Server 2000 數(shù)據(jù)庫簡介- 4 -2.3 ADO簡介- 5 -第三章 總體設(shè)計(jì)- 7 -3.1 系統(tǒng)需求分析- 7 -3.2 模塊總體設(shè)計(jì)- 8 -3.3 數(shù)據(jù)庫設(shè)計(jì)- 8 -3.3.1 數(shù)據(jù)庫需求分析- 8 -3.3.2 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)- 9 -3.3.3 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)- 10 -第四章 詳細(xì)設(shè)計(jì)- 13 -4.1 入庫模塊設(shè)計(jì)分析- 13 -4.1.1 商品入庫處理過程分析- 13 -4.1.2 商品入庫查詢處理過程分析- 13 -4.2 系統(tǒng)模塊的詳細(xì)設(shè)計(jì)- 13 -4.2.1 菜單設(shè)計(jì)- 13 -4.2.2 工具欄設(shè)計(jì)- 14 -

8、4.2.3 系統(tǒng)主界面- 15 -4.2.4 父窗口設(shè)計(jì)- 15 -4.2.5 商品入庫程序設(shè)計(jì)- 17 -4.2.6 庫存盤點(diǎn)程序設(shè)計(jì)- 18 -4.2.7 入庫查詢程序設(shè)計(jì)- 19 -4.3 疑難問題分析解決- 20 -4.3.1 利用表格錄入商品- 20 -4.3.2 聯(lián)想錄入表格的實(shí)現(xiàn)- 21 -總結(jié)- 23 -參考文獻(xiàn)- 24 -致謝- 25 -附錄- 26 -父窗口設(shè)計(jì)主要代碼- 26 -商品入庫程序設(shè)計(jì)- 27 -庫存盤點(diǎn)程序的設(shè)計(jì)- 29 -入庫查詢程序查詢- 32 -第一章 緒論1.1 選題背景隨著我國經(jīng)濟(jì)的飛速發(fā)展,各種類型規(guī)模的公司企業(yè)迅速崛起,許多從事生產(chǎn)和經(jīng)營管理的企

9、業(yè)都有自己生產(chǎn)和銷售的產(chǎn)品,而這些產(chǎn)品都需要存貯在倉庫中,對(duì)于每個(gè)企業(yè)來說,隨著企業(yè)規(guī)模的不斷擴(kuò)大,產(chǎn)品數(shù)量的急劇增加,所生產(chǎn)產(chǎn)品的種類也會(huì)不斷更新與發(fā)展,有關(guān)產(chǎn)品的各種信息量也會(huì)成倍的增長,而對(duì)龐大的產(chǎn)品信息量,如何有效的管理庫存品,對(duì)這些企業(yè)來說是非常重要的,庫存管理的重點(diǎn)是銷售信息是否即使反饋,從而確保企業(yè)運(yùn)行效益.而庫存產(chǎn)品及時(shí)入庫,出庫的產(chǎn)品,經(jīng)辦人員及客戶等方方面面的因素,如何管理這些信息數(shù)據(jù),是一項(xiàng)復(fù)雜的系統(tǒng)工程,充分考驗(yàn)著倉庫管理員的工作能力,工作量的繁重是可想而知的,所以就需要由倉庫管理系統(tǒng)來提高倉庫管理工作的效率,這對(duì)信息的規(guī)范管理,科學(xué)統(tǒng)計(jì)和快速查詢,減少管理方面的工作量

10、,同時(shí)對(duì)于調(diào)動(dòng)廣大員工的工作積極性,提高生產(chǎn)效率,都具有十分重要的現(xiàn)實(shí)意義1.2 研究目的及意義當(dāng)今社會(huì)是競(jìng)爭(zhēng)的社會(huì)。在市場(chǎng)競(jìng)爭(zhēng)中,建立科學(xué)、規(guī)范、高效管理制度成為了企業(yè)管理的當(dāng)務(wù)之急。一個(gè)企業(yè)在市場(chǎng)中是否具有強(qiáng)有力的競(jìng)爭(zhēng)力,除了要看企業(yè)的人才、資金、技術(shù)、產(chǎn)品之外,更重要的一項(xiàng),就是要看企業(yè)是否有一個(gè)良好的管理體制。在企業(yè)管理中,倉庫管理更是管理中的重中之重。隨著社會(huì)經(jīng)濟(jì)的迅速發(fā)展和科學(xué)技術(shù)的全面進(jìn)步,計(jì)算機(jī)事業(yè)的飛速發(fā)展,倉庫管理系統(tǒng)就順應(yīng)時(shí)代的需要誕生了。使得管理人員可以告別沉重而且不易于查詢的記事本堆了。本課題主要的目的是是幫助企業(yè)的倉庫管理人員對(duì)企業(yè)生產(chǎn)所需要的物資設(shè)備進(jìn)行管理和控制

11、,使生產(chǎn)設(shè)備得到充分利用,以達(dá)到降低成本。給用戶提供簡而易行的工作界面,為用戶提供充足的信息和快捷的查詢手段。管理人員通過系統(tǒng)企業(yè)倉庫信息的管理與統(tǒng)計(jì),為企業(yè)積累真實(shí)、有效的數(shù)據(jù),通過對(duì)這些數(shù)據(jù)的分析與研究,對(duì)企業(yè)各方面做出的相應(yīng)的調(diào)整,以提高企業(yè)的管理效率,使企業(yè)走上良好的發(fā)展道路1.3 國內(nèi)外現(xiàn)狀倉庫管理系統(tǒng)是信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺(tái)數(shù)據(jù)庫的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè)方面。對(duì)于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的數(shù)據(jù)庫。而對(duì)于后者則要求應(yīng)用程序功能完備,易使用等特點(diǎn)。如今用于支持后臺(tái)的數(shù)據(jù)庫有很多種。如ACCESS、SQL SEVER、IBM DB

12、2、ORACLE、MYSQL等等。Microsoft SQL Server 2000 能提供超大型系統(tǒng)所需的數(shù)據(jù)庫服務(wù)。大型服務(wù)器可能有成千上萬的用戶同時(shí)連接到 SQL Server 2000 實(shí)例。SQL SERVER是一種不可思議的數(shù)據(jù)庫產(chǎn)品。它不僅在性能、可靠性和易管理性等方面都表現(xiàn)十分出色,同時(shí),它也允許開發(fā)人員在需要的時(shí)候進(jìn)行非常精細(xì)的控制。在存儲(chǔ)方面更出類拔萃。存儲(chǔ)過程只在創(chuàng)造時(shí)進(jìn)行編譯,以后每次執(zhí)行存儲(chǔ)過程都不需再重新編譯,而一般SQL語句每執(zhí)行一次就編譯一次,所以使用存儲(chǔ)過程可提高數(shù)據(jù)庫執(zhí)行速度。做為前臺(tái)的開發(fā)工具也涌現(xiàn)了不少優(yōu)秀的產(chǎn)品,如VISUAL BASIC、VISUAL

13、 C+、JAVA、.NET等等。Visual Basic可以快速構(gòu)Windows下的應(yīng)用程序,程序設(shè)計(jì)方面的技術(shù)不斷發(fā)展著,不斷引進(jìn)新的概念、新的方法,如從結(jié)構(gòu)化的C開始,當(dāng)面向?qū)ο蟮乃枷氡惶岢龊?,出現(xiàn)了C+,微軟在C+的基礎(chǔ)上為使用戶構(gòu)建win32應(yīng)用程序更加方便,推出了Visual C+。這也就需要程序員也要不斷的更新自己的技術(shù)。1.4 開發(fā)環(huán)境系統(tǒng)開發(fā)環(huán)境包括硬件平臺(tái)和軟件平臺(tái)兩種。硬件平臺(tái)是指開發(fā)與運(yùn)行所需要的硬件環(huán)境,主要包括計(jì)算機(jī)機(jī)型及硬件配置。由于本系統(tǒng)是一個(gè)小型的MIS管理系統(tǒng),因此對(duì)計(jì)算機(jī)硬件的要求不高,比較經(jīng)濟(jì),只要配備有PII處理器(或以上)、64M內(nèi)存(或以上)、10G

14、硬盤(或以上)的普通微機(jī)即可順利運(yùn)行。軟件平臺(tái)是指系統(tǒng)開發(fā)與運(yùn)行的軟件環(huán)境。本系統(tǒng)在開發(fā)時(shí)選用了穩(wěn)定性較強(qiáng)的Windows XP中文專業(yè)版和Visual C+作為開發(fā)語言,同時(shí)選用了SQL Server 2000數(shù)據(jù)庫。工具都是微軟的產(chǎn)品,彼此之間的兼容性較好,開發(fā)出的應(yīng)用系統(tǒng)穩(wěn)定性較高。Visual C+ 6.0具有可視化的開發(fā)環(huán)境,可以快速完成系統(tǒng)的開發(fā),內(nèi)部集成的數(shù)據(jù)庫訪問通道,使其可以輕松方便的對(duì)數(shù)據(jù)庫進(jìn)行管理。數(shù)據(jù)庫采用SQL Server 2000,由于我們的系統(tǒng)要求,采用它完全可以適合我們的工作需求,并且它所支持的數(shù)據(jù)類型十分豐富,維護(hù)簡便,費(fèi)用比較低,人員素質(zhì)要求不是很高,容易

15、升級(jí)。第二章 開發(fā)工具簡介2.1 Visual C+ 編程環(huán)境簡介Visual C+是一個(gè)功能強(qiáng)大的可視化軟件開發(fā)工具。自1993年Microsoft公司推出Visual C+1.0后,隨著其新版本的不斷問世,Visual C+已成為專業(yè)程序員進(jìn)行軟件開發(fā)的首選工具。雖然微軟公司推出了Visual C+.NET(Visual C+7.0),但它的應(yīng)用的很大的局限性,只適用于Windows 2000,Windows XP和Windows NT4.0。所以實(shí)際中,更多的是以Visual C+6.0為平臺(tái)。Visual C+6.0不僅是一個(gè)C+編譯器,而且是一個(gè)基于Windows操作系統(tǒng)的可視化集成

16、開發(fā)環(huán)境(integrated development environment,IDE)。Visual C+6.0由許多組件組成,包括編輯器、調(diào)試器以及程序向?qū)ppWizard、類向?qū)lass Wizard等開發(fā)工具。 這些組件通過一個(gè)名為Developer Studio的組件集成為和諧的開發(fā)環(huán)境。Visual C+它大概可以分成三個(gè)主要的部分:1 Developer Studio,這是一個(gè)集成開發(fā)環(huán)境,我們?nèi)粘9ぷ鞯?9%都是在它上面完成的,再加上它的標(biāo)題赫然寫著“Microsoft Visual C+”,所以很多人理所當(dāng)然的認(rèn)為,那就是Visual C+了。其實(shí)不然,雖然Develop

17、er Studio提供了一個(gè)很好的編輯器和很多Wizard,但實(shí)際上它沒有任何編譯和鏈接程序的功能,真正完成這些工作的幕后英雄后面會(huì)介紹。我們也知道,Developer Studio并不是專門用于VC的,它也同樣用于VB,VJ,VID等Visual Studio家族的其他同胞兄弟。所以不要把Developer Studio當(dāng)成Visual C+, 它充其量只是Visual C+的一個(gè)殼子而已。這一點(diǎn)請(qǐng)切記!2 MFC。從理論上來講,MFC也不是專用于Visual C+,Borland C+,C+Builder和Symantec C+同樣可以處理MFC。同時(shí),用Visual C+編寫代碼也并不意

18、味著一定要用MFC,只要愿意,用Visual C+來編寫SDK程序,或者使用STL,ATL,一樣沒有限制。不過,Visual C+本來就是為MFC打造的,Visual C+中的許多特征和語言擴(kuò)展也是為MFC而設(shè)計(jì)的,所以用Visual C+而不用MFC就等于拋棄了Visual C+中很大的一部分功能。但是,Visual C+也不等于MFC。3 Platform SDK。這才是Visual C+和整個(gè)Visual Studio的精華和靈魂,雖然我們很少能直接接觸到它。大致說來,Platform SDK是以Microsoft C/C+編譯器為核心(不是Visual C+,看清楚了),配合MASM,

19、輔以其他一些工具和文檔資料。上面說到Developer Studio沒有編譯程序的功能,那么這項(xiàng)工作是由誰來完成的呢?是CL,是NMAKE,和其他許許多多命令行程序,這些我們看不到的程序才是構(gòu)成Visual Studio的基石。2.2 SQL Server 2000 數(shù)據(jù)庫簡介數(shù)據(jù)庫是MIS中的重要支持技術(shù),在MIS開發(fā)過程中,如何選擇數(shù)據(jù)庫管理是一個(gè)重要的問題,目前,數(shù)據(jù)庫產(chǎn)品較多,每種產(chǎn)品都具有各自的特點(diǎn)和適用范圍,因此,在選擇數(shù)據(jù)庫時(shí),應(yīng)考慮數(shù)據(jù)庫應(yīng)用的特點(diǎn)及適用范圍,本系統(tǒng)選用的數(shù)據(jù)庫語言是SQL Server 2000。SQL Server作為微軟在Windows 系列平臺(tái)上開發(fā)的數(shù)

20、據(jù)庫,一經(jīng)推出就以其易用性得到了很多用戶的青睞,相信大多數(shù)將自己的業(yè)務(wù)建立在Windows平臺(tái)上的用戶都會(huì)對(duì)它有相當(dāng)?shù)挠H切感。今天,我們就來談?wù)勀P(guān)注的數(shù)據(jù)庫解決方案之微軟篇。區(qū)別于FoxPro、Access小型數(shù)據(jù)庫,SQL Server是一個(gè)功能完備的數(shù)據(jù)庫管理系統(tǒng)。它包括支持開發(fā)的引擎、標(biāo)準(zhǔn)的SQL語言、擴(kuò)展的特性(如復(fù)制、OLAP、分析)等功能。而像存儲(chǔ)過程、觸發(fā)器等特性,也是大型數(shù)據(jù)庫才擁有的。SQL Server 2000的優(yōu)點(diǎn)如下:1.上手容易話分兩頭,如果您的企業(yè)至今還未購置數(shù)據(jù)庫,其中一個(gè)主要的原因可能就是認(rèn)為它不好上手,那么,從SQL Server開始吧。畢竟,大多數(shù)的中

21、小企業(yè)日常的數(shù)據(jù)應(yīng)用是建立在Windows平臺(tái)上的。由于SQL Server與Windows界面風(fēng)格完全一致,且有許多向?qū)?Wizard)幫助,因此易于安裝和學(xué)習(xí),有關(guān)SQL Server的資料、培訓(xùn)隨處可得,并且目前國內(nèi)具有MCDBA認(rèn)證的工程師不在少數(shù)。從另一個(gè)角度來講,學(xué)習(xí)SQL Server是掌握其他平臺(tái)及大型數(shù)據(jù),如Oracle,Sybase,DB/2的基礎(chǔ)。因?yàn)檫@些大型數(shù)據(jù)庫對(duì)于設(shè)備、平臺(tái)、人員知識(shí)的要求往往較高,而并不是每個(gè)人都具備這樣的條件,且有機(jī)會(huì)去接觸它們。但有了SQL Server的基礎(chǔ),再去學(xué)習(xí)和使用它們就容易多了。IT行業(yè)的實(shí)踐經(jīng)驗(yàn)充分證明了這一點(diǎn)。2.兼容性良好由于

22、今天Windows操作系統(tǒng)占領(lǐng)著主導(dǎo)地的位,選擇SQL Server一定會(huì)在兼容性方面取得一些優(yōu)勢(shì)。另外,SQL Server 2000 除了具有擴(kuò)展性,可靠性以外,還具有可以迅速開發(fā)新的因特網(wǎng)系統(tǒng)的功能。尤其是它可以直接存貯 XML 數(shù)據(jù),可以將搜索結(jié)果以 XML格式輸出等特點(diǎn),有利于構(gòu)建了異構(gòu)系統(tǒng)的互操作性,奠定了面向互聯(lián)網(wǎng)的企業(yè)應(yīng)用和服務(wù)的基石。這些特點(diǎn)在.NET 戰(zhàn)略中發(fā)揮著重要的作用。 3.相對(duì)于7.0的憂越性Microsoft SQL Server 2000是在SQL Server 7.0的基礎(chǔ)上對(duì)性能、可靠性、質(zhì)量以及易用性進(jìn)行了擴(kuò)展。SQL Server 2000中包含許多新特

23、性,這些特性使其成為針對(duì)電子商務(wù)、數(shù)據(jù)倉庫和在線商務(wù)解決方案的卓越的數(shù)據(jù)庫平臺(tái)。其增強(qiáng)的特性包括對(duì)豐富的擴(kuò)展標(biāo)記語言(XML)的支持、綜合分析服務(wù)以及便捷的數(shù)據(jù)庫管理數(shù)據(jù)倉庫。Microsoft SQL Server 2000非常明顯的改進(jìn)就是增加了OLAP(聯(lián)機(jī)分析處理)功能,這可以讓很多中小企業(yè)用戶也可以使用數(shù)據(jù)倉庫的一些特性進(jìn)行分析。OLAP可以通過多維存儲(chǔ)技術(shù)對(duì)大型、復(fù)雜數(shù)據(jù)集執(zhí)行快速、高級(jí)的分析工作。數(shù)據(jù)挖掘功能能夠揭示出隱藏在大量數(shù)據(jù)中的傾向及趨勢(shì),它允許組織或機(jī)構(gòu)最大限度的從數(shù)據(jù)中獲取價(jià)值。通過對(duì)現(xiàn)有數(shù)據(jù)進(jìn)行有效分析,這一功能可以對(duì)未來的趨勢(shì)進(jìn)行預(yù)測(cè)。2.3 ADO簡介微軟公司的

24、ADO (ActiveX Data Objects) 是一個(gè)用于存取數(shù)據(jù)源的COM組件。它提供了編程語言和統(tǒng)一數(shù)據(jù)訪問方式OLE DB的一個(gè)中間層。允許開發(fā)人員編寫訪問數(shù)據(jù)的代碼而不用關(guān)心數(shù)據(jù)庫是如何實(shí)現(xiàn)的,而只用關(guān)心到數(shù)據(jù)庫的連接。訪問數(shù)據(jù)庫的時(shí)候,關(guān)于SQL的知識(shí)不是必要的,但是特定數(shù)據(jù)庫支持的SQL命令仍可以通過ADO中的命令對(duì)象來執(zhí)行。ADO對(duì)象模型定義了一組可編程的自動(dòng)化對(duì)象,可用于Visual Basic、Visual C+、Java以及其他各種支持自動(dòng)化特性的腳本語言。ADO最早被用于Microsoft Internet In formation Server中訪問數(shù)據(jù)庫的接口,

25、與一般的數(shù)據(jù)庫接口相比,ADO可更好地用于網(wǎng)絡(luò)環(huán)境,通過優(yōu)化技術(shù),它盡可能地降低網(wǎng)絡(luò)流量;ADO的另一個(gè)特性是使用簡單,不僅因?yàn)樗且粋€(gè)面向高級(jí)用戶的數(shù)據(jù)庫接口,更因?yàn)樗褂昧艘唤M簡化的接口用以處理各種數(shù)據(jù)源。這兩個(gè)特性使得ADO必將取代RDO和DAO,成為最終的應(yīng)用層數(shù)據(jù)接口標(biāo)準(zhǔn)。在ADO模型中,主體對(duì)象只有3個(gè):Connection、Command和Recordset,其他4個(gè)集合對(duì)象Errors、Properties、Parameters和Fields分別對(duì)應(yīng)Error、Property、Parameter和Field對(duì)象,整個(gè)ADO對(duì)象模型由這些對(duì)象組成。一個(gè)典型的ADO應(yīng)用使用Con

26、nection對(duì)象建立與數(shù)據(jù)源的連接,然后用一個(gè)Command對(duì)象給出對(duì)數(shù)據(jù)庫操作的命令,比如查詢或者更新數(shù)據(jù)等,而Recordset用于對(duì)結(jié)果集數(shù)據(jù)進(jìn)行維護(hù)或者瀏覽等操作。Command命令所使用的命令語言與底層所對(duì)應(yīng)的OLE DB數(shù)據(jù)源有關(guān),不同的數(shù)據(jù)源可以使用不同的命令語言,對(duì)于關(guān)系型數(shù)據(jù)庫,通常使用SQL作為命令語言。在Connection、Command和Recordset 3個(gè)對(duì)象中,Command對(duì)象是個(gè)可選對(duì)象,它是否有效取決于OLE DB數(shù)據(jù)提供者是否實(shí)現(xiàn)了ICommand接口。由于OLE DB可提供關(guān)系型數(shù)據(jù)源也可以提供非關(guān)系型數(shù)源,所以在非關(guān)系型數(shù)據(jù)源上使用傳統(tǒng)的SQL命

27、令查詢數(shù)據(jù)有可能無效,甚至Command命令對(duì)象也不能使用。第三章 總體設(shè)計(jì)3.1 系統(tǒng)需求分析經(jīng)過前面的初步調(diào)研分析,總結(jié)出倉庫管理工作具有以下特點(diǎn):在倉庫管理中存在帳目品種雜、重復(fù)次數(shù)多的問題,目前倉庫對(duì)所有信息的管理均以手工完成,既由資料管理員以各種記錄臺(tái)帳方式完成信息的登記,在需要某種信息的時(shí)候查找臺(tái)帳記錄。很明顯,目前的工作方法效率低下,信息保存的準(zhǔn)確性、安全性難以保證,信息查詢的快速性、完整性也難以保證,致使銷售管理工作費(fèi)人,費(fèi)時(shí),費(fèi)力,繁瑣枯燥,效率低下。因此實(shí)現(xiàn)倉庫管理的計(jì)算機(jī)化迫在眉睫, 本系統(tǒng)是集倉庫管理、貨物管理、倉庫貨物進(jìn)出庫管理、客戶統(tǒng)計(jì)、進(jìn)出庫統(tǒng)計(jì)等功能于一體的綜合

28、性倉儲(chǔ)管理系統(tǒng)。支持多種類型的入庫、出庫、補(bǔ)貨方式,同時(shí)支持多種查詢方式和全面的日志管理,可應(yīng)用于各種行業(yè)的單體倉庫精細(xì)化管理或者應(yīng)用于制造企業(yè)、物流企業(yè)、流通業(yè)及其它特殊行業(yè)的倉庫管理??梢暂p松解決物流企業(yè)在倉庫管理、貨物流動(dòng)分析等一系列問題,迅速提高物流企業(yè)對(duì)倉庫經(jīng)營管理水平、穩(wěn)固客戶群,增加經(jīng)濟(jì)效益,以最小的投資獲得雙盈的優(yōu)秀管理。幫助生產(chǎn)企業(yè)、分公司、分銷商、代理商、商場(chǎng)、商店等之間建立起一套完善、高效、具有快速反應(yīng)能力和管理能力的業(yè)務(wù)平臺(tái),可以極大的提高企業(yè)競(jìng)爭(zhēng)力,為企業(yè)創(chuàng)造價(jià)值果!經(jīng)過詳細(xì)的需求分析,得出倉庫管理系統(tǒng)的用戶圖如圖3.1圖3.1 倉庫管理系統(tǒng)用例圖3.2 模塊總體設(shè)計(jì)

29、本設(shè)計(jì)需要設(shè)計(jì)的系統(tǒng)是倉庫管理系統(tǒng),需要建立模塊配合功能來實(shí)現(xiàn)它,因此,下面簡單介紹一下本系統(tǒng)的幾個(gè)主要模塊。系統(tǒng)功能模塊圖如圖3.2圖3.2 倉庫管理系統(tǒng)功能模塊圖1.基礎(chǔ)信息管理:在基礎(chǔ)信息管理中需要實(shí)現(xiàn)操作員,商品,倉庫,供應(yīng)商的信息管理,包括信息的添加,修改,刪除,瀏覽。2.入庫管理: 在入庫管理中需要實(shí)現(xiàn)商品的入庫,入庫退貨管理,記錄入庫,入庫退貨信息。3.庫存管理: 在庫存管理中需要實(shí)現(xiàn)庫存商品打印,庫存盤點(diǎn),庫存調(diào)撥,商品出庫,庫存上下限管理。4.查詢管理: 在查詢管理中需要實(shí)現(xiàn)入庫查詢,入庫退貨查詢,報(bào)損,報(bào)益查詢,庫存調(diào)撥查詢,商品出庫查詢。3.3 數(shù)據(jù)庫設(shè)計(jì)3.3.1 數(shù)據(jù)

30、庫需求分析用戶的需求具體體現(xiàn)在各種信息的提供、保存、更新和查詢,這就要求數(shù)據(jù)庫結(jié)構(gòu)能充分滿足各種信息的輸出和輸入。收集基本數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)以及數(shù)據(jù)處理的流程,組成一份詳盡的數(shù)據(jù)字典,為后面的具體設(shè)計(jì)打下基礎(chǔ)。仔細(xì)分析調(diào)查有關(guān)倉庫管理信息需求的基礎(chǔ)上,得到如圖3.3所示的本系統(tǒng)所處理的數(shù)據(jù)流程。倉庫現(xiàn)有庫存匯總、處理各種單據(jù)產(chǎn)品入庫產(chǎn)品出庫報(bào)表打印圖3.3 倉庫管理系統(tǒng)數(shù)據(jù)流程圖通過對(duì)企業(yè)倉庫管理的內(nèi)容和數(shù)據(jù)流程分析,設(shè)計(jì)數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)如下: 貨物信息,包括的數(shù)據(jù)項(xiàng)有編號(hào)、貨物名稱、貨物類別、貨物規(guī)格、計(jì)量單位、最高限量、最低限量、備注等。 倉庫信息,包括的數(shù)據(jù)項(xiàng)有編號(hào)、倉庫名稱、倉庫地點(diǎn)、保管

31、員編號(hào)、備注等。 庫存狀況信息,包括的數(shù)據(jù)項(xiàng)有編號(hào)、貨物編號(hào)、庫存數(shù)量、倉庫編號(hào)等。 入庫單信息,包括的數(shù)據(jù)項(xiàng)有編號(hào)、貨物編號(hào)、經(jīng)辦人編號(hào)、入庫時(shí)間、入庫單價(jià)、入庫數(shù)量、供應(yīng)商編號(hào)、倉庫編號(hào)、定單狀況、其它金額、備注等。 出庫單信息,包括的數(shù)據(jù)項(xiàng)有編號(hào)、貨物編號(hào)、經(jīng)辦人編號(hào)、出庫時(shí)間、出庫單價(jià)、出庫數(shù)量、客戶編號(hào)、倉庫編號(hào)、定單狀況、其它金額、備注等。 進(jìn)行月盤點(diǎn)信息,包括的數(shù)據(jù)項(xiàng)有編號(hào)、倉庫編號(hào)、盤點(diǎn)時(shí)間、經(jīng)辦人編號(hào)、盤點(diǎn)數(shù)據(jù)等。3.3.2 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)得到上面的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)以后,就可以設(shè)計(jì)出能夠滿足用戶需求的各種實(shí)體結(jié)構(gòu),以及他們之間的關(guān)系,為以后的邏輯結(jié)構(gòu)設(shè)計(jì)打下基礎(chǔ)。根據(jù)上面

32、的設(shè)計(jì)規(guī)劃出的實(shí)體有:現(xiàn)有庫存信息實(shí)體、入庫信息實(shí)體、出庫信息實(shí)體、借入信息實(shí)體、借出信息實(shí)體、調(diào)撥信息實(shí)體圖和報(bào)損信息實(shí)體圖。主要實(shí)體具體的描述E-R圖如下:現(xiàn)有庫存信息實(shí)體E-R圖如圖3.4所示?,F(xiàn)有庫存信息實(shí)體編號(hào)貨物名稱最低限量最高限量圖3.4 現(xiàn)有庫存信息實(shí)體E-R圖入庫單信息實(shí)體E-R圖如圖3.5所示。入庫信息實(shí)體編號(hào)經(jīng)辦人編號(hào)入庫時(shí)間、單價(jià)、數(shù)量供應(yīng)商編號(hào)圖3.5 入庫單信息實(shí)體E-R圖出庫單信息實(shí)體E-R圖如圖3.6所示。出庫信息實(shí)體編號(hào)經(jīng)辦人編號(hào)入庫時(shí)間、單價(jià)、數(shù)量客戶編號(hào)圖3.6出庫信息實(shí)體E-R圖3.3.3 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)現(xiàn)在需要將在上面的數(shù)據(jù)庫概念結(jié)構(gòu)轉(zhuǎn)化為SQL

33、Sever 2000 數(shù)據(jù)庫系統(tǒng)所支持的實(shí)際數(shù)據(jù)模型,也就是數(shù)據(jù)庫的邏輯結(jié)構(gòu)。倉庫管理系統(tǒng)共使用了11張數(shù)據(jù)表,分別為操作員信息表(tb_operator),供應(yīng)商信息表(tb_providerinfo),庫存盤點(diǎn)明細(xì)表(tb_check_sub),庫存盤點(diǎn)主表(tb_check_main),庫存信息表(tb_storageinfo),入庫明細(xì)表(tb_instock_sub),入庫退貨明細(xì)表(tb_cancelinstock_sub),入庫退貨主表(tb_cancelinstock_main),商品庫存表(tb_merchandisetorage),商品入庫主表(tb_instore_mai

34、n),商品信息表(tb_merchandiseinfo)。本倉庫管理系統(tǒng)共設(shè)計(jì)了11張表,主要的8張表分別是:表3.1 操作員信息表(tb_operator)列名數(shù)據(jù)類型是否允許為空描述OperatorIDVarchar(10)否 操作員賬號(hào)(主鍵)NameVarchar(30)否操作員姓名PasswordVarchar(10)否操作員密碼LevelSmallint否操作員級(jí)別表3.2 供應(yīng)商信息表(tb_providername)列名數(shù)據(jù)類型是否允許為空描述ProvidernameVarchar(30)否 供應(yīng)商名稱(主鍵)ArtificaialpersonVarchar(30)否法人Pri

35、ncipalVarchar(30)否負(fù)責(zé)人PhoneVarchar(30)否電話AddrVarchar(30)否地址WebVarchar(30)是網(wǎng)址E_mailVarchar(30)是電子郵箱表3.3 庫存盤點(diǎn)明細(xì)表(tb_check_sub)列名數(shù)據(jù)類型是否允許為空描述checkIDVarchar(30)否 盤點(diǎn)單號(hào)(主鍵)MerchandiseidVarchar(30)否商品編號(hào)sumfloat否數(shù)量表3.4 庫存盤點(diǎn)主表(tb_check_main)列名數(shù)據(jù)類型是否允許為空描述checkIDVarchar(30)否 盤點(diǎn)單號(hào)(主鍵)storageVarchar(30)否 倉庫名稱(外鍵

36、)PrincipalVarchar(30)否負(fù)責(zé)人Checktimedatetime否盤點(diǎn)時(shí)間CheckspecSmallint否盤點(diǎn)標(biāo)識(shí)memoVarchar(100)否備注表3.5 庫存信息表(tb_storageinfo)列名數(shù)據(jù)類型是否允許為空描述StoragenameVarchar(30)否 倉庫名稱(主鍵)表3.6 入庫明細(xì)表(tb_instock_sub)列名數(shù)據(jù)類型是否允許為空描述InstockidVarchar(30)否 入庫單號(hào)(主鍵)merchandiseIDVarchar(30)否 商品編號(hào)(外鍵)Unitpricemoney否單價(jià)NumbersFloat否數(shù)量Reba

37、teFloat否折扣PaymoneyMoney否金額stocknameVarchar(30)否倉庫名稱表3.7 入庫退貨明細(xì)表(tb_cancelinstock_sub)列名數(shù)據(jù)類型是否允許為空描述CanelidVarchar(30)否 退貨單號(hào)(主鍵)MerchandiseidVarchar(30)否 商品編號(hào)(外鍵)unitpriceMoney否單價(jià)NumbersFloat否數(shù)量RebateFloat否折扣PaymineyMoney否金額stocknameVarchar(30)否倉庫名稱表3.8 入庫退貨主表(tb_ cancelinstock_main)列名數(shù)據(jù)類型是否允許為空描述Cca

38、ncelidVarchar(30)否 退貨單號(hào)(主鍵)ProviderVarchar(30)否供應(yīng)商OperatorVarchar(30)否操作員RebateFloat否折扣SumtotalMoney否總計(jì)PaymoneyMoney否應(yīng)付金額FactmoneyMoney否實(shí)付金額intimeDatetime(30)否退貨時(shí)間第四章 詳細(xì)設(shè)計(jì)4.1 入庫模塊設(shè)計(jì)分析4.1.1 商品入庫處理過程分析在進(jìn)行商品入庫時(shí),首先需要錄入入庫的主要信息,例如:供應(yīng)商、操作員、入庫時(shí)間等,然后錄入入庫的商品信息,例如:商品編號(hào)、名稱、入庫價(jià)格、折扣等,在錄入商品信息時(shí),程序?qū)⒆詣?dòng)總計(jì),并根據(jù)折扣計(jì)算應(yīng)付金額,

39、其商品入庫狀態(tài)圖如圖4.1所示。圖4.1 入庫狀態(tài)圖4.1.2 商品入庫查詢處理過程分析在查詢商品入庫信息時(shí),首先需要設(shè)置查詢條件,用戶可以根據(jù)需要將時(shí)間段查詢與具體條件查詢組合,進(jìn)行復(fù)雜的數(shù)據(jù)查詢,商品入庫查詢狀態(tài)如圖4.2所示。圖4.2 商品入庫查詢狀態(tài)圖4.2 系統(tǒng)模塊的詳細(xì)設(shè)計(jì)4.2.1 菜單設(shè)計(jì)為了設(shè)計(jì)一個(gè)特色的菜單,本人從CMenu類派生了一個(gè)CMyCoolMenu,并改寫父類的DrawItem、MeasureItem方法,重新繪制菜單。設(shè)計(jì)步驟(1)新建一個(gè)普通類CMenuItemContext,用于記錄菜單項(xiàng)的信息。(2)定義3個(gè)成員變量,分別記錄菜單項(xiàng)的圖標(biāo)索引、菜單屬性、菜

40、單標(biāo)題。(3)新建一個(gè)類,類名為“CMyCoolMenu”,基類為CMenu。(4)定義4個(gè)成員變量用于記錄菜單項(xiàng)內(nèi)容、臨時(shí)索引、記錄菜單項(xiàng)ID、存儲(chǔ)菜單項(xiàng)圖標(biāo)。(5)改寫“MeasureItem(LPMEASUREITEMSTRUCT lpMIS)”方法,根據(jù)菜單屬性重新設(shè)置菜單項(xiàng)的大小。(6)添加“AttachMenu”方法,根據(jù)菜單句柄加載菜單資源,并確定菜單項(xiàng)的屬性。(7)添加“ChangeMenuStyle”方法,從菜單資源中確定菜單項(xiàng)的屬性,參數(shù)bTop標(biāo)識(shí)菜單項(xiàng)是否為頂層菜單。(8)繪制菜單。由于菜單項(xiàng)有多種狀態(tài),例如,鼠標(biāo)移動(dòng)到菜單項(xiàng)時(shí)的狀態(tài),菜單項(xiàng)被選中時(shí)的狀態(tài)。因此需要定義

41、多個(gè)方法繪制菜單。(9)改寫菜單項(xiàng)的“DrawItem”方法,繪制菜單。(10)創(chuàng)建一個(gè)菜單資源,定義一個(gè)CMyCoolMenu類對(duì)象m_mnu,調(diào)用AttachMenu方法關(guān)聯(lián)菜單與菜單資源。(11)改寫主窗口的“OnDrawItem”方法、“OnMeasureItem”方法。(12)在主窗口的頭文件中將“OnDrawItem”方法,“OnMeasureItem”方法改為消息處理方法。(13)在主窗口的源文件消息映射部分添加映射宏。4.2.2 工具欄設(shè)計(jì)在倉庫管理系統(tǒng)的工具欄由CReBar類與CToolBar類組成。其中,CReBar類作為工具欄CToolBar的父窗口,可以為CReBar類

42、設(shè)置背景顏色,然后將CToolBar類設(shè)置為透明效果,這樣,工具欄背景就被巧妙地改變了。下面介紹如何利用CReBar類,CToolBar類設(shè)計(jì)工具欄。(1)在主窗口框架中定義一個(gè)CReBar類對(duì)象m_wndReBar,一個(gè)CToolBar類對(duì)象m_wndToolBar,一個(gè)CImageList類對(duì)象img,其中img用于存儲(chǔ)工具欄上顯示的圖像。(2)定義一個(gè)CreateExToolBar()方法,用于創(chuàng)建工具欄。(3)在CreateExToolBar()方法中通過調(diào)用Create()方法創(chuàng)建CReBar控件。(4)通過調(diào)用CToolBar類的CreateEx()方法創(chuàng)建一個(gè)工具欄控件。(5)設(shè)

43、置工具欄按鈕大小,加載工具欄按鈕圖像。(6)修改工具欄風(fēng)格,使其背景透明。向工具欄添加工具欄按鈕,并設(shè)置工具欄按鈕信息(7)將工具欄添加到CReBar中,設(shè)置CReBar的Band(邊條)屬性。4.2.3 系統(tǒng)主界面?zhèn)}庫管理系統(tǒng)主窗體主要由菜單、工具欄、狀態(tài)欄、和客戶區(qū)域4個(gè)部分組成。在設(shè)計(jì)文檔/視圖結(jié)構(gòu)程序是,狀態(tài)欄會(huì)由應(yīng)用程序向?qū)ё詣?dòng)創(chuàng)建,因此不用進(jìn)行設(shè)計(jì)。對(duì)于客戶區(qū)域的設(shè)計(jì),本人將其劃分為兩個(gè)視圖區(qū)域,左邊視圖區(qū)域?yàn)橐粋€(gè)樹視圖控件,右邊區(qū)域?yàn)槠胀ǖ囊晥D窗口,中間部分為分隔條,用戶可以通過分隔條改變視圖區(qū)域的大小。主窗體設(shè)計(jì)效果如圖4.3:圖4.3 主窗體運(yùn)行效果主窗體的設(shè)計(jì)步驟如下:(1

44、)從樹視圖控件類CTreeView派生一個(gè)子類CLeftView.(2)在CLeftView中定義一個(gè)CImageList類型的成員變量ImgTree,用于存儲(chǔ)樹視圖節(jié)點(diǎn)圖標(biāo)。(3)改寫“OnInitialUpdate()”方法,創(chuàng)建圖像列表,向圖像列表中加載圖像,定義樹節(jié)點(diǎn)結(jié)構(gòu),向樹視圖控件中添加節(jié)點(diǎn)。(4)處理樹視圖控件的雙擊事件,根據(jù)節(jié)點(diǎn)標(biāo)題顯示相應(yīng)的窗口。這樣,當(dāng)用戶雙擊節(jié)點(diǎn)時(shí),就會(huì)顯示相應(yīng)的對(duì)話框。(5)在主窗口框架類定義一個(gè)CSplitterWnd類對(duì)象m_wndSpliter,用于拆分窗口。(6)改寫主窗口框架類的“OnCreateClient”方法,將客戶區(qū)域分為兩個(gè)部分。至此

45、,完成主窗口的設(shè)計(jì)。4.2.4 父窗口設(shè)計(jì)在設(shè)計(jì)倉庫管理系統(tǒng)時(shí),本人按功能將各模塊組織起來,放在一個(gè)父窗口的標(biāo)簽控件中,每個(gè)標(biāo)簽頁顯示一個(gè)子窗口,其運(yùn)行效果如圖4.4粉色部分所示。圖4.4 標(biāo)簽頁運(yùn)行效果在設(shè)計(jì)父窗口是,本人定義了一個(gè)標(biāo)簽控件類CTabSheet,該控件派生于類CTabCtrl,主要實(shí)現(xiàn)如下功能: 存儲(chǔ)標(biāo)簽控件中顯示的所有窗口的指針。 存儲(chǔ)標(biāo)簽控件中顯示的所有窗口的標(biāo)題和窗口ID。 記錄標(biāo)簽控件的頁數(shù)。 記錄標(biāo)簽控件的當(dāng)前頁索引。 將窗口添加到標(biāo)簽頁中。 設(shè)置窗口在標(biāo)簽頁中的顯示位置。 顯示指定標(biāo)簽頁中的窗口。以下是CTabSheet類的詳細(xì)設(shè)計(jì)過程:(1)創(chuàng)建一個(gè)MFC類,名

46、稱為“CTabSheet”,基類為“CTabCtrl”。(2)定義5個(gè)成員變量,其中,m_Title用于存儲(chǔ)標(biāo)簽控件中所有窗口的標(biāo)題,m_IDD存儲(chǔ)標(biāo)簽控件中所有窗口的ID,m_pPages存儲(chǔ)標(biāo)簽控件中所有的窗口指針,m_nNumOfPages記錄標(biāo)簽控件中的標(biāo)簽頁數(shù),m_nCurrentPage記錄標(biāo)簽控件的當(dāng)前頁面索引。(3)將窗口添加到標(biāo)簽頁面,參數(shù)title為窗口標(biāo)題,pDialog是頁面關(guān)聯(lián)的窗口指針,ID為窗口ID。(4)創(chuàng)建標(biāo)簽頁面,顯示所有窗口。(5)顯示某個(gè)標(biāo)簽頁中的窗口。在完成標(biāo)簽控件的設(shè)計(jì)后,開始設(shè)計(jì)父窗口。(1)創(chuàng)建一個(gè)窗口,類名為“CDlgInputStorageM

47、”,在該類中定義工具欄對(duì)象m_wndToolBar(類名為CToolBar)、m_wndReBar(類名為CReBar)。(2)定義一個(gè)CTabSheet對(duì)象,名稱為“m_tab”,用于窗口管理。(3)定義功能窗口對(duì)象。用戶可以根據(jù)需要定義窗口類對(duì)象。例如,在入庫管理中需要包含兩個(gè)功能模塊,即入庫管理和入庫退貨管理,因此需要定義兩個(gè)窗口對(duì)象。(4)在窗口類CDlgInputStorageM的初始化事件中調(diào)用標(biāo)簽控件(m_tab)的AddPage方法添加頁面,并顯示頁面和相應(yīng)窗口。4.2.5 商品入庫程序設(shè)計(jì)商品入庫管理主要實(shí)現(xiàn)商品入庫信息的登記,生成入庫票號(hào),修改商品庫存的功能。在錄入入庫信息

48、時(shí),為了方便用戶錄入數(shù)據(jù),還提供了一些輔助功能。例如:在錄入供應(yīng)商信息時(shí),按PageDown鍵,會(huì)以列表的形式顯示所有供應(yīng)商信息供用戶選擇;在錄入商品信息時(shí),可以按商品編號(hào)、商品名稱、助記碼進(jìn)行匹配查詢,以列表形式顯示商品信息。商品入庫管理活動(dòng)圖,如圖4.5所示。圖4.5 商品入庫管理活動(dòng)圖商品入庫管理運(yùn)行效果如圖4.6所示。圖4.6 商品入庫管理運(yùn)行效果設(shè)計(jì)步驟(1)創(chuàng)建一個(gè)窗口,類名為“CDlgProductorInput2”,刪除窗口中的“OK”和“Cancel”按鈕。(2)在對(duì)話框?qū)傩源翱谥羞x擇“Styles”選項(xiàng)卡,將“Title bar”選項(xiàng)置于非選中狀態(tài),取消窗口的標(biāo)題欄。(3)

49、在窗口中放置7個(gè)靜態(tài)文本資源、6個(gè)編輯框資源、1個(gè)時(shí)間控制資源、2個(gè)列表框資源、2個(gè)列表視圖資源。(4)設(shè)置各主要資源屬性如表4.1表4.1 商品入庫各主要資源屬性對(duì)象名稱資源符號(hào)資源變量資源屬性List BoxIDC_LISTBOXListbox可見屬性:FalseEdit BoxIDC_OPERATORNAMEOperatorname可用屬性:FalseList ViewIDC_DETAILLISTList視圖屬性:Report4.2.6 庫存盤點(diǎn)程序設(shè)計(jì)在企業(yè)中,倉庫管理人員會(huì)定期對(duì)庫存商品進(jìn)行盤點(diǎn),以確認(rèn)商品是否缺少。在倉庫管理系統(tǒng)中,庫存盤點(diǎn)是對(duì)計(jì)算機(jī)中原始商品數(shù)量進(jìn)行修改,以使其與

50、實(shí)際商品數(shù)量一致。此外,還可以記錄原始商品數(shù)量與實(shí)際商品數(shù)量存在差距的原因,即由于何種原因?qū)е聦?shí)際的商品數(shù)量與原始數(shù)據(jù)不符,并且針對(duì)商品數(shù)量減少的情況,對(duì)倉庫管理人員進(jìn)行處罰。庫存盤點(diǎn)窗口如圖4.7所示。圖4.7 庫存盤點(diǎn)運(yùn)行效果設(shè)計(jì)步驟(1)新建一個(gè)窗體,其類名為“CDlgStorePD3”,刪除窗口中的“OK”和“Cancle”按鈕。(2)在對(duì)話框?qū)傩源翱谥羞x擇“Styles”選項(xiàng)卡,將“Title bar”選項(xiàng)卡置于非選中狀態(tài),取消 窗口的標(biāo)題欄。(3)向窗口中添加5個(gè)靜態(tài)文本資源、2個(gè)編輯框資源、2個(gè)組合框資源、2個(gè)列表視圖資源、1個(gè)時(shí)間控件資源。(4)設(shè)置各主要資源屬性,如表4.2所

51、示。表4.2 庫存盤點(diǎn)各主要資源屬性對(duì)象名稱資源符號(hào)資源變量資源屬性Com BoxIDC_COMBO1Storagename類型屬性:Drop ListList ViewIDC_LIST3Listinfo可用屬性:FALSE視圖屬性:ReportList ViewIDC_LIST1list視圖屬性:Report4.2.7 入庫查詢程序設(shè)計(jì)入庫查詢能夠按多種方式查詢商品的入庫信息,倉庫管理人員能夠根據(jù)這些歷史入庫信息制定采購計(jì)劃。入庫查詢管理活動(dòng)圖如圖4.8所示.圖4.8 入庫查詢管理活動(dòng)圖入庫查詢管理窗口如圖4.9所示圖4.9 入庫查詢管理運(yùn)行效果設(shè)計(jì)步驟(1)新建一個(gè)窗體,其類名為“CDlg

52、InputQuery4”,刪除窗口中的“OK”和“Cancel”按鈕。(2)在對(duì)話框?qū)傩源翱谥羞x擇“Styles”選項(xiàng)卡,將“Title bar”選項(xiàng)置于非選中狀態(tài),取消窗口的標(biāo)題欄。(3)向窗口添加3個(gè)靜態(tài)文本資源、一個(gè)編輯框資源、一個(gè)組合框資源、2個(gè)列表資源、2個(gè)時(shí)間控件資源、2個(gè)復(fù)選框資源。(4)設(shè)置各主要資源屬性。如表4.3所示表4.3 入庫查詢各主要資源屬性對(duì)象名稱資源符號(hào)資源變量資源屬性Check BoxIDC_CHECK1Check1標(biāo)題屬性:空Com BoxIDC_COMBO1Fields數(shù)據(jù):入庫票號(hào) 供應(yīng)商 操作員 商品名稱類型:Drop ListList ViewIDC_

53、LIST1List視圖屬性為:Report4.3 疑難問題分析解決4.3.1 利用表格錄入商品在設(shè)計(jì)商品入庫模塊時(shí),為了方便用戶錄入多種商品,采用表格形式進(jìn)行錄入。程序中利用列表視圖控件錄入商品信息。但MFC提供的列表視圖控件CListCtrl只能顯示數(shù)據(jù),而不能編輯,為了使列表視圖控件能夠編輯,筆者改寫了CListCtrl類,從該類派生一個(gè)子類CCustomGrid。為了讓CCustomGrid能夠具有編輯功能,在該類中定義了一個(gè)編輯框類,當(dāng)用戶單擊表格中的單元格時(shí),將編輯框顯示在單元格中,用戶可以在編輯框中輸入數(shù)據(jù),在編輯失去焦點(diǎn)時(shí),將數(shù)據(jù)寫入單元格。根據(jù)上面的功能描述,需要解決如下問題:

54、 定義一個(gè)編輯框類,使其在失去焦點(diǎn)時(shí)將數(shù)據(jù)顯示在列表中。 在表格中創(chuàng)建編輯框。 用戶單擊單元格時(shí),確定單元格坐標(biāo)(行和列索引)。 根據(jù)單元格坐標(biāo)確定單元格區(qū)域,并在指定的區(qū)域顯示編輯框。設(shè)計(jì)步驟1. 定義一個(gè)編輯框類從CEdit派生一個(gè)編輯框類,本例為“CKeyEdit”。為了使CKeyEdit具有更多的功能,定義了一個(gè)布爾型的成員變量IsNumber,用于確定是否限制編輯框只允許輸入數(shù)字。處理編輯框的WM_KILLFOCUS消息,使其在失去焦點(diǎn)時(shí)將數(shù)據(jù)顯示在列表的當(dāng)前單元格中。為了使編輯框可以根據(jù)情況限制為本的輸入,需要處理WM_CHAR消息,當(dāng)IsNumber為TRUE時(shí),編輯框只允許輸入

55、數(shù)據(jù):為FALSE,不進(jìn)行限制。2.定義CCustomGrid類,創(chuàng)建編輯框從CListCtrl派生一個(gè)子類CCustomGrid,在該類中定義一個(gè)CKeyEdit對(duì)象。改寫虛擬方法PreSubclassWindow,設(shè)置列表控件風(fēng)格,創(chuàng)建編輯框。3用戶單擊表格時(shí),確定單元格的坐標(biāo)為了在用戶單擊表格時(shí)確定編輯框出現(xiàn)的位置,首先需要確定用戶單擊時(shí)的單元格坐標(biāo)。處理表格的WM_LBUTTONDOWN消息,根據(jù)鼠標(biāo)單擊時(shí)的指針位置確定單元格坐標(biāo)。4.根據(jù)單元格坐標(biāo)確定單元格區(qū)域,并且該區(qū)域顯示編輯框CListCtrl類提供了GetSubItemRect方法,能夠根據(jù)單元格坐標(biāo)確定其區(qū)域。4.3.2 聯(lián)想錄入表格的實(shí)現(xiàn)在本系統(tǒng)的商品錄入模塊管理中,為了方便用戶錄入數(shù)據(jù),在輸入商品信息時(shí),可以鍵入簡碼,系統(tǒng)會(huì)將相關(guān)的商品信息顯示在一個(gè)列表中,供用戶選擇。根據(jù)上面的功能描述,需要解決如下問題: 截獲表格編輯時(shí)的消息。 根據(jù)不同的字段(商品編號(hào),

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論