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

下載本文檔

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

文檔簡介

1、<p><b>  庫存管理系統(tǒng)</b></p><p>  Storage Management System</p><p>  (申請xxx學(xué)士學(xué)位論文)</p><p>  申請學(xué)位: 工學(xué)學(xué)士學(xué)位 </p><p>  院 系: 計算機(jī)學(xué)院 </p><p>  專

2、 業(yè): 自動化 </p><p>  學(xué)生姓名: </p><p><b>  學(xué) 號: </b></p><p><b>  指導(dǎo)老師 </b></p><p>  2011年 6 月 7 日</p><p><b>  附

3、3.</b></p><p>  xxx畢業(yè)論文(設(shè)計)任務(wù)書</p><p>  院(系):計算機(jī)學(xué)院</p><p>  [摘要] 庫存管理系統(tǒng)是物資管理系統(tǒng)的核心,是一個企業(yè)不可缺少的部分,它的內(nèi)容對于企業(yè)的決策者和管理者來說都至關(guān)重要?!币詠砣藗兪褂脗鹘y(tǒng)人工的方式管理倉庫,效率低,查找、更新和維護(hù)比較困難。尤其在我國由于勞動力相對充足,庫存信息

4、管理仍以人工管理為主。該庫存管理系統(tǒng)以Visual Basic 6.0集成開發(fā)環(huán)境為平臺,外接Access數(shù)據(jù)庫,擁有采購入庫、存貨查看、銷售出庫、查詢、權(quán)限設(shè)置等模塊,操作簡單界面友好。利用該庫存管理系統(tǒng)不僅可以輕松管理查看元件、成品、訂單等的相關(guān)信息而且可以對產(chǎn)品銷售、倉庫存貨進(jìn)行分析。對產(chǎn)品銷售、倉庫存貨進(jìn)行分析是本庫存管理系統(tǒng)的特色所在。元件入庫、元件消耗、成品入庫、發(fā)貨、訂單等信息不僅可以列表查看而且可以生成報表。另外還可以生

5、成柱狀圖查看存貨信息。客戶能夠在查詢模塊對任意信息進(jìn)行查詢。查詢信息的輸入通過組合框和文本框完成的,界面簡單明了。系統(tǒng)的采購入庫、存貨查看、銷售出庫、權(quán)限設(shè)置各對應(yīng)一個權(quán)限。權(quán)限設(shè)置簡單快捷。</p><p>  [關(guān)鍵詞] 庫存管理;存貨分析;Visual Basic 6.0;Access數(shù)據(jù)庫;</p><p>  Abstract: Storage Management Syste

6、m which is an indispensable part to an enterprise plays 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

7、 to manage storages manually. Of course, it is low 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 f

8、orce. Connecting with Acc</p><p>  Key words: Storage Management System; marketing analyses; Visual Basic 6.0; Access data base </p><p><b>  目 錄</b></p><p><b>

9、  1 緒 論1</b></p><p>  1.1 本課題的研究意義及必要性1</p><p>  1.2 相關(guān)領(lǐng)域國內(nèi)外應(yīng)用的現(xiàn)狀及發(fā)展趨勢1</p><p><b>  2 系統(tǒng)分析2</b></p><p>  2.1 系統(tǒng)可行性分析2</p><p>  2.2

10、 系統(tǒng)功能介紹2</p><p><b>  3 總體設(shè)計3</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>

11、<p>  3.3.2 Access數(shù)據(jù)庫介紹5</p><p><b>  4 詳細(xì)設(shè)計6</b></p><p>  4.1 各模塊的功能與實現(xiàn)6</p><p>  4.1.1 注冊與登錄模塊6</p><p>  4.1.2 采購入庫模塊8</p><p>  4

12、.1.3 存貨查看模塊9</p><p>  4.1.4 銷售出庫模塊12</p><p>  4.1.5 查詢模塊19</p><p>  4.1.6 權(quán)限設(shè)置模塊25</p><p>  4.2 系統(tǒng)數(shù)據(jù)庫的設(shè)計26</p><p>  4.2.1 數(shù)據(jù)庫選擇及理由26</p><p

13、>  4.2.2 數(shù)據(jù)庫表的結(jié)構(gòu)27</p><p>  5 綜合測試31</p><p>  5.1 系統(tǒng)注冊與登錄模塊測試31</p><p>  5.2 采購入庫模塊測試32</p><p>  5.3 存貨分析測試33</p><p>  5.4 銷售出庫模塊測試34</p>

14、<p>  5.5 查詢模塊測試35</p><p>  5.6 權(quán)限設(shè)置模塊測試36</p><p><b>  結(jié) 束 語37</b></p><p><b>  致 謝38</b></p><p><b>  參考文獻(xiàn)39</b></p>

15、<p>  附錄A 部分代碼40</p><p><b>  1 緒 論</b></p><p>  1.1 本課題的研究意義及必要性</p><p>  庫存管理系統(tǒng)是物資管理系統(tǒng)的核心,是一個企業(yè)不可缺少的部分,它的內(nèi)容對于企業(yè)的決策者和管理者來說都至關(guān)重要?!币詠砣藗兪褂脗鹘y(tǒng)人工的方式管理倉庫,效率低,查找、更新和維護(hù)比

16、較困難?,F(xiàn)在,倉庫作業(yè)和庫存管理作業(yè)已多樣化、復(fù)雜化,靠人工去處理已十分困難。如果不能保證正確的進(jìn)貨、驗收及發(fā)貨,就會導(dǎo)致產(chǎn)生過量的庫存,延遲交貨時間,增加經(jīng)營成本,以致失去客戶。隨著科學(xué)技術(shù)的不斷提高,計算機(jī)科學(xué)日漸成熟,庫存管理系統(tǒng)應(yīng)運(yùn)而生,其檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等優(yōu)點(diǎn)極大地提高人事勞資管理的效率,其能夠有效地組織人員、空間和設(shè)備進(jìn)行收貨、存儲、揀貨和運(yùn)輸,組織運(yùn)送原材料和部件到生產(chǎn)企業(yè),

17、運(yùn)送成品到批發(fā)商、分銷商和最終客戶手中等強(qiáng)大的功能已為人們所熟知。倉庫管理系統(tǒng)是為企業(yè)的采購、制造計劃、制造執(zhí)行、客戶服務(wù)系統(tǒng)與倉庫或配送中心提供的管理手段,滿足企業(yè)對低成本和快速處理的要求,幫助不同行業(yè)的企業(yè)解決復(fù)雜的配送問題并且降低訂單履行成本,它已越來越廣泛的應(yīng)用到各大倉庫,并隨著不斷的完善發(fā)揮著越來越重要的作用。</p><p>  為此,有必要開發(fā)一個信息添加快捷、查找方便、穩(wěn)定性高的庫存管理系統(tǒng)。該庫

18、存管理系統(tǒng)以Visual Basic 6.0集成開發(fā)環(huán)境為平臺,擁有采購入庫、存貨查看、銷售出庫、查詢、權(quán)限設(shè)置等模塊,操作簡單易學(xué)。</p><p>  1.2 相關(guān)領(lǐng)域國內(nèi)外應(yīng)用的現(xiàn)狀及發(fā)展趨勢</p><p>  庫存管理系統(tǒng)已經(jīng)在發(fā)達(dá)國家廣泛應(yīng)用,而且應(yīng)用范圍越來越廣功能越來越全面,操作越來越簡便,成本越來越低廉。目前主要應(yīng)用于大中小型企業(yè),工廠,物流公司,超市以及一些科研單位。在

19、我國由于勞動力相對充足,企業(yè)對庫存管理系統(tǒng)不夠重視?,F(xiàn)在我國的庫存信息管理仍以人工管理為主。</p><p><b>  2 系統(tǒng)分析</b></p><p>  2.1 系統(tǒng)可行性分析</p><p>  首先,系統(tǒng)采用了完全模塊化的總體結(jié)構(gòu)設(shè)計,自上而下,逐層求精,將大量過程組合在一個過程文件中,使整個系統(tǒng)程序只包括兩個部分:總控模塊和過

20、程文件。系統(tǒng)結(jié)構(gòu)清晰,并且大大減少了磁盤訪問的頻繁程度,使運(yùn)行速度加快并且使程序的維護(hù)和保存更加簡便。第二,本系統(tǒng)將采用VB制作友好的人機(jī)交互頁面。人機(jī)交互界面啟動時將要求用戶輸入密碼,保證了庫存信息的保密性。用戶可以在界面上選擇查看各個模塊。對于各原料庫存、原料需求、銷售情況等數(shù)據(jù)將盡量以圖形的形式給出,方便用戶對比分析。第三,采用數(shù)據(jù)庫存儲用到的各種數(shù)據(jù)。用戶可以在人機(jī)交互界面上實現(xiàn)對數(shù)據(jù)庫的操作,方便快捷。通過使用數(shù)據(jù)庫減少了人力

21、勞動,降低了倉庫管理成本。第四,為方便信息對比、保存,系統(tǒng)設(shè)置了信息查看、報表等功能。</p><p>  2.2 系統(tǒng)功能介紹</p><p>  庫存管理系統(tǒng)作為一種信息管理系統(tǒng),其基本功能還是信息的錄入和查詢。該庫存管理系統(tǒng)以Visual Basic 6.0集成開發(fā)環(huán)境為平臺設(shè)計各種操作界面。由于Visual Basic 6.0只能支持Access97及其以下的版本,本庫存管理系統(tǒng)選

22、擇使用Access97作為后臺數(shù)據(jù)庫。數(shù)據(jù)庫分為用戶管理、入庫成品管理、入庫元件管理、訂單管理、發(fā)貨管理、產(chǎn)品所需元件、元件消耗管理七個表。Visual Basic 6.0新增了數(shù)據(jù)環(huán)境設(shè)計器,它與數(shù)據(jù)報表設(shè)計器一起使用能夠?qū)崿F(xiàn)在VB中輕松創(chuàng)建報表的功能。</p><p><b>  3 總體設(shè)計</b></p><p>  3.1 功能模塊劃分</p>

23、<p>  本庫存管理系統(tǒng)由注冊與登錄、采購入庫、存貨查看、銷售出庫、查詢、權(quán)限設(shè)置等六個功能模塊組成,如圖3.1所示。</p><p>  圖3.1 庫存管理系統(tǒng)模塊</p><p>  本庫存管理系統(tǒng)由注冊與登錄、采購入庫、存貨查看、銷售出庫、查詢、權(quán)限設(shè)置等六個功能模塊組成。系統(tǒng)注冊與登錄模塊為用戶提供簡潔的注冊、登錄界面。注冊之后方可登錄到主界面。采購入庫模塊主要完成

24、成品和元件入庫信息的添加、刪除、編輯等工作,分為成品入庫管理、成品入庫信息查看、元件入庫管理、元件入庫信息查看四個子模塊。存貨查看模塊分為成品存貨查看、元件存貨查看、存貨分析三個子模塊。成品存貨查看和元件存貨查看的功能是顯示元件和成品的當(dāng)前存貨量,有圖表和柱狀圖兩種顯示方式供用戶選擇。存貨分析部分是該模塊的特色部分。存貨分析可以根據(jù)尚未發(fā)貨的訂單數(shù)分析當(dāng)前的成品存貨、元件存貨是否充裕。存貨分析部分的存在使得本庫存管理系統(tǒng)不再是簡單的信息

25、記錄系統(tǒng)。銷售出庫模塊由發(fā)貨信息、訂單信息、元件消耗、產(chǎn)品所需元件、銷銷售分析五個子模塊組成。其中,發(fā)貨管理子模塊又分為發(fā)貨管理和發(fā)貨信息查看兩個子模塊,訂單信息子模塊又分為訂單信息管理、訂單信息查看兩個子模塊,元件消耗子模塊又分為元件消耗管理、元件消耗信息查看兩個子模塊。發(fā)貨信息、訂單信息、元件消耗主要用于對發(fā)貨、訂單、元件消耗信息的錄入、查看。產(chǎn)品所需元件子模塊的功</p><p><b>  3.

26、2 系統(tǒng)流程</b></p><p>  本庫存管理系統(tǒng)的使用流程是:用戶首先在注冊界面上注冊,只有注冊成功的用戶才可以在登陸界面憑用戶名和密碼登錄。登錄之后系統(tǒng)根據(jù)用戶具有的權(quán)限確定用戶可以使用哪些模塊。對于用戶沒有權(quán)限的模塊,系統(tǒng)將以灰色顯示并禁止用戶訪問。具體流程如圖3.2所示。</p><p>  圖3.2 系統(tǒng)流程圖</p><p>  3.3

27、 系統(tǒng)開發(fā)工具介紹</p><p>  3.3.1 Visual Basic介紹</p><p>  Visual Basic(簡稱VB)是美國微軟公司推出的Windows環(huán)境下的軟件開發(fā)工具,它采用面向?qū)ο蟮木幊碳夹g(shù),巧妙的把開發(fā)Windows環(huán)境下應(yīng)用程序的復(fù)雜性“封裝”起來,可以既快捷又簡單得開發(fā)Windows應(yīng)用軟件,并使用事件驅(qū)動的編程思想,提高了編寫應(yīng)用程序時的靈活性和方便性。

28、Visual Basic 6.0的聯(lián)機(jī)幫助文檔使用Microsoft Visual Studio 6.0統(tǒng)一的MSDN(Microsoft Developer Network)幫助方式。</p><p>  VB6.0是微軟公司Microsoft Visual Studio開發(fā)工具套件中的成員之一,包括三個版本:學(xué)習(xí)版(Learning)、專業(yè)版(Professional)和企業(yè)版(Enterprise)。<

29、;/p><p>  本庫存管理系統(tǒng)使用的是Visual Basic 6.0專業(yè)版。專業(yè)版為編程人員提供了一整套功能完備的軟件開發(fā)工具。包括學(xué)習(xí)班的全部功能,還包括Active X控件、Internet Information Server Application Designer、集成的Visual Database Tools和Data Environment、Active Data Objects和Dynamic

30、 HTML Page Designer。</p><p>  3.3.2 Access數(shù)據(jù)庫介紹</p><p>  Microsoft Office Access是由微軟發(fā)布的關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),它結(jié)合了Microsoft Jet Database Engine和圖形用戶界面兩項特點(diǎn),是Microsoft Office的成員之一。Access作為一種數(shù)據(jù)庫管理軟件,是小型企業(yè)的專業(yè)化數(shù)

31、據(jù)庫設(shè)計和開發(fā)工具,它可以完成保存信息、數(shù)據(jù)計算處理、數(shù)據(jù)分析處理等功能,與Excel等工具可實現(xiàn)協(xié)同工作。</p><p><b>  4 詳細(xì)設(shè)計</b></p><p>  4.1 各模塊的功能與實現(xiàn)</p><p>  4.1.1 注冊與登錄模塊</p><p>  該模塊的功能是自動記錄用戶申請的用戶名和密碼

32、,并在用戶登錄時進(jìn)行驗證。當(dāng)用戶申請的用戶名已經(jīng)存在時,系統(tǒng)將給出提示“該用戶名已存在”并自動清空申請用戶名的輸入框。在申請密碼部分,系統(tǒng)要求用戶兩次輸入密碼,只有兩次輸入一致才可以成為用戶的密碼。在用戶成功申請用戶名和密碼之后,系統(tǒng)將用戶名和密碼保存在后臺數(shù)據(jù)庫中的用戶管理表中。用戶憑用戶名和密碼登錄,當(dāng)密碼錯誤或用戶名不存在時系統(tǒng)將給出提示“輸入密碼錯誤或該用戶名不存在!請重新輸入!”。當(dāng)連續(xù)三次輸入錯誤時,系統(tǒng)將停止運(yùn)行強(qiáng)行退出。

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

34、gt;<p>  Adodc1.Recordset.MoveFirst</p><p><b>  i = 0</b></p><p>  While (Not Adodc1.Recordset.EOF)</p><p>  If str = Adodc1.Recordset.Fields("用戶名") And

35、 mima = Adodc1.Recordset.Fields("密碼") Then</p><p><b>  i = 1</b></p><p>  quan = Adodc1.Recordset.Fields("權(quán)限")</p><p><b>  End If</b><

36、/p><p>  Adodc1.Recordset.MoveNext</p><p><b>  Wend</b></p><p>  If i = 0 Then</p><p>  Label4.Caption = "輸入密碼錯誤或該用戶名不存在!請重新輸入!"</p><p>

37、  cishu = cishu + 1</p><p>  If cishu = 3 Then</p><p>  'Label4.Caption = "您已三次輸入錯誤!"</p><p>  MsgBox "您已三次輸入錯誤!"</p><p><b>  End</b>

38、;</p><p>  'Unload Me</p><p><b>  End If</b></p><p><b>  End If</b></p><p>  If i = 1 Then</p><p>  MDIForm1.Show</p>&l

39、t;p>  a = quan / 1000 '采購入庫</p><p>  b = (quan / 100) Mod 10 '銷售出庫</p><p>  c = (quan / 10) Mod 10 '存貨查看</p><p>  d = quan Mod 10 &

40、#39;系統(tǒng)設(shè)置</p><p><b>  If a Then</b></p><p>  MDIForm1.mnu采購入庫.Enabled = True</p><p><b>  Else</b></p><p>  MDIForm1.mnu采購入庫.Enabled = False</p

41、><p><b>  End If</b></p><p><b>  If b Then</b></p><p>  MDIForm1.mnu銷售出庫.Enabled = True</p><p><b>  Else</b></p><p>  MDIF

42、orm1.mnu銷售出庫.Enabled = False</p><p><b>  End If</b></p><p><b>  If c Then</b></p><p>  MDIForm1.mnu存貨查看.Enabled = True</p><p><b>  Else<

43、;/b></p><p>  MDIForm1.mnu存貨查看.Enabled = False</p><p><b>  End If</b></p><p><b>  If d Then</b></p><p>  MDIForm1.mnuSet.Enabled = True</p

44、><p><b>  Else</b></p><p>  MDIForm1.mnuSet.Enabled = False</p><p><b>  End If</b></p><p><b>  Unload Me</b></p><p>  '

45、;MDIForm1.Show</p><p><b>  End If</b></p><p>  用戶注冊界面如圖4.1所示,登錄界面如圖4.2所示。</p><p>  圖4.1 用戶注冊界面</p><p><b>  圖4.2 登錄界面</b></p><p>  4

46、.1.2 采購入庫模塊</p><p>  該模塊的主要功能是完成成品和元件入庫信息的添加、刪除、編輯等工作,分為成品入庫管理、成品入庫信息查看、元件入庫管理、元件入庫信息查看四個子模塊。該模塊的入庫元件管理界面和入庫成品管理界面是在用VB 6.0中的數(shù)據(jù)窗體設(shè)計器自動生成窗體的基礎(chǔ)上調(diào)整美化而成。入庫元件信息查看和入庫成品信息查看子模塊使用了ADO數(shù)據(jù)控件和MSFlexGrid控件。ADO數(shù)據(jù)訪問方式是現(xiàn)在和未

47、來VB6.0乃至Microsoft的各種應(yīng)用軟件進(jìn)行數(shù)據(jù)訪問的主流。ADO是通過OLE DB所提供的方法對各種數(shù)據(jù)源進(jìn)行操作和訪問。ADO是VB數(shù)據(jù)訪問技術(shù)的發(fā)展方向。MSFlexGrid控件能夠顯示包含若干行和列的表格數(shù)據(jù)。MSFlexGrid控件的優(yōu)點(diǎn)在于它的靈活性,它可以顯示任意列任意行。為了方便用戶查看、保存和打印信息,在次模塊設(shè)置了數(shù)據(jù)報表。數(shù)據(jù)報表(Data Report)設(shè)計器是VB6.0新增加的功能,與數(shù)據(jù)環(huán)境(Data

48、 Environment)設(shè)計器配套使用可以完成數(shù)據(jù)報表的設(shè)計和打印功能。入庫元件管理界面、入庫元件信息查看界面、入庫元件數(shù)據(jù)報表分別如圖4.3、圖4.4和圖4.5所示。</p><p>  圖4.3 入庫元件管理界面</p><p>  圖4.4 入庫元件信息查看界面</p><p>  圖4.5 入庫元件數(shù)據(jù)報表</p><p>  4.

49、1.3 存貨查看模塊</p><p>  存貨查看模塊分為成品存貨查看、元件存貨查看、存貨分析三個子模塊。成品存貨查看和元件存貨查看的功能是顯示元件和成品的當(dāng)前存貨量,有圖表和柱狀圖兩種顯示方式。成品存貨查看中的數(shù)據(jù)由入庫成品管理和發(fā)貨管理兩個表的數(shù)據(jù)運(yùn)算得到。例如,要顯示溫升報警器的存貨數(shù)量:首先在入庫成品管理中搜索所有溫升報警器的入庫記錄,把每條記錄的數(shù)量累加存在一個變量中。然后在發(fā)貨管理中搜索所有溫升報警器

50、的發(fā)貨記錄,從剛才的變量中逐一減去各個發(fā)貨記錄中的數(shù)量。最后,變量的值就是庫中溫升報警器的存有量。系統(tǒng)逐一計算出每種成品的庫存量,在MSFlexGrid表格中顯示出來并生成柱狀圖以給用戶更直觀的印象。元件存貨查看是根據(jù)入庫元件管理和元件消耗管理兩個表計算元件存貨量的。計算過程與成品存貨量的計算過程類似。該部分的代碼見附錄A。成品存貨查看界面如圖4.6所示。</p><p>  圖4.6(a)成品存貨表格界面<

51、;/p><p>  圖4.6(b)成品存貨柱狀圖界面</p><p>  存貨分析子模塊是該模塊的特色部分。存貨分析可以根據(jù)尚未發(fā)貨的訂單數(shù)分析當(dāng)前的成品存貨、元件存貨是否充裕。該子模塊分成訂單分析、成品存貨分析、元件存貨分析三個部分。訂單分析部分首先從訂單管理表中搜索出尚未發(fā)貨的訂單并顯示出來。然后系統(tǒng)將根據(jù)產(chǎn)品所需元件表中的信息列出每個訂單產(chǎn)品所需的元件及數(shù)量,并統(tǒng)計以上訂單一共需要多少元

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

53、需求的產(chǎn)品需要哪些元件及其元件的數(shù)量。其程序如下所示。</p><p>  Adodc5.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info= False;Data Source=" & App.Path & "\db1.mdb"</p><

54、;p>  Adodc5.RecordSource = "產(chǎn)品所需元件"</p><p>  Adodc5.Refresh</p><p>  Open "F:\VB文件\ziduan.dat" For Input As #2</p><p>  Input #2, zmax</p><p><

55、;b>  Close 2</b></p><p>  zuidayuanjianshu = 0</p><p>  For k = 1 To maxi 'maxi用來表示最大缺貨數(shù)</p><p>  biaozhi = 0</p><p>  Adodc5.Recordset.MoveF

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

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

58、lt;p>  '///////////////////////////////////////////////////////////////////////////////////////////////</p><p>  If zuidayuanjianshu = 0 Then</p><p>  qyj(j) = Adodc5.Recordset.Fields(str

59、2)</p><p>  qyjs(j) = Adodc5.Recordset.Fields(str3) * queshu(k)</p><p>  zuidayuanjianshu = 1</p><p><b>  Else</b></p><p>  mbz = 0 '從第二條記錄開始默認(rèn)沒有跟前

60、一條一樣的元件,mbz是一個標(biāo)志</p><p>  For n = 0 To zuidayuanjianshu</p><p>  If qyj(n) = Adodc5.Recordset.Fields(str2) Then</p><p>  qyjs(n) = qyjs(n) + Adodc5.Recordset.Fields(str3) * queshu(k

61、)</p><p>  'zuidayuanjianshu = zuidayuanjianshu + 1</p><p><b>  mbz = 1</b></p><p><b>  End If</b></p><p><b>  Next n</b></p&

62、gt;<p>  If mbz = 0 Then</p><p>  qyj(zuidayuanjianshu) = Adodc5.Recordset.Fields(str2)</p><p>  qyjs(zuidayuanjianshu) = Adodc5.Recordset.Fields(str3) * queshu(k)</p><p>  z

63、uidayuanjianshu = zuidayuanjianshu + 1</p><p><b>  End If</b></p><p><b>  End If</b></p><p>  '//////////////////////////////////////////////////////////

64、/////////////////////////////////////</p><p>  Picture5.Print Adodc5.Recordset.Fields(str2) & ":" & Adodc5.Recordset.Fields(str3) & "個"</p><p><b>  End If&l

65、t;/b></p><p><b>  Next j</b></p><p><b>  End If</b></p><p>  Adodc5.Recordset.MoveNext</p><p><b>  Wend</b></p><p> 

66、 If biaozhi = 0 Then</p><p>  Picture5.Print k & "、" & "暫時還沒有" & quehuo(k) & "的元件信息"</p><p><b>  End If</b></p><p><b>

67、;  Next k</b></p><p>  Picture6.Print "以上產(chǎn)品一共需要一下元件:"</p><p>  For k = 0 To zuidayuanjianshu - 1</p><p>  Picture6.Print qyj(k) & ":" & qyjs(k) &am

68、p; "個" '這里求出了所有需要的元件!(除去了成品存貨)</p><p><b>  Next k</b></p><p>  存貨分析子模塊的界面如圖4.7所示。</p><p>  圖4.7 存貨分析界面</p><p>  4.1.4 銷售出庫模塊</p>

69、<p>  銷售出庫模塊由發(fā)貨信息、訂單信息、元件消耗、產(chǎn)品所需元件、銷銷售分析五個子模塊組成。其中,發(fā)貨信息子模塊又分為發(fā)貨管理和發(fā)貨信息查看兩個子模塊,訂單信息子模塊又分為訂單信息管理、訂單信息查看兩個子模塊,元件消耗子模塊又分為元件消耗管理、元件消耗信息查看兩個子模塊。發(fā)貨信息、訂單信息、元件消耗主要用于對發(fā)貨、訂單、元件消耗信息的錄入、查看。產(chǎn)品所需元件子模塊的功能是記錄每一種產(chǎn)品需要的元件及數(shù)量,該子模塊既可以供用

70、戶編輯、產(chǎn)看又可以為存貨查看模塊中的存貨分析部分提供支持。銷售分析子模塊有總體銷售分析和按產(chǎn)品分析兩個部分。每個部分都以不同顏色的折線顯示過去三年每月的銷售總額并繪制今年過去月份的銷售折線,從而為用戶提供直觀的銷售分析依據(jù)。</p><p>  銷售出庫模塊中的發(fā)貨管理、發(fā)貨信息查看、訂單管理和訂單信息查看與前面采購入庫中入庫成品管理和入庫成品信息查看的功能、實現(xiàn)方法類似,不再贅述。產(chǎn)品所需元件子模塊利用數(shù)據(jù)表存

71、儲產(chǎn)品所需的元件信息,該子模塊可以動態(tài)增加字段。動態(tài)增加字段是該子模塊的核心部分。該表中第一個字段是“產(chǎn)品名稱”,第二個字段是“元件0”,第三個字段是“元件1”,以此類推。程序中把當(dāng)前最大字段數(shù)寫入一個二進(jìn)制文件中。錄入第一條記錄時把第一條記錄的字段數(shù)當(dāng)做當(dāng)前最大字段數(shù),以后每記入一個記錄都會從“元件0”開始填寫元件,當(dāng)元件種類超過最大字段數(shù)時,系統(tǒng)就會自動增加一個字段,并把當(dāng)前的字段數(shù)賦給最大字段數(shù)。該部分的核心程序如下。</p

72、><p>  Dim zmax As Integer '用來表示最大字段數(shù)</p><p>  Dim j As Integer '用來表示當(dāng)前記錄數(shù)</p><p>  Str = "元件"</p><p>  str2 = "數(shù)量"</p>

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

74、" varchar(10)"</p><p>  Adodc1.Recordset.ActiveConnection.Execute sql</p><p>  Adodc1.Recordset.Update</p><p>  Adodc1.Recordset.Save</p><p>  sql = "alt

75、er table 產(chǎn)品所需元件 add " & str2 & i & " varchar(10)"</p><p>  Adodc1.Recordset.ActiveConnection.Execute sql</p><p>  Adodc1.Recordset.Update</p><p>  Adodc1.

76、Recordset.Save</p><p>  Adodc1.Refresh</p><p>  Adodc1.Recordset.MoveLast</p><p>  Str = "元件" & i</p><p>  str2 = "數(shù)量" & i</p><p&

77、gt;  Adodc1.Recordset.Fields(Str) = Text2.Text</p><p>  Adodc1.Recordset.Fields(str2) = Text3.Text</p><p>  Open "F:\VB文件\ziduan.dat" For Output As #2 '用文件來保存最大字段數(shù)</p>

78、<p>  Write #2, i</p><p><b>  Close 2</b></p><p>  'Print "文件已建立!"</p><p><b>  i = i + 1</b></p><p><b>  End If</b

79、></p><p>  If j > 1 Then</p><p>  Open "F:\VB文件\ziduan.dat" For Input As #2</p><p>  Input #2, zmax</p><p><b>  Close 2</b></p><p

80、>  If k <= zmax Then</p><p>  Str = "元件" & k</p><p>  str2 = "數(shù)量" & k</p><p>  Adodc1.Recordset.Fields(Str) = Text2.Text</p><p>  Adod

81、c1.Recordset.Fields(str2) = Text3.Text</p><p><b>  k = k + 1</b></p><p><b>  Else</b></p><p>  Str = "元件" & k</p><p>  str2 = &quo

82、t;數(shù)量" & k</p><p>  sql = "alter table 產(chǎn)品所需元件 add " & Str & " varchar(10)"</p><p>  Adodc1.Recordset.ActiveConnection.Execute sql</p><p>  Adodc1

83、.Recordset.Update</p><p>  Adodc1.Recordset.Save</p><p>  sql = "alter table 產(chǎn)品所需元件 add " & str2 & " varchar(10)"</p><p>  Adodc1.Recordset.ActiveConnect

84、ion.Execute sql</p><p>  Adodc1.Recordset.Update</p><p>  Adodc1.Recordset.Save</p><p>  Adodc1.Refresh</p><p>  Adodc1.Recordset.MoveLast</p><p>  Adodc1.

85、Recordset.Fields(Str) = Text2.Text</p><p>  Adodc1.Recordset.Fields(str2) = Text3.Text</p><p>  Open "F:\VB文件\ziduan.dat" For Output As #2 '用文件來保存最大字段數(shù)</p><p>  Wr

86、ite #2, k</p><p><b>  Close 2</b></p><p><b>  k = k + 1</b></p><p><b>  End If</b></p><p>  在產(chǎn)品所需元件子模塊中設(shè)計了刪除按鈕,供客戶刪除過時的或錯誤的記錄。該子模塊的界

87、面如圖4.8所示。</p><p>  圖4.8 產(chǎn)品所需元件界面</p><p>  銷售分析子模塊利用VB的繪圖功能以不同顏色繪制過去三年的歷史銷售折線以及今年過去月份的銷售折線。另外還可以根據(jù)用戶輸入的產(chǎn)品名稱繪制該產(chǎn)品在過去三年的銷售折線以及今年過去月份的銷售折線。該子模塊的重點(diǎn)在于按月求出銷售總額并繪制折線圖。由于每個月的銷售總額是不定的,無法預(yù)知其最大值。所以在繪制銷售折線時把

88、每個月銷售總額中的最大值作為折線圖的最高點(diǎn),其他月份的銷售額對應(yīng)的點(diǎn)按照與最大值的比例繪制,然后把相鄰的兩個點(diǎn)用直線連接起來就是銷售折線。在按照用戶輸入的產(chǎn)品名稱繪制折線圖之后,系統(tǒng)還會求出該種產(chǎn)品每個月的歷史銷售最大值和歷史銷售最小值供用戶參考。該部分的核心程序如下。</p><p>  Dim strSQL As String</p><p>  Dim j As Integer<

89、;/p><p>  Dim i As Integer</p><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 Intege

90、r</p><p>  Dim maxyu(1 To 12) As Integer</p><p>  Dim minyu(1 To 12) As Integer</p><p>  Picture3.Cls</p><p>  Picture4.Cls</p><p>  strSQL = "Select

91、* From 發(fā)貨管理 Where 產(chǎn)品名稱 " & " ='" & str & "'"</p><p>  Adodc2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info= False;Data Source=&

92、quot; & App.Path & "\db1.mdb"</p><p>  Adodc2.RecordSource = strSQL</p><p>  Adodc2.Refresh</p><p>  If Adodc2.Recordset.RecordCount <> 0 Then</p><

93、;p>  Adodc2.Recordset.MoveFirst</p><p>  Label5.Caption = ""</p><p>  nian = Year(Date)</p><p>  For j = 0 To 3</p><p>  If Adodc2.Recordset.RecordCount &l

94、t;> 0 Then</p><p>  Adodc2.Recordset.MoveFirst</p><p><b>  End If</b></p><p>  While Not Adodc2.Recordset.EOF</p><p>  If Year(Adodc2.Recordset.Fields(&q

95、uot;出庫時間")) = (nian - j) Then</p><p>  Select Case Month(Adodc2.Recordset.Fields("出庫時間"))</p><p><b>  Case 1</b></p><p>  shu(j, 1) = shu(j, 1) + Adodc2.R

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

97、gt;<p>  shu(j, 3) = shu(j, 3) + Adodc2.Recordset.Fields("數(shù)量")</p><p><b>  Case 4</b></p><p>  shu(j, 4) = shu(j, 4) + Adodc2.Recordset.Fields("數(shù)量")</p&

98、gt;<p><b>  Case 5</b></p><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)

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

100、gt;</p><p>  shu(j, 8) = shu(j, 8) + Adodc2.Recordset.Fields("數(shù)量")</p><p><b>  Case 9</b></p><p>  shu(j, 9) = shu(j, 9) + Adodc2.Recordset.Fields("數(shù)量&quo

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

102、1) = shu(j, 11) + Adodc2.Recordset.Fields("數(shù)量")</p><p><b>  Case 12</b></p><p>  shu(j, 12) = shu(j, 12) + Adodc2.Recordset.Fields("數(shù)量")</p><p>  End

103、 Select</p><p><b>  End If</b></p><p>  Adodc2.Recordset.MoveNext</p><p><b>  Wend</b></p><p><b>  Next j</b></p><p>  

104、For j = 0 To 3</p><p>  For i = 1 To 12</p><p>  If shu(j, i) > maxshu Then</p><p>  maxshu = shu(j, i)</p><p><b>  End If</b></p><p><b&

105、gt;  Next i</b></p><p><b>  Next j</b></p><p>  'Print maxshu</p><p>  '///////////////////////////////////////////////////////////////////////////////////

106、///////////////////////////////////////////////</p><p><b>  '繪出每年的走勢圖</b></p><p>  Picture3.Line (200, 4500)-(200, 100) '豎軸的長度是4400</p><p>  Picture3.Prin

107、t "數(shù)量(件)"</p><p>  Picture3.Line (200, 4500)-(13500, 4500) '橫軸的長度是11500</p><p>  Picture3.Print "月份"</p><p>  For i = 1 To 12</p><p>  Pictu

108、re3.CurrentX = 200 + 1000 * i</p><p>  Picture3.CurrentY = 4500</p><p>  Picture3.Print i & "月"</p><p><b>  Next i</b></p><p>  For j = 0 To 3

109、</p><p>  For i = 1 To 12</p><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 < Mont

110、h(Date) Then</p><p>  Picture3.Line (200 + 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<

111、/b></p><p><b>  End If</b></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>

112、  If i < 12 Then</p><p>  Picture3.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

113、 If</b></p><p><b>  End If</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>&l

114、t;p>  If i < 12 Then</p><p>  Picture3.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&g

115、t;  End If</b></p><p><b>  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>

116、;<p>  If i < 12 Then</p><p>  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><

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

118、<p>  If shu(j, i) <> 0 Then</p><p>  Picture3.Print shu(j, i)</p><p><b>  End If</b></p><p><b>  Next i</b></p><p><b>  Next

119、j</b></p><p>  '///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////</p><p>  yue = Month(Date)</p

120、><p>  Label4.Caption = nian & "年" & yue & "月以后銷售分析"</p><p>  Picture4.CurrentX = 0</p><p>  Picture4.CurrentY = 500</p><p>  For i = yue T

121、o 12</p><p>  For j = 1 To 3</p><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>

122、;<p>  If shu(j, i) > maxyu(i) Then</p><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

123、) = shu(j, i)</p><p><b>  End If</b></p><p><b>  Next j</b></p><p>  Picture4.Print i & "月份歷史最大值為:" & maxyu(i)</p><p>  Pictur

124、e4.CurrentX = 450</p><p>  Picture4.Print "歷史最小值為:" & minyu(i)</p><p><b>  Next i</b></p><p><b>  Else</b></p><p>  Label5.Caption

125、 = "沒有相關(guān)記錄!"</p><p>  End If ' </p><p>  該子模塊的界面如圖4.9所示。</p><p>  圖4.9 銷售分析界面</p><p>  4.1.5 查詢模塊</p><p>  查詢模塊可以對發(fā)貨、訂單、入庫元件、入庫成品、產(chǎn)品所需

126、元件、元件消耗、元件存貨、成品存貨進(jìn)行查詢。由于對發(fā)貨、訂單、入庫元件、入庫成品、產(chǎn)品所需元件、元件消耗的查詢是基于某一個數(shù)據(jù)表的,比較簡單,因此把這六個查詢分為一類單獨(dú)處理。查詢的結(jié)果用DataGrid控件顯示。用DataGrid控件顯示記錄可以不用關(guān)心要顯示的記錄具體有多少字段。因為這六個查詢的字段數(shù)不同,所以用DataGrid控件正好可以解決查詢過程中字段數(shù)不斷變化的問題。查詢條件的輸入是利用兩個ComboBox組合框控件和一個T

127、extBox文本框控件完成的。第一個ComboBox控件用于選擇要查詢的模塊,第二個ComboBox控件用于選擇要查詢的字段,即按什么查詢。第二個ComboBox控件的項目隨第一個ComboBox的內(nèi)容變化而變化。TextBox文本框控件用于輸入查詢條件。由于ADO控件的RecordSource屬性可以使用SQL語句,系統(tǒng)的查詢是利用SQL語句的查詢功能實現(xiàn)的。結(jié)構(gòu)化查詢語言SQL(Structured Query Language)是

溫馨提示

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

評論

0/150

提交評論