2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩50頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  分類號(hào): TP31 編號(hào):201125502218 </p><p><b>  庫(kù)存管理系統(tǒng)</b></p><p>  Storage Management System</p><p>  (

2、申請(qǐng)煙臺(tái)大學(xué)學(xué)士學(xué)位論文)</p><p>  申請(qǐng)學(xué)位: 工學(xué)學(xué)士學(xué)位 </p><p>  院 系: 計(jì)算機(jī)學(xué)院 </p><p>  專 業(yè): 自動(dòng)化 </p><p>  學(xué)生姓名: </p><p><b>  學(xué) 號(hào): </b></

3、p><p><b>  指導(dǎo)老師 </b></p><p>  2011年 6 月 7 日</p><p><b>  申請(qǐng)學(xué)士學(xué)位論文</b></p><p><b>  庫(kù)存管理系統(tǒng)</b></p><p><b>  申請(qǐng)人:</b

4、></p><p><b>  導(dǎo) 師: </b></p><p>  2011年 6 月 7 日</p><p><b>  煙臺(tái)大學(xué)</b></p><p><b>  附3.</b></p><p>  煙臺(tái)大學(xué)畢業(yè)論文(設(shè)計(jì))任務(wù)書&l

5、t;/p><p>  院(系):計(jì)算機(jī)學(xué)院</p><p>  [摘要] 庫(kù)存管理系統(tǒng)是物資管理系統(tǒng)的核心,是一個(gè)企業(yè)不可缺少的部分,它的內(nèi)容對(duì)于企業(yè)的決策者和管理者來(lái)說(shuō)都至關(guān)重要。—直以來(lái)人們使用傳統(tǒng)人工的方式管理倉(cāng)庫(kù),效率低,查找、更新和維護(hù)比較困難。尤其在我國(guó)由于勞動(dòng)力相對(duì)充足,庫(kù)存信息管理仍以人工管理為主。該庫(kù)存管理系統(tǒng)以Visual Basic 6.0集成開發(fā)環(huán)境為平臺(tái),外接Acce

6、ss數(shù)據(jù)庫(kù),擁有采購(gòu)入庫(kù)、存貨查看、銷售出庫(kù)、查詢、權(quán)限設(shè)置等模塊,操作簡(jiǎn)單界面友好。利用該庫(kù)存管理系統(tǒng)不僅可以輕松管理查看元件、成品、訂單等的相關(guān)信息而且可以對(duì)產(chǎn)品銷售、倉(cāng)庫(kù)存貨進(jìn)行分析。對(duì)產(chǎn)品銷售、倉(cāng)庫(kù)存貨進(jìn)行分析是本庫(kù)存管理系統(tǒng)的特色所在。元件入庫(kù)、元件消耗、成品入庫(kù)、發(fā)貨、訂單等信息不僅可以列表查看而且可以生成報(bào)表。另外還可以生成柱狀圖查看存貨信息。客戶能夠在查詢模塊對(duì)任意信息進(jìn)行查詢。查詢信息的輸入通過(guò)組合框和文本框完成的,界

7、面簡(jiǎn)單明了。系統(tǒng)的采購(gòu)入庫(kù)、存貨查看、銷售出庫(kù)、權(quán)限設(shè)置各對(duì)應(yīng)一個(gè)權(quán)限。權(quán)限設(shè)置簡(jiǎn)單快捷。</p><p>  [關(guān)鍵詞] 庫(kù)存管理;存貨分析;Visual Basic 6.0;Access數(shù)據(jù)庫(kù);</p><p>  Abstract: Storage Management System which is an indispensable part to an enterprise p

8、lays an important role in goods and materials management system. The content of it is of vital importance to decision makers and managers in various enterprises. We used to manage storages manually. Of course, it is low

9、efficient and very difficult to search, update and maintain data. In China, manual management has been the main method to manage storages because of our abundant labor force. Connecting with Acc</p><p>  Key

10、 words: Storage Management System; marketing analyses; Visual Basic 6.0; Access data base </p><p><b>  目 錄</b></p><p><b>  1 緒 論1</b></p><p>  1.1 本課題的

11、研究意義及必要性1</p><p>  1.2 相關(guān)領(lǐng)域國(guó)內(nèi)外應(yīng)用的現(xiàn)狀及發(fā)展趨勢(shì)1</p><p><b>  2 系統(tǒng)分析2</b></p><p>  2.1 系統(tǒng)可行性分析2</p><p>  2.2 系統(tǒng)功能介紹2</p><p><b>  3 總體設(shè)計(jì)3&

12、lt;/b></p><p>  3.1 功能模塊劃分3</p><p>  3.2 系統(tǒng)流程4</p><p>  3.3 系統(tǒng)開發(fā)工具介紹4</p><p>  3.3.1 Visual Basic介紹4</p><p>  3.3.2 Access數(shù)據(jù)庫(kù)介紹5</p><p&g

13、t;<b>  4 詳細(xì)設(shè)計(jì)6</b></p><p>  4.1 各模塊的功能與實(shí)現(xiàn)6</p><p>  4.1.1 注冊(cè)與登錄模塊6</p><p>  4.1.2 采購(gòu)入庫(kù)模塊8</p><p>  4.1.3 存貨查看模塊9</p><p>  4.1.4 銷售出庫(kù)模塊12

14、</p><p>  4.1.5 查詢模塊19</p><p>  4.1.6 權(quán)限設(shè)置模塊25</p><p>  4.2 系統(tǒng)數(shù)據(jù)庫(kù)的設(shè)計(jì)26</p><p>  4.2.1 數(shù)據(jù)庫(kù)選擇及理由26</p><p>  4.2.2 數(shù)據(jù)庫(kù)表的結(jié)構(gòu)27</p><p>  5 綜合測(cè)

15、試31</p><p>  5.1 系統(tǒng)注冊(cè)與登錄模塊測(cè)試31</p><p>  5.2 采購(gòu)入庫(kù)模塊測(cè)試32</p><p>  5.3 存貨分析測(cè)試33</p><p>  5.4 銷售出庫(kù)模塊測(cè)試34</p><p>  5.5 查詢模塊測(cè)試35</p><p>  5.6

16、權(quán)限設(shè)置模塊測(cè)試36</p><p><b>  結(jié) 束 語(yǔ)37</b></p><p><b>  致 謝38</b></p><p><b>  參考文獻(xiàn)39</b></p><p>  附錄A 部分代碼40</p><p><b&g

17、t;  1 緒 論</b></p><p>  1.1 本課題的研究意義及必要性</p><p>  庫(kù)存管理系統(tǒng)是物資管理系統(tǒng)的核心,是一個(gè)企業(yè)不可缺少的部分,它的內(nèi)容對(duì)于企業(yè)的決策者和管理者來(lái)說(shuō)都至關(guān)重要?!币詠?lái)人們使用傳統(tǒng)人工的方式管理倉(cāng)庫(kù),效率低,查找、更新和維護(hù)比較困難?,F(xiàn)在,倉(cāng)庫(kù)作業(yè)和庫(kù)存管理作業(yè)已多樣化、復(fù)雜化,靠人工去處理已十分困難。如果不能保證正確的進(jìn)貨、

18、驗(yàn)收及發(fā)貨,就會(huì)導(dǎo)致產(chǎn)生過(guò)量的庫(kù)存,延遲交貨時(shí)間,增加經(jīng)營(yíng)成本,以致失去客戶。隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,庫(kù)存管理系統(tǒng)應(yīng)運(yùn)而生,其檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等優(yōu)點(diǎn)極大地提高人事勞資管理的效率,其能夠有效地組織人員、空間和設(shè)備進(jìn)行收貨、存儲(chǔ)、揀貨和運(yùn)輸,組織運(yùn)送原材料和部件到生產(chǎn)企業(yè),運(yùn)送成品到批發(fā)商、分銷商和最終客戶手中等強(qiáng)大的功能已為人們所熟知。倉(cāng)庫(kù)管理系統(tǒng)是為企業(yè)的采購(gòu)、制造計(jì)劃

19、、制造執(zhí)行、客戶服務(wù)系統(tǒng)與倉(cāng)庫(kù)或配送中心提供的管理手段,滿足企業(yè)對(duì)低成本和快速處理的要求,幫助不同行業(yè)的企業(yè)解決復(fù)雜的配送問(wèn)題并且降低訂單履行成本,它已越來(lái)越廣泛的應(yīng)用到各大倉(cāng)庫(kù),并隨著不斷的完善發(fā)揮著越來(lái)越重要的作用。</p><p>  為此,有必要開發(fā)一個(gè)信息添加快捷、查找方便、穩(wěn)定性高的庫(kù)存管理系統(tǒng)。該庫(kù)存管理系統(tǒng)以Visual Basic 6.0集成開發(fā)環(huán)境為平臺(tái),擁有采購(gòu)入庫(kù)、存貨查看、銷售出庫(kù)、查詢

20、、權(quán)限設(shè)置等模塊,操作簡(jiǎn)單易學(xué)。</p><p>  1.2 相關(guān)領(lǐng)域國(guó)內(nèi)外應(yīng)用的現(xiàn)狀及發(fā)展趨勢(shì)</p><p>  庫(kù)存管理系統(tǒng)已經(jīng)在發(fā)達(dá)國(guó)家廣泛應(yīng)用,而且應(yīng)用范圍越來(lái)越廣功能越來(lái)越全面,操作越來(lái)越簡(jiǎn)便,成本越來(lái)越低廉。目前主要應(yīng)用于大中小型企業(yè),工廠,物流公司,超市以及一些科研單位。在我國(guó)由于勞動(dòng)力相對(duì)充足,企業(yè)對(duì)庫(kù)存管理系統(tǒng)不夠重視?,F(xiàn)在我國(guó)的庫(kù)存信息管理仍以人工管理為主。</

21、p><p><b>  2 系統(tǒng)分析</b></p><p>  2.1 系統(tǒng)可行性分析</p><p>  首先,系統(tǒng)采用了完全模塊化的總體結(jié)構(gòu)設(shè)計(jì),自上而下,逐層求精,將大量過(guò)程組合在一個(gè)過(guò)程文件中,使整個(gè)系統(tǒng)程序只包括兩個(gè)部分:總控模塊和過(guò)程文件。系統(tǒng)結(jié)構(gòu)清晰,并且大大減少了磁盤訪問(wèn)的頻繁程度,使運(yùn)行速度加快并且使程序的維護(hù)和保存更加簡(jiǎn)便。

22、第二,本系統(tǒng)將采用VB制作友好的人機(jī)交互頁(yè)面。人機(jī)交互界面啟動(dòng)時(shí)將要求用戶輸入密碼,保證了庫(kù)存信息的保密性。用戶可以在界面上選擇查看各個(gè)模塊。對(duì)于各原料庫(kù)存、原料需求、銷售情況等數(shù)據(jù)將盡量以圖形的形式給出,方便用戶對(duì)比分析。第三,采用數(shù)據(jù)庫(kù)存儲(chǔ)用到的各種數(shù)據(jù)。用戶可以在人機(jī)交互界面上實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作,方便快捷。通過(guò)使用數(shù)據(jù)庫(kù)減少了人力勞動(dòng),降低了倉(cāng)庫(kù)管理成本。第四,為方便信息對(duì)比、保存,系統(tǒng)設(shè)置了信息查看、報(bào)表等功能。</p&g

23、t;<p>  2.2 系統(tǒng)功能介紹</p><p>  庫(kù)存管理系統(tǒng)作為一種信息管理系統(tǒng),其基本功能還是信息的錄入和查詢。該庫(kù)存管理系統(tǒng)以Visual Basic 6.0集成開發(fā)環(huán)境為平臺(tái)設(shè)計(jì)各種操作界面。由于Visual Basic 6.0只能支持Access97及其以下的版本,本庫(kù)存管理系統(tǒng)選擇使用Access97作為后臺(tái)數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)分為用戶管理、入庫(kù)成品管理、入庫(kù)元件管理、訂單管理、發(fā)貨管

24、理、產(chǎn)品所需元件、元件消耗管理七個(gè)表。Visual Basic 6.0新增了數(shù)據(jù)環(huán)境設(shè)計(jì)器,它與數(shù)據(jù)報(bào)表設(shè)計(jì)器一起使用能夠?qū)崿F(xiàn)在VB中輕松創(chuàng)建報(bào)表的功能。</p><p><b>  3 總體設(shè)計(jì)</b></p><p>  3.1 功能模塊劃分</p><p>  本庫(kù)存管理系統(tǒng)由注冊(cè)與登錄、采購(gòu)入庫(kù)、存貨查看、銷售出庫(kù)、查詢、權(quán)限設(shè)置等六

25、個(gè)功能模塊組成,如圖3.1所示。</p><p>  圖3.1 庫(kù)存管理系統(tǒng)模塊</p><p>  本庫(kù)存管理系統(tǒng)由注冊(cè)與登錄、采購(gòu)入庫(kù)、存貨查看、銷售出庫(kù)、查詢、權(quán)限設(shè)置等六個(gè)功能模塊組成。系統(tǒng)注冊(cè)與登錄模塊為用戶提供簡(jiǎn)潔的注冊(cè)、登錄界面。注冊(cè)之后方可登錄到主界面。采購(gòu)入庫(kù)模塊主要完成成品和元件入庫(kù)信息的添加、刪除、編輯等工作,分為成品入庫(kù)管理、成品入庫(kù)信息查看、元件入庫(kù)管理、元件入庫(kù)

26、信息查看四個(gè)子模塊。存貨查看模塊分為成品存貨查看、元件存貨查看、存貨分析三個(gè)子模塊。成品存貨查看和元件存貨查看的功能是顯示元件和成品的當(dāng)前存貨量,有圖表和柱狀圖兩種顯示方式供用戶選擇。存貨分析部分是該模塊的特色部分。存貨分析可以根據(jù)尚未發(fā)貨的訂單數(shù)分析當(dāng)前的成品存貨、元件存貨是否充裕。存貨分析部分的存在使得本庫(kù)存管理系統(tǒng)不再是簡(jiǎn)單的信息記錄系統(tǒng)。銷售出庫(kù)模塊由發(fā)貨信息、訂單信息、元件消耗、產(chǎn)品所需元件、銷銷售分析五個(gè)子模塊組成。其中,發(fā)

27、貨管理子模塊又分為發(fā)貨管理和發(fā)貨信息查看兩個(gè)子模塊,訂單信息子模塊又分為訂單信息管理、訂單信息查看兩個(gè)子模塊,元件消耗子模塊又分為元件消耗管理、元件消耗信息查看兩個(gè)子模塊。發(fā)貨信息、訂單信息、元件消耗主要用于對(duì)發(fā)貨、訂單、元件消耗信息的錄入、查看。產(chǎn)品所需元件子模塊的功</p><p><b>  3.2 系統(tǒng)流程</b></p><p>  本庫(kù)存管理系統(tǒng)的使用流程

28、是:用戶首先在注冊(cè)界面上注冊(cè),只有注冊(cè)成功的用戶才可以在登陸界面憑用戶名和密碼登錄。登錄之后系統(tǒng)根據(jù)用戶具有的權(quán)限確定用戶可以使用哪些模塊。對(duì)于用戶沒(méi)有權(quán)限的模塊,系統(tǒng)將以灰色顯示并禁止用戶訪問(wèn)。具體流程如圖3.2所示。</p><p>  圖3.2 系統(tǒng)流程圖</p><p>  3.3 系統(tǒng)開發(fā)工具介紹</p><p>  3.3.1 Visual Basic介

29、紹</p><p>  Visual Basic(簡(jiǎn)稱VB)是美國(guó)微軟公司推出的Windows環(huán)境下的軟件開發(fā)工具,它采用面向?qū)ο蟮木幊碳夹g(shù),巧妙的把開發(fā)Windows環(huán)境下應(yīng)用程序的復(fù)雜性“封裝”起來(lái),可以既快捷又簡(jiǎn)單得開發(fā)Windows應(yīng)用軟件,并使用事件驅(qū)動(dòng)的編程思想,提高了編寫應(yīng)用程序時(shí)的靈活性和方便性。Visual Basic 6.0的聯(lián)機(jī)幫助文檔使用Microsoft Visual Studio 6.

30、0統(tǒng)一的MSDN(Microsoft Developer Network)幫助方式。</p><p>  VB6.0是微軟公司Microsoft Visual Studio開發(fā)工具套件中的成員之一,包括三個(gè)版本:學(xué)習(xí)版(Learning)、專業(yè)版(Professional)和企業(yè)版(Enterprise)。</p><p>  本庫(kù)存管理系統(tǒng)使用的是Visual Basic 6.0專業(yè)版。

31、專業(yè)版為編程人員提供了一整套功能完備的軟件開發(fā)工具。包括學(xué)習(xí)班的全部功能,還包括Active X控件、Internet Information Server Application Designer、集成的Visual Database Tools和Data Environment、Active Data Objects和Dynamic HTML Page Designer。</p><p>  3.3.2 Ac

32、cess數(shù)據(jù)庫(kù)介紹</p><p>  Microsoft Office Access是由微軟發(fā)布的關(guān)聯(lián)式數(shù)據(jù)庫(kù)管理系統(tǒng),它結(jié)合了Microsoft Jet Database Engine和圖形用戶界面兩項(xiàng)特點(diǎn),是Microsoft Office的成員之一。Access作為一種數(shù)據(jù)庫(kù)管理軟件,是小型企業(yè)的專業(yè)化數(shù)據(jù)庫(kù)設(shè)計(jì)和開發(fā)工具,它可以完成保存信息、數(shù)據(jù)計(jì)算處理、數(shù)據(jù)分析處理等功能,與Excel等工具可實(shí)現(xiàn)協(xié)同

33、工作。</p><p><b>  4 詳細(xì)設(shè)計(jì)</b></p><p>  4.1 各模塊的功能與實(shí)現(xiàn)</p><p>  4.1.1 注冊(cè)與登錄模塊</p><p>  該模塊的功能是自動(dòng)記錄用戶申請(qǐng)的用戶名和密碼,并在用戶登錄時(shí)進(jìn)行驗(yàn)證。當(dāng)用戶申請(qǐng)的用戶名已經(jīng)存在時(shí),系統(tǒng)將給出提示“該用戶名已存在”并自動(dòng)清空申請(qǐng)

34、用戶名的輸入框。在申請(qǐng)密碼部分,系統(tǒng)要求用戶兩次輸入密碼,只有兩次輸入一致才可以成為用戶的密碼。在用戶成功申請(qǐng)用戶名和密碼之后,系統(tǒng)將用戶名和密碼保存在后臺(tái)數(shù)據(jù)庫(kù)中的用戶管理表中。用戶憑用戶名和密碼登錄,當(dāng)密碼錯(cuò)誤或用戶名不存在時(shí)系統(tǒng)將給出提示“輸入密碼錯(cuò)誤或該用戶名不存在!請(qǐng)重新輸入!”。當(dāng)連續(xù)三次輸入錯(cuò)誤時(shí),系統(tǒng)將停止運(yùn)行強(qiáng)行退出。</p><p>  登錄部分在驗(yàn)證用戶名和密碼之后,如果用戶名和密碼一致還要

35、繼續(xù)分析用戶的權(quán)限。用戶權(quán)限可以看成是一個(gè)四位數(shù),每一位代表一個(gè)權(quán)限。這個(gè)四位數(shù)從高位到低位依次代表采購(gòu)入庫(kù)模塊、存貨查看模塊、銷售出庫(kù)模塊、權(quán)限設(shè)置模塊的權(quán)限。“1”表示有權(quán)使用該模塊,“0”表示無(wú)權(quán)使用該模塊。在分析用戶權(quán)限之后系統(tǒng)將設(shè)置各個(gè)模塊的Enable屬性,使之允許訪問(wèn)或是不允許訪問(wèn)。系統(tǒng)登錄部分主要代碼如下。</p><p>  Adodc1.Recordset.MoveFirst</p>

36、;<p><b>  i = 0</b></p><p>  While (Not Adodc1.Recordset.EOF)</p><p>  If str = Adodc1.Recordset.Fields("用戶名") And mima = Adodc1.Recordset.Fields("密碼") The

37、n</p><p><b>  i = 1</b></p><p>  quan = Adodc1.Recordset.Fields("權(quán)限")</p><p><b>  End If</b></p><p>  Adodc1.Recordset.MoveNext</p&

38、gt;<p><b>  Wend</b></p><p>  If i = 0 Then</p><p>  Label4.Caption = "輸入密碼錯(cuò)誤或該用戶名不存在!請(qǐng)重新輸入!"</p><p>  cishu = cishu + 1</p><p>  If cishu

39、= 3 Then</p><p>  'Label4.Caption = "您已三次輸入錯(cuò)誤!"</p><p>  MsgBox "您已三次輸入錯(cuò)誤!"</p><p><b>  End</b></p><p>  'Unload Me</p>&

40、lt;p><b>  End If</b></p><p><b>  End If</b></p><p>  If i = 1 Then</p><p>  MDIForm1.Show</p><p>  a = quan / 1000 '采購(gòu)入庫(kù)</p

41、><p>  b = (quan / 100) Mod 10 '銷售出庫(kù)</p><p>  c = (quan / 10) Mod 10 '存貨查看</p><p>  d = quan Mod 10 '系統(tǒng)設(shè)置</p><p><b>  If a Then&l

42、t;/b></p><p>  MDIForm1.mnu采購(gòu)入庫(kù).Enabled = True</p><p><b>  Else</b></p><p>  MDIForm1.mnu采購(gòu)入庫(kù).Enabled = False</p><p><b>  End If</b></p>

43、;<p><b>  If b Then</b></p><p>  MDIForm1.mnu銷售出庫(kù).Enabled = True</p><p><b>  Else</b></p><p>  MDIForm1.mnu銷售出庫(kù).Enabled = False</p><p>&l

44、t;b>  End If</b></p><p><b>  If c Then</b></p><p>  MDIForm1.mnu存貨查看.Enabled = True</p><p><b>  Else</b></p><p>  MDIForm1.mnu存貨查看.Enab

45、led = False</p><p><b>  End If</b></p><p><b>  If d Then</b></p><p>  MDIForm1.mnuSet.Enabled = True</p><p><b>  Else</b></p>

46、<p>  MDIForm1.mnuSet.Enabled = False</p><p><b>  End If</b></p><p><b>  Unload Me</b></p><p>  'MDIForm1.Show</p><p><b>  End I

47、f</b></p><p>  用戶注冊(cè)界面如圖4.1所示,登錄界面如圖4.2所示。</p><p>  圖4.1 用戶注冊(cè)界面</p><p><b>  圖4.2 登錄界面</b></p><p>  4.1.2 采購(gòu)入庫(kù)模塊</p><p>  該模塊的主要功能是完成成品和元件入

48、庫(kù)信息的添加、刪除、編輯等工作,分為成品入庫(kù)管理、成品入庫(kù)信息查看、元件入庫(kù)管理、元件入庫(kù)信息查看四個(gè)子模塊。該模塊的入庫(kù)元件管理界面和入庫(kù)成品管理界面是在用VB 6.0中的數(shù)據(jù)窗體設(shè)計(jì)器自動(dòng)生成窗體的基礎(chǔ)上調(diào)整美化而成。入庫(kù)元件信息查看和入庫(kù)成品信息查看子模塊使用了ADO數(shù)據(jù)控件和MSFlexGrid控件。ADO數(shù)據(jù)訪問(wèn)方式是現(xiàn)在和未來(lái)VB6.0乃至Microsoft的各種應(yīng)用軟件進(jìn)行數(shù)據(jù)訪問(wèn)的主流。ADO是通過(guò)OLE DB所提供的方

49、法對(duì)各種數(shù)據(jù)源進(jìn)行操作和訪問(wèn)。ADO是VB數(shù)據(jù)訪問(wèn)技術(shù)的發(fā)展方向。MSFlexGrid控件能夠顯示包含若干行和列的表格數(shù)據(jù)。MSFlexGrid控件的優(yōu)點(diǎn)在于它的靈活性,它可以顯示任意列任意行。為了方便用戶查看、保存和打印信息,在次模塊設(shè)置了數(shù)據(jù)報(bào)表。數(shù)據(jù)報(bào)表(Data Report)設(shè)計(jì)器是VB6.0新增加的功能,與數(shù)據(jù)環(huán)境(Data Environment)設(shè)計(jì)器配套使用可以完成數(shù)據(jù)報(bào)表的設(shè)計(jì)和打印功能。入庫(kù)元件管理界面、入庫(kù)元件信

50、息查看界面、入庫(kù)元件數(shù)據(jù)報(bào)表分別如圖4.3、圖4.4和圖4.5所示。</p><p>  圖4.3 入庫(kù)元件管理界面</p><p>  圖4.4 入庫(kù)元件信息查看界面</p><p>  圖4.5 入庫(kù)元件數(shù)據(jù)報(bào)表</p><p>  4.1.3 存貨查看模塊</p><p>  存貨查看模塊分為成品存貨查看、元件存

51、貨查看、存貨分析三個(gè)子模塊。成品存貨查看和元件存貨查看的功能是顯示元件和成品的當(dāng)前存貨量,有圖表和柱狀圖兩種顯示方式。成品存貨查看中的數(shù)據(jù)由入庫(kù)成品管理和發(fā)貨管理兩個(gè)表的數(shù)據(jù)運(yùn)算得到。例如,要顯示溫升報(bào)警器的存貨數(shù)量:首先在入庫(kù)成品管理中搜索所有溫升報(bào)警器的入庫(kù)記錄,把每條記錄的數(shù)量累加存在一個(gè)變量中。然后在發(fā)貨管理中搜索所有溫升報(bào)警器的發(fā)貨記錄,從剛才的變量中逐一減去各個(gè)發(fā)貨記錄中的數(shù)量。最后,變量的值就是庫(kù)中溫升報(bào)警器的存有量。系統(tǒng)

52、逐一計(jì)算出每種成品的庫(kù)存量,在MSFlexGrid表格中顯示出來(lái)并生成柱狀圖以給用戶更直觀的印象。元件存貨查看是根據(jù)入庫(kù)元件管理和元件消耗管理兩個(gè)表計(jì)算元件存貨量的。計(jì)算過(guò)程與成品存貨量的計(jì)算過(guò)程類似。該部分的代碼見附錄A。成品存貨查看界面如圖4.6所示。</p><p>  圖4.6(a)成品存貨表格界面</p><p>  圖4.6(b)成品存貨柱狀圖界面</p><

53、;p>  存貨分析子模塊是該模塊的特色部分。存貨分析可以根據(jù)尚未發(fā)貨的訂單數(shù)分析當(dāng)前的成品存貨、元件存貨是否充裕。該子模塊分成訂單分析、成品存貨分析、元件存貨分析三個(gè)部分。訂單分析部分首先從訂單管理表中搜索出尚未發(fā)貨的訂單并顯示出來(lái)。然后系統(tǒng)將根據(jù)產(chǎn)品所需元件表中的信息列出每個(gè)訂單產(chǎn)品所需的元件及數(shù)量,并統(tǒng)計(jì)以上訂單一共需要多少元件。成品存貨分析部分搜索訂單中的產(chǎn)品在倉(cāng)庫(kù)中存有多少,如果某種產(chǎn)品的存貨量低于訂貨量系統(tǒng)將給出提示并列

54、出所缺產(chǎn)品需要哪些元件及元件的數(shù)量。最后成品存貨分析部分將計(jì)算出所缺少的成品一共需要多少元件。元件存貨分析部分將根據(jù)成品存貨分析部分最后列出的元件信息搜索這些元件在倉(cāng)庫(kù)中的存貨量,如果某元件的存貨量低于生產(chǎn)訂單所需要的數(shù)量系統(tǒng)將給出進(jìn)貨提示。</p><p>  存貨分析子模塊中最核心的部分是計(jì)算庫(kù)中不能滿足訂單需求的產(chǎn)品需要哪些元件及其元件的數(shù)量。其程序如下所示。</p><p>  A

55、dodc5.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info= False;Data Source=" & App.Path & "\db1.mdb"</p><p>  Adodc5.RecordSource = "產(chǎn)品所需元件"<

56、;/p><p>  Adodc5.Refresh</p><p>  Open "F:\VB文件\ziduan.dat" For Input As #2</p><p>  Input #2, zmax</p><p><b>  Close 2</b></p><p>  zui

57、dayuanjianshu = 0</p><p>  For k = 1 To maxi 'maxi用來(lái)表示最大缺貨數(shù)</p><p>  biaozhi = 0</p><p>  Adodc5.Recordset.MoveFirst</p><p>  While Not Adodc5.Records

58、et.EOF</p><p>  If quehuo(k) = Adodc5.Recordset.Fields("產(chǎn)品名稱") Then</p><p>  biaozhi = 1 'biaozhi做為是否找到某產(chǎn)品元件信息的標(biāo)志</p><p>  For j = 0 To zmax</p><p&g

59、t;  str2 = "元件" & j</p><p>  str3 = "數(shù)量" & j</p><p>  If IsNumeric(Adodc5.Recordset.Fields(str3)) Then</p><p>  '////////////////////////////////////

60、///////////////////////////////////////////////////////////</p><p>  If zuidayuanjianshu = 0 Then</p><p>  qyj(j) = Adodc5.Recordset.Fields(str2)</p><p>  qyjs(j) = Adodc5.Recordset

61、.Fields(str3) * queshu(k)</p><p>  zuidayuanjianshu = 1</p><p><b>  Else</b></p><p>  mbz = 0 '從第二條記錄開始默認(rèn)沒(méi)有跟前一條一樣的元件,mbz是一個(gè)標(biāo)志</p><p>  For n = 0 To

62、 zuidayuanjianshu</p><p>  If qyj(n) = Adodc5.Recordset.Fields(str2) Then</p><p>  qyjs(n) = qyjs(n) + Adodc5.Recordset.Fields(str3) * queshu(k)</p><p>  'zuidayuanjianshu = zui

63、dayuanjianshu + 1</p><p><b>  mbz = 1</b></p><p><b>  End If</b></p><p><b>  Next n</b></p><p>  If mbz = 0 Then</p><p>

64、;  qyj(zuidayuanjianshu) = Adodc5.Recordset.Fields(str2)</p><p>  qyjs(zuidayuanjianshu) = Adodc5.Recordset.Fields(str3) * queshu(k)</p><p>  zuidayuanjianshu = zuidayuanjianshu + 1</p>&

65、lt;p><b>  End If</b></p><p><b>  End If</b></p><p>  '///////////////////////////////////////////////////////////////////////////////////////////////</p>&l

66、t;p>  Picture5.Print Adodc5.Recordset.Fields(str2) & ":" & Adodc5.Recordset.Fields(str3) & "個(gè)"</p><p><b>  End If</b></p><p><b>  Next j</

67、b></p><p><b>  End If</b></p><p>  Adodc5.Recordset.MoveNext</p><p><b>  Wend</b></p><p>  If biaozhi = 0 Then</p><p>  Picture5

68、.Print k & "、" & "暫時(shí)還沒(méi)有" & quehuo(k) & "的元件信息"</p><p><b>  End If</b></p><p><b>  Next k</b></p><p>  Picture6.

69、Print "以上產(chǎn)品一共需要一下元件:"</p><p>  For k = 0 To zuidayuanjianshu - 1</p><p>  Picture6.Print qyj(k) & ":" & qyjs(k) & "個(gè)" '這里求出了所有需要的元件!(除去了成品存貨)

70、</p><p><b>  Next k</b></p><p>  存貨分析子模塊的界面如圖4.7所示。</p><p>  圖4.7 存貨分析界面</p><p>  4.1.4 銷售出庫(kù)模塊</p><p>  銷售出庫(kù)模塊由發(fā)貨信息、訂單信息、元件消耗、產(chǎn)品所需元件、銷銷售分析五個(gè)子模塊

71、組成。其中,發(fā)貨信息子模塊又分為發(fā)貨管理和發(fā)貨信息查看兩個(gè)子模塊,訂單信息子模塊又分為訂單信息管理、訂單信息查看兩個(gè)子模塊,元件消耗子模塊又分為元件消耗管理、元件消耗信息查看兩個(gè)子模塊。發(fā)貨信息、訂單信息、元件消耗主要用于對(duì)發(fā)貨、訂單、元件消耗信息的錄入、查看。產(chǎn)品所需元件子模塊的功能是記錄每一種產(chǎn)品需要的元件及數(shù)量,該子模塊既可以供用戶編輯、產(chǎn)看又可以為存貨查看模塊中的存貨分析部分提供支持。銷售分析子模塊有總體銷售分析和按產(chǎn)品分析兩個(gè)

72、部分。每個(gè)部分都以不同顏色的折線顯示過(guò)去三年每月的銷售總額并繪制今年過(guò)去月份的銷售折線,從而為用戶提供直觀的銷售分析依據(jù)。</p><p>  銷售出庫(kù)模塊中的發(fā)貨管理、發(fā)貨信息查看、訂單管理和訂單信息查看與前面采購(gòu)入庫(kù)中入庫(kù)成品管理和入庫(kù)成品信息查看的功能、實(shí)現(xiàn)方法類似,不再贅述。產(chǎn)品所需元件子模塊利用數(shù)據(jù)表存儲(chǔ)產(chǎn)品所需的元件信息,該子模塊可以動(dòng)態(tài)增加字段。動(dòng)態(tài)增加字段是該子模塊的核心部分。該表中第一個(gè)字段是“

73、產(chǎn)品名稱”,第二個(gè)字段是“元件0”,第三個(gè)字段是“元件1”,以此類推。程序中把當(dāng)前最大字段數(shù)寫入一個(gè)二進(jìn)制文件中。錄入第一條記錄時(shí)把第一條記錄的字段數(shù)當(dāng)做當(dāng)前最大字段數(shù),以后每記入一個(gè)記錄都會(huì)從“元件0”開始填寫元件,當(dāng)元件種類超過(guò)最大字段數(shù)時(shí),系統(tǒng)就會(huì)自動(dòng)增加一個(gè)字段,并把當(dāng)前的字段數(shù)賦給最大字段數(shù)。該部分的核心程序如下。</p><p>  Dim zmax As Integer '用來(lái)

74、表示最大字段數(shù)</p><p>  Dim j As Integer '用來(lái)表示當(dāng)前記錄數(shù)</p><p>  Str = "元件"</p><p>  str2 = "數(shù)量"</p><p>  j = Adodc1.Recordset.RecordCount</p&

75、gt;<p>  'Adodc1.Recordset.Delete</p><p>  If j = 1 Then</p><p>  sql = "alter table 產(chǎn)品所需元件 add " & Str & i & " varchar(10)"</p><p>  Adod

76、c1.Recordset.ActiveConnection.Execute sql</p><p>  Adodc1.Recordset.Update</p><p>  Adodc1.Recordset.Save</p><p>  sql = "alter table 產(chǎn)品所需元件 add " & str2 & i &

77、 " varchar(10)"</p><p>  Adodc1.Recordset.ActiveConnection.Execute sql</p><p>  Adodc1.Recordset.Update</p><p>  Adodc1.Recordset.Save</p><p>  Adodc1.Refresh

78、</p><p>  Adodc1.Recordset.MoveLast</p><p>  Str = "元件" & i</p><p>  str2 = "數(shù)量" & i</p><p>  Adodc1.Recordset.Fields(Str) = Text2.Text</

79、p><p>  Adodc1.Recordset.Fields(str2) = Text3.Text</p><p>  Open "F:\VB文件\ziduan.dat" For Output As #2 '用文件來(lái)保存最大字段數(shù)</p><p>  Write #2, i</p><p><b&

80、gt;  Close 2</b></p><p>  'Print "文件已建立!"</p><p><b>  i = i + 1</b></p><p><b>  End If</b></p><p>  If j > 1 Then</p&g

81、t;<p>  Open "F:\VB文件\ziduan.dat" For Input As #2</p><p>  Input #2, zmax</p><p><b>  Close 2</b></p><p>  If k <= zmax Then</p><p>  St

82、r = "元件" & k</p><p>  str2 = "數(shù)量" & k</p><p>  Adodc1.Recordset.Fields(Str) = Text2.Text</p><p>  Adodc1.Recordset.Fields(str2) = Text3.Text</p>&

83、lt;p><b>  k = k + 1</b></p><p><b>  Else</b></p><p>  Str = "元件" & k</p><p>  str2 = "數(shù)量" & k</p><p>  sql = &quo

84、t;alter table 產(chǎn)品所需元件 add " & Str & " varchar(10)"</p><p>  Adodc1.Recordset.ActiveConnection.Execute sql</p><p>  Adodc1.Recordset.Update</p><p>  Adodc1.Reco

85、rdset.Save</p><p>  sql = "alter table 產(chǎn)品所需元件 add " & str2 & " varchar(10)"</p><p>  Adodc1.Recordset.ActiveConnection.Execute sql</p><p>  Adodc1.Record

86、set.Update</p><p>  Adodc1.Recordset.Save</p><p>  Adodc1.Refresh</p><p>  Adodc1.Recordset.MoveLast</p><p>  Adodc1.Recordset.Fields(Str) = Text2.Text</p><p

87、>  Adodc1.Recordset.Fields(str2) = Text3.Text</p><p>  Open "F:\VB文件\ziduan.dat" For Output As #2 '用文件來(lái)保存最大字段數(shù)</p><p>  Write #2, k</p><p><b>  Close 2<

88、;/b></p><p><b>  k = k + 1</b></p><p><b>  End If</b></p><p>  在產(chǎn)品所需元件子模塊中設(shè)計(jì)了刪除按鈕,供客戶刪除過(guò)時(shí)的或錯(cuò)誤的記錄。該子模塊的界面如圖4.8所示。</p><p>  圖4.8 產(chǎn)品所需元件界面</p

89、><p>  銷售分析子模塊利用VB的繪圖功能以不同顏色繪制過(guò)去三年的歷史銷售折線以及今年過(guò)去月份的銷售折線。另外還可以根據(jù)用戶輸入的產(chǎn)品名稱繪制該產(chǎn)品在過(guò)去三年的銷售折線以及今年過(guò)去月份的銷售折線。該子模塊的重點(diǎn)在于按月求出銷售總額并繪制折線圖。由于每個(gè)月的銷售總額是不定的,無(wú)法預(yù)知其最大值。所以在繪制銷售折線時(shí)把每個(gè)月銷售總額中的最大值作為折線圖的最高點(diǎn),其他月份的銷售額對(duì)應(yīng)的點(diǎn)按照與最大值的比例繪制,然后把相鄰

90、的兩個(gè)點(diǎn)用直線連接起來(lái)就是銷售折線。在按照用戶輸入的產(chǎn)品名稱繪制折線圖之后,系統(tǒng)還會(huì)求出該種產(chǎn)品每個(gè)月的歷史銷售最大值和歷史銷售最小值供用戶參考。該部分的核心程序如下。</p><p>  Dim strSQL As String</p><p>  Dim j As Integer</p><p>  Dim i As Integer</p><

91、;p>  Dim maxshu As Integer</p><p>  Dim shu(0 To 3, 1 To 12) As Integer</p><p>  Dim nian As Integer</p><p>  Dim yue As Integer</p><p>  Dim maxyu(1 To 12) As Integ

92、er</p><p>  Dim minyu(1 To 12) As Integer</p><p>  Picture3.Cls</p><p>  Picture4.Cls</p><p>  strSQL = "Select * From 發(fā)貨管理 Where 產(chǎn)品名稱 " & " ='&q

93、uot; & str & "'"</p><p>  Adodc2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info= False;Data Source=" & App.Path & "\db1.mdb"<

94、/p><p>  Adodc2.RecordSource = strSQL</p><p>  Adodc2.Refresh</p><p>  If Adodc2.Recordset.RecordCount <> 0 Then</p><p>  Adodc2.Recordset.MoveFirst</p><p

95、>  Label5.Caption = ""</p><p>  nian = Year(Date)</p><p>  For j = 0 To 3</p><p>  If Adodc2.Recordset.RecordCount <> 0 Then</p><p>  Adodc2.Recordse

96、t.MoveFirst</p><p><b>  End If</b></p><p>  While Not Adodc2.Recordset.EOF</p><p>  If Year(Adodc2.Recordset.Fields("出庫(kù)時(shí)間")) = (nian - j) Then</p><p

97、>  Select Case Month(Adodc2.Recordset.Fields("出庫(kù)時(shí)間"))</p><p><b>  Case 1</b></p><p>  shu(j, 1) = shu(j, 1) + Adodc2.Recordset.Fields("數(shù)量")</p><p>

98、;<b>  Case 2</b></p><p>  shu(j, 2) = shu(j, 2) + Adodc2.Recordset.Fields("數(shù)量")</p><p><b>  Case 3</b></p><p>  shu(j, 3) = shu(j, 3) + Adodc2.Reco

99、rdset.Fields("數(shù)量")</p><p><b>  Case 4</b></p><p>  shu(j, 4) = shu(j, 4) + Adodc2.Recordset.Fields("數(shù)量")</p><p><b>  Case 5</b></p>

100、<p>  shu(j, 5) = shu(j, 5) + Adodc2.Recordset.Fields("數(shù)量")</p><p><b>  Case 6</b></p><p>  shu(j, 6) = shu(j, 6) + Adodc2.Recordset.Fields("數(shù)量")</p>

101、<p><b>  Case 7</b></p><p>  shu(j, 7) = shu(j, 7) + Adodc2.Recordset.Fields("數(shù)量")</p><p><b>  Case 8</b></p><p>  shu(j, 8) = shu(j, 8) + A

102、dodc2.Recordset.Fields("數(shù)量")</p><p><b>  Case 9</b></p><p>  shu(j, 9) = shu(j, 9) + Adodc2.Recordset.Fields("數(shù)量")</p><p><b>  Case 10</b>

103、;</p><p>  shu(j, 10) = shu(j, 10) + Adodc2.Recordset.Fields("數(shù)量")</p><p><b>  Case 11</b></p><p>  shu(j, 11) = shu(j, 11) + Adodc2.Recordset.Fields("數(shù)量&

104、quot;)</p><p><b>  Case 12</b></p><p>  shu(j, 12) = shu(j, 12) + Adodc2.Recordset.Fields("數(shù)量")</p><p>  End Select</p><p><b>  End If</b

105、></p><p>  Adodc2.Recordset.MoveNext</p><p><b>  Wend</b></p><p><b>  Next j</b></p><p>  For j = 0 To 3</p><p>  For i = 1 To 1

106、2</p><p>  If shu(j, i) > maxshu Then</p><p>  maxshu = shu(j, i)</p><p><b>  End If</b></p><p><b>  Next i</b></p><p><b>

107、  Next j</b></p><p>  'Print maxshu</p><p>  '//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////<

108、/p><p><b>  '繪出每年的走勢(shì)圖</b></p><p>  Picture3.Line (200, 4500)-(200, 100) '豎軸的長(zhǎng)度是4400</p><p>  Picture3.Print "數(shù)量(件)"</p><p>  Picture3.

109、Line (200, 4500)-(13500, 4500) '橫軸的長(zhǎng)度是11500</p><p>  Picture3.Print "月份"</p><p>  For i = 1 To 12</p><p>  Picture3.CurrentX = 200 + 1000 * i</p><p> 

110、 Picture3.CurrentY = 4500</p><p>  Picture3.Print i & "月"</p><p><b>  Next i</b></p><p>  For j = 0 To 3</p><p>  For i = 1 To 12</p>&

111、lt;p>  If j = 0 Then</p><p>  Picture3.Circle (200 + 1000 * i, 4500 - shu(0, i) / maxshu * 4000), 40, RGB(255, 0, 0)</p><p>  If i < Month(Date) Then</p><p>  Picture3.Line (2

112、00 + 1000 * i, 4500 - shu(0, i) / maxshu * 4000)-(200 + 1000 * (i + 1), 4500 - shu(0, (i + 1)) / maxshu * 4000), RGB(255, 0, 0)</p><p><b>  End If</b></p><p><b>  End If</b&

113、gt;</p><p>  If j = 1 Then</p><p>  Picture3.Circle (200 + 1000 * i, 4500 - shu(1, i) / maxshu * 4000), 40, RGB(0, 255, 0)</p><p>  If i < 12 Then</p><p>  Picture3.

114、Line (200 + 1000 * i, 4500 - shu(1, i) / maxshu * 4000)-(200 + 1000 * (i + 1), 4500 - shu(1, (i + 1)) / maxshu * 4000), RGB(0, 255, 0)</p><p><b>  End If</b></p><p><b>  End If

115、</b></p><p>  If j = 2 Then</p><p>  Picture3.Circle (200 + 1000 * i, 4500 - shu(2, i) / maxshu * 4000), 40, RGB(0, 0, 255)</p><p>  If i < 12 Then</p><p>  Pi

116、cture3.Line (200 + 1000 * i, 4500 - shu(2, i) / maxshu * 4000)-(200 + 1000 * (i + 1), 4500 - shu(2, (i + 1)) / maxshu * 4000), RGB(0, 0, 255)</p><p><b>  End If</b></p><p><b> 

117、 End If</b></p><p>  If j = 3 Then</p><p>  Picture3.Circle (200 + 1000 * i, 4500 - shu(3, i) / maxshu * 4000), 40, RGB(0, 0, 0)</p><p>  If i < 12 Then</p><p>

118、;  Picture3.Line (200 + 1000 * i, 4500 - shu(3, i) / maxshu * 4000)-(200 + 1000 * (i + 1), 4500 - shu(3, (i + 1)) / maxshu * 4000), RGB(0, 0, 0)</p><p><b>  End If</b></p><p><b&g

119、t;  End If</b></p><p>  Picture3.CurrentX = 200 + 1000 * i</p><p>  Picture3.CurrentY = 4500 - shu(j, i) / maxshu * 4000 - 150</p><p>  If shu(j, i) <> 0 Then</p>

120、<p>  Picture3.Print shu(j, i)</p><p><b>  End If</b></p><p><b>  Next i</b></p><p><b>  Next j</b></p><p>  '////////////

121、///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////</p><p>  yue = Month(Date)</p><p>  Label4.Caption = nian & "

122、年" & yue & "月以后銷售分析"</p><p>  Picture4.CurrentX = 0</p><p>  Picture4.CurrentY = 500</p><p>  For i = yue To 12</p><p>  For j = 1 To 3</p>

123、<p>  If j = 1 Then</p><p>  maxyu(i) = shu(1, i)</p><p>  minyu(i) = shu(1, i)</p><p><b>  End If</b></p><p>  If shu(j, i) > maxyu(i) Then</p

124、><p>  maxyu(i) = shu(j, i)</p><p><b>  End If</b></p><p>  If shu(j, i) < minyu(i) Then</p><p>  minyu(i) = shu(j, i)</p><p><b>  End If

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論