小型出入庫系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)網(wǎng)絡(luò)工程專業(yè)
小型出入庫系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)Design and Implementation of Mini Inventory Management System摘 要隨著信息技術(shù)的發(fā)展,傳統(tǒng)的統(tǒng)計(jì)方式在處理龐大的信息量時顯得極不適應(yīng),因此,人們對于運(yùn)用計(jì)算機(jī)來輔助協(xié)調(diào)和管理自身工作的需求正在逐步提高。近來,國內(nèi)外興起了一股辦公自動化的熱潮,希望能借助相關(guān)的計(jì)算機(jī)技術(shù)實(shí)現(xiàn)對企業(yè)辦公過程的自動化管理。目前,辦公自動化正朝著多功能,復(fù)合化和系統(tǒng)化的方向發(fā)展,如何有效的實(shí)現(xiàn)作業(yè)流程的自動化已經(jīng)提到日程上來。這樣對信息流的有效組織和管理便日益成為衡量一個辦公自動化系統(tǒng)優(yōu)劣的重要標(biāo)志。好用庫管小型出入庫系統(tǒng)就是一個由人、計(jì)算機(jī)硬件、軟件和數(shù)據(jù)資源組成的,目的在于及時、正確、準(zhǔn)確地收集、加工、存儲、傳送和提供決策信息的微型管理信息系統(tǒng)。該系統(tǒng)主要是為了減輕工作量、降低工作誤差、提高工作效率而開發(fā)、編制的。希望通過使用本系統(tǒng),為小型倉庫管理帶來便捷!開發(fā)后的庫存管理系統(tǒng),是基于原有的管理模式上彌補(bǔ)人工操作繁瑣、查詢效果不理想、效率較低的問題。經(jīng)過編譯和調(diào)試,本系統(tǒng)能基本解決上述問題。主要用到了一些出入庫時的操作信息,還有原料的一些基本信息。簡單易懂的操作方式、友好的用戶界面以及清晰簡潔的數(shù)據(jù)處理流程,使得本系統(tǒng)能夠很快被接受和掌握,較快地取代原有的全人工操作方式。在數(shù)據(jù)輸入上,本系統(tǒng)主要有出入庫數(shù)據(jù)輸入和原料基本資料輸入兩方面。出入庫數(shù)據(jù)的輸入主要有出入庫原料的資料、出入庫原料的數(shù)量等;原料的基本資料主要有編號、名稱、價格等。當(dāng)進(jìn)行數(shù)據(jù)查詢時,采用相關(guān)字段排序法。當(dāng)有原料登記出庫或者入庫時,在庫存總數(shù)據(jù)庫里的相應(yīng)數(shù)據(jù)會及時更新,所以,從本系統(tǒng)獲得的數(shù)據(jù)資料都是最新的。這對于庫存的管理、數(shù)據(jù)的查詢來說,是非常有利的。好用庫管小型出入庫系統(tǒng)在對原有管理模式不進(jìn)行很大改變的基礎(chǔ)上將大大提高工作效率,彌補(bǔ)了現(xiàn)有人工系統(tǒng)的缺陷,其可行性是顯而易見的。關(guān)鍵詞:出入庫系統(tǒng);庫存管理;數(shù)據(jù)輸入;數(shù)據(jù)查詢;管理信息系統(tǒng)Design and Implementation of Mini Inventory Management SystemAbstractAlong with the rapid development of computer vision technology, the traditional statistics methods can not meet the need of large amount of information processing day by day, so more and more people are interested in computer technology to assist and manage people work in demand. Recently, it is very popular to use office automation system software at home and aboard, and with the computers helps, people hope it can put the enterprise office automation system management into realization. At present, the office automation system has been moving forward to multi-function, complicated operations and systematic directions, how to achieve effective automatically operational procedures more effective has been put into agenda. The effective information flow organization and management has gradually been an important signs to measure an office automation system is good or not. Haoyong Inventory Management Systema small data input/output inventory system consists of people, computer hardware, software and data resources, it is a micro-information management system with the objective of decision information collecting、processing、storing、delivering timely, correctly and accurately. This system is developed to reduce the workload and errors, makes the work more effective, and hope it can bring convenience to your job! This inventory management system is developed without original management model problems of too complicated manual operation, not effective inquiries results, and after compiling and debugging of the program, this system can solve above 2 problems. Some information such as inventory operation information and raw material information has been developed for this system. Simple and easily used operation interface, friendly user interface and simple data processing programs, have made the user quickly to familiar and master with this system, and forget the existing artificial manner of operation.When doing the data input, this system is mainly including two functions such as inventory database information inputs and basic raw material information inputs. Database information input mainly includes raw material information, raw material quantities and etc; the basic information of the raw material includes serial number, description, pricing, materials and etc. When doing the data inquiries, the related data will be put in order by related field method. And the related information in the database of this inventory system will be updated once there are new inputs/outputs, this will make sure the data collected from this system up to date and it would be much beneficial to inventory management and data inquiries.Haoyong Inventory Management Systema small data input/output inventory system has been improved with only a few changes to original system at the workers efficiency, and the existing manual system deficiencies, it is obvious to see its feasibility of this system.Keywords:Input-output System;Inventory Management; Data Input;Data Inquiry;Information Management System目 錄摘 要.3Abstract.41 緒論.62 系統(tǒng)和開發(fā)工具介紹.7 2.1系統(tǒng)介紹.7 2.2開發(fā)工具介紹.73 系統(tǒng)分析.9 3.1現(xiàn)有狀況分析.9 3.2系統(tǒng)可行性分析.94 系統(tǒng)設(shè)計(jì).11 4.1總體設(shè)計(jì).11 4.2程序模塊設(shè)計(jì)及說明.135 系統(tǒng)測試.32 5.1總體測試.32 5.2白盒測試.32 5.3黑盒測試.346 系統(tǒng)的技術(shù)特點(diǎn).357 總結(jié).37參考文獻(xiàn).40英文資料.41英文資料譯文.45原代碼清單.48致 謝.64 1 緒論今天,我們已經(jīng)步入21世紀(jì)了!這是一個變化難測的世紀(jì),一個催人奮進(jìn)的時代??茖W(xué)技術(shù)飛速發(fā)展,知識更替日新月異?;仨哌^的20世紀(jì),20世紀(jì)可以說是人類歷史上的又一個轉(zhuǎn)折點(diǎn),第一臺計(jì)算機(jī)的誕生直到今天在各行各業(yè)中的應(yīng)用,計(jì)算機(jī)的出現(xiàn)使得我們的生活、工作發(fā)生了質(zhì)的變化!隨著信息技術(shù)的發(fā)展,傳統(tǒng)的統(tǒng)計(jì)方式在處理龐大的信息量時顯得極不適應(yīng),因此,人們對于運(yùn)用計(jì)算機(jī)來輔助協(xié)調(diào)和管理自身工作的需求正在逐步提高。近來,國內(nèi)外興起了一股辦公自動化的熱潮,希望能借助相關(guān)的計(jì)算機(jī)技術(shù)實(shí)現(xiàn)對企業(yè)辦公過程的自動化管理。目前,辦公自動化正朝著多功能,復(fù)合化和系統(tǒng)化的方向發(fā)展,如何有效的實(shí)現(xiàn)作業(yè)流程的自動化已經(jīng)提到日程上來。這樣對信息流的有效組織和管理便日益成為衡量一個辦公自動化系統(tǒng)優(yōu)劣的重要標(biāo)志。計(jì)算機(jī)信息技術(shù)的發(fā)展,為企業(yè)注入了新動力,使企業(yè)在競爭中處于優(yōu)勢,為企業(yè)明天的生存和發(fā)展創(chuàng)造了機(jī)會。計(jì)算機(jī)信息管理即MIS,就是計(jì)算機(jī)信息技術(shù)高度發(fā)展和在企業(yè)管理中運(yùn)用的產(chǎn)物。現(xiàn)今,越來越多的企業(yè)利用MIS進(jìn)行企業(yè)管理、計(jì)劃和決策工作,MIS在戰(zhàn)略級、策略級、作業(yè)級這三級管理信息中的重要作用使得MIS成為現(xiàn)代企業(yè)生存和發(fā)展的必備條件。隨著MIS的日趨成熟和完善,勢必在未來成為企業(yè)經(jīng)營管理中的一大關(guān)鍵環(huán)節(jié)!好用庫管小型出入庫系統(tǒng)就是一個由人、計(jì)算機(jī)硬件、軟件和數(shù)據(jù)資源組成的,目的在于及時、正確、準(zhǔn)確地收集、加工、存儲、傳送和提供決策信息的微型管理信息系統(tǒng)。該系統(tǒng)主要是為了減輕工作量、降低工作誤差、提高工作效率而開發(fā)、編制的。希望通過使用本系統(tǒng),為小型倉庫管理帶來便捷!由于個人技術(shù)水平的有限和時間的倉促,本系統(tǒng)難免有不足之處,還懇請老師見諒!2 系統(tǒng)和開發(fā)工具介紹2.1系統(tǒng)介紹系統(tǒng) 好用庫管小型出入庫系統(tǒng)模擬說明有一家小型規(guī)模的原料倉庫,目前為止該倉庫的出入庫管理和庫存管理都是由人工統(tǒng)計(jì)完成,工作量比較繁重且出錯率較高,效率較低。系統(tǒng)功能本軟件系統(tǒng)主要作用包括對小型原料倉庫的日常存貨管理,包含出庫、入庫和庫存量的盤點(diǎn),對原料倉庫內(nèi)所有產(chǎn)品的查詢功能,可以按照不同的條件如產(chǎn)品編號或產(chǎn)品名稱進(jìn)行查詢;對已有的產(chǎn)品數(shù)據(jù)庫進(jìn)行增加、刪除等操作功能。本軟件的意旨在于:通過計(jì)算機(jī)對信息的管理,能夠使原料倉庫的日常庫存管理、信息查詢變得簡單、快捷,減輕工作人員繁重的工作量、降低工作誤差、提高工作效率。系統(tǒng)運(yùn)行條件 硬件系統(tǒng)環(huán)境:1. CPU:C300或更高。2. 內(nèi)存:64 MB或更大。3. 硬盤:50MB或更大。軟件系統(tǒng)環(huán)境:1Microsoft Windows 98以上。2Microsoft Visual Basic 6.0以上。3Microsoft SQL Sever7.0以上。 2.2開發(fā)工具介紹Microsoft Visual Basic 6.0Visual Basic 6.0簡稱VB6.0,是微軟公司推出的可視化編程工具M(jìn)SDN之一,是目前世界上使用最廣泛的程序開發(fā)工具。如果你是一個對編程一無所知,而又迫切希望掌握一種快捷實(shí)用的編程語言的初學(xué)者,那選擇VB 6.0沒錯的。即使考慮到VB程序本身編譯和運(yùn)行效率較低的不足,單是它的快捷的開發(fā)速度,簡單易學(xué)的語法,體貼便利的開發(fā)環(huán)境,它仍不失一款優(yōu)秀編程工具,是初學(xué)者的首選。 也許你會問,我以前沒學(xué)過任何一種語言,我能快速上手嗎?別擔(dān)心,沒問題VB的語法的和QBASIB語言是基本相同的,也就是說它的語法是最容易被初學(xué)者所接受的。另外VB提供的是可視化的開發(fā)環(huán)境,我們可以象搭積木一樣構(gòu)建出程序的界面,而且VB提供了豐富的控件組,省去了我們自己寫代碼實(shí)現(xiàn)這些效果的麻煩,這樣我們就能把更多的精力放在程序功能的實(shí)現(xiàn)上,所以VB學(xué)起來簡單,用起來方便。接著看看VB語言的前景,在目前各種編程語言共存的時代,VB會不會落伍呢?當(dāng)然不會了,在我寫這篇文章的同時,微軟已經(jīng)透露了VB7.0將完全面向?qū)ο蟮南ⅲ梢钥隙ㄏ乱淮鶹B的功能一定會強(qiáng)大很多,我們這些所謂的VB程序員總算可以放心了,VB不會落后于時代,畢竟它是使用人數(shù)最多的優(yōu)秀的開發(fā)工具。 SQL Server 2000 SQL Server是一個后臺數(shù)據(jù)庫管理系統(tǒng),它功能強(qiáng)大、操作簡便,日益為廣大數(shù)據(jù)庫用戶所喜愛,越來越多的開發(fā)工具提供了與SQL Server的接口。了解和掌握SQL Server的功用對一個數(shù)據(jù)庫開發(fā)管理人員來說是非常必要的。 SQL Server 2000在SQL Server 7.0的基礎(chǔ)上新增了很多功能,使用戶能更方便、快捷地管理數(shù)據(jù)庫、開發(fā)應(yīng)用程序。SQL Server 2000全面地?cái)U(kuò)展了SQL Server 7.0的性能、可靠性和易用性,使它成為一個杰出的數(shù)據(jù)庫平臺,可用于大型聯(lián)機(jī)事務(wù)、數(shù)據(jù)倉庫以及電子商務(wù)等。3 系統(tǒng)分析3.1現(xiàn)有狀況分析:現(xiàn)有一個小型原料倉庫,到目前為止,仍舊是全人工管理方式。出入庫記錄全部由人工完成,工作量非常大,而且非常繁瑣,也經(jīng)常出現(xiàn)數(shù)據(jù)誤差的現(xiàn)象。雖然有專職人員負(fù)責(zé)數(shù)據(jù)核對與庫存檢點(diǎn),但工作效率非常低。一段時間下來,隨著倉庫中原料的增多,單靠人工管理顯得力不從心?,F(xiàn)有倉庫原料入庫的過程是,當(dāng)預(yù)定的原料送到倉庫時,倉庫檢驗(yàn)員根據(jù)定貨單核對原料種類和數(shù)目,確認(rèn)無誤后,由倉庫管理員進(jìn)行入庫登記填寫入庫單,將原料入庫;原料出庫的過程是,當(dāng)有人提貨時,倉庫檢驗(yàn)員根據(jù)提貨單核對原料的種類和數(shù)目,確認(rèn)無誤后,由倉庫管理員進(jìn)行出庫登記填寫出庫單,將原料出庫。原料出入庫、數(shù)據(jù)記錄與處理的業(yè)務(wù)流程圖如圖3-1所示:用戶訂貨單提貨單檢驗(yàn)員上級部門倉管員出庫單入庫單統(tǒng)計(jì)員統(tǒng)計(jì)報表倉庫 圖3-1注:我的側(cè)重點(diǎn)在于出入庫的數(shù)據(jù)處理,不涉及出入庫數(shù)據(jù)以外的數(shù)據(jù)?;谶@種情況,綜合所學(xué)的知識,我準(zhǔn)備開發(fā)一個名為好用庫管 的小型出入庫系統(tǒng)。該系統(tǒng)主要針對原料庫存量和出入庫的記錄信息進(jìn)行管理和存儲加工,利用計(jì)算機(jī)計(jì)算的精確性,降低在操作過程中產(chǎn)生的誤差,該系統(tǒng)的主控權(quán)在倉庫管理人員手中。同時,該軟件還提供了快捷、簡單的查詢系統(tǒng),能夠在短時間內(nèi)提供所需的相關(guān)信息,節(jié)省時間和工作環(huán)節(jié),從一定程度上提高工作效率。3.2系統(tǒng)可行性分析:該原料倉庫的出入庫管理一直采用全人工方式,在操作上存在效率低、誤差多的缺點(diǎn),且要查詢相關(guān)庫存資料時,消耗的人力和時間比較多。我想用自身所學(xué)習(xí)的知識,利用計(jì)算機(jī)技術(shù),結(jié)合相關(guān)數(shù)據(jù)資料,建立庫存原料數(shù)據(jù)庫、出入庫數(shù)據(jù)庫等相關(guān)數(shù)據(jù)庫。為軟件系統(tǒng)提供可靠的數(shù)據(jù)源,發(fā)揮其強(qiáng)大的數(shù)據(jù)加工處理功能創(chuàng)造了條件。能夠?qū)斎氲臄?shù)據(jù)能夠進(jìn)行整理歸檔,進(jìn)行相適處理工作后再輸出有用的數(shù)據(jù)信息。同時,系統(tǒng)能夠及時統(tǒng)計(jì)相應(yīng)的數(shù)據(jù)資料,為查詢或輸出等提供即時的數(shù)據(jù)資料。原有的人工管理模式和操作流基本是合理的,問題在于具體實(shí)施時的繁瑣與低效率。如何找到一種比較好的方法,使得原有的管理模式在不發(fā)生很大改變的情況下,提高工作效率,變繁瑣為快捷?既要滿足原來的工作需要,又要容易被員工接受,并且在短時間內(nèi)可以基本過渡到新方式?開發(fā)后的庫存管理系統(tǒng),是基于原有的管理模式上彌補(bǔ)人工操作繁瑣、查詢效果不理想、效率較低的問題。經(jīng)過編譯和調(diào)試,本系統(tǒng)能基本解決上述問題。主要用到了一些出入庫時的操作信息,還有原料的一些基本信息。簡單易懂的操作方式、友好的用戶界面以及清晰簡潔的數(shù)據(jù)處理流程,使得本系統(tǒng)能夠很快被接受和掌握,較快地取代原有的全人工操作方式。在數(shù)據(jù)輸入上,本系統(tǒng)主要有出入庫數(shù)據(jù)輸入和原料基本資料輸入兩方面。出入庫數(shù)據(jù)的輸入主要有出入庫原料的資料、出入庫原料的數(shù)量等;原料的基本資料主要有編號、名稱、價格等。當(dāng)進(jìn)行數(shù)據(jù)查詢時,采用相關(guān)字段排序法。當(dāng)有原料登記出庫或者入庫時,在庫存總數(shù)據(jù)庫里的相應(yīng)數(shù)據(jù)會及時更新,所以,從本系統(tǒng)獲得的數(shù)據(jù)資料都是最新的。這對于庫存的管理、數(shù)據(jù)的查詢來說,是非常有利的。好用庫管小型出入庫系統(tǒng)在對原有管理模式不進(jìn)行很大改變的基礎(chǔ)上將大大提高工作效率,彌補(bǔ)了現(xiàn)有人工系統(tǒng)的缺陷,其可行性是顯而易見的。系統(tǒng)流程如圖3-2所示:出入庫單據(jù)數(shù)據(jù)處理基本資料數(shù)據(jù)庫庫存數(shù)據(jù)庫出庫入庫數(shù)據(jù)庫數(shù)據(jù)報表查詢顯示結(jié)果顯示報表 圖3-24 系統(tǒng)設(shè)計(jì)4.1總體設(shè)計(jì)系統(tǒng)設(shè)計(jì)目標(biāo):1 方便的數(shù)據(jù)輸入方式,良好的人機(jī)界面,盡量避免漢字和長字符串的人工重復(fù)輸入;2 靈活地查詢性能,能快速實(shí)現(xiàn)庫存數(shù)據(jù)的查詢;3 考慮到倉庫原料的多樣性,對新數(shù)據(jù)和無用數(shù)據(jù)也能給于處理;4 把目前基本上是“靜態(tài)”的庫存管理數(shù)據(jù)變?yōu)椤皠討B(tài)”的數(shù)據(jù),能隨時提供庫存現(xiàn)狀信息;5 為了以后系統(tǒng)的改進(jìn),整個系統(tǒng)可以作為一個封裝體。系統(tǒng)基本功能:1 用戶登陸。2 入庫管理。3 出庫管理。4 查詢。5 盤點(diǎn)。6 系統(tǒng)維護(hù)(增加、減少操作員,原料基本資料維護(hù),數(shù)據(jù)備份、數(shù)據(jù)恢復(fù))。系統(tǒng)的功能結(jié)構(gòu)圖繪制如圖4-1所示:管理員admin登陸操作員登陸入庫管理出庫管理查詢盤點(diǎn)系統(tǒng)維護(hù)離開 圖4-1 數(shù)據(jù)庫規(guī)劃:針對以上功能的實(shí)現(xiàn),結(jié)合對功能實(shí)現(xiàn)的方便,數(shù)據(jù)庫結(jié)構(gòu)精簡、合理性、易維護(hù)等因素的考慮,總共建了5張表格,描述如下:1 login:操作員數(shù)據(jù)表字段名數(shù)據(jù)類型數(shù)據(jù)長度編號int4用戶名varchar50密碼varchar502 productin:原料入庫數(shù)據(jù)表字段名數(shù)據(jù)類型數(shù)據(jù)長度入庫單編號int4產(chǎn)品編號int4產(chǎn)品名稱varchar50產(chǎn)品單位varchar50入庫價格money8入庫數(shù)量int4入庫時間varchar503 productout:原料出庫數(shù)據(jù)表字段名數(shù)據(jù)類型數(shù)據(jù)長度出庫單編號int4產(chǎn)品編號int4產(chǎn)品名稱varchar50產(chǎn)品單位varchar50出庫價格money8出庫數(shù)量int4出庫時間int44 product:原料庫存數(shù)據(jù)表 字段名數(shù)據(jù)類型數(shù)據(jù)長度產(chǎn)品編號int4產(chǎn)品名稱varchar50產(chǎn)品單位varchar50產(chǎn)品價格money8產(chǎn)品數(shù)量int45 productnew:原料基本信息數(shù)據(jù)表字段名數(shù)據(jù)類型數(shù)據(jù)長度產(chǎn)品編號int4產(chǎn)品名稱varchar50產(chǎn)品單位varchar50產(chǎn)品價格money8系統(tǒng)數(shù)據(jù)流程圖:根據(jù)功能機(jī)構(gòu)圖和以上5張表,系統(tǒng)的信息數(shù)據(jù)流程圖如圖4-2所示:啟動程序登陸模塊表1操作員信息輸入信息正確管理員入庫模塊表4,5入庫數(shù)量輸入表2出庫模塊出庫數(shù)量輸入表4表3查詢模塊表2,3,4,5顯示查詢結(jié)果盤點(diǎn)模塊表2,3,4顯示報表操作員維護(hù)模塊表1原料基本信息維護(hù)模塊表5數(shù)據(jù)備份和恢復(fù)模塊表1,2,3,4,5入庫完成出庫完成表4 N YY N圖4-2表1注: login表(操作員數(shù)據(jù)表)表2 productin表(原料入庫數(shù)據(jù)表)表3 productout表(原料出庫數(shù)據(jù)表)表4 product表(原料庫存數(shù)據(jù)表)表5 productnew表(原料基本信息數(shù)據(jù)表)4.2程序模塊設(shè)計(jì)及說明1用戶登陸模塊 界面設(shè)計(jì): 圖4-3窗體名:frmLogin.frm功能分析:該窗體是系統(tǒng)的入口,用來判定登陸者是否有權(quán)使用本系統(tǒng),只有用戶名和密碼輸入都正確才能進(jìn)入系統(tǒng)。而且,根據(jù)用戶名的不同,能夠使用系統(tǒng)的權(quán)限也不同,admin(倉庫管理員)能使用所有的系統(tǒng)功能,其它用戶(操作員)不能使用系統(tǒng)維護(hù)功能(操作員維護(hù)、原料基本資料維護(hù)和數(shù)據(jù)備份恢復(fù)),但能使用除此之外的系統(tǒng)功能。功能實(shí)現(xiàn):該窗體由兩個Label控件(用來標(biāo)明輸入用戶名和密碼的兩個文本框)兩個TextBox控件(用來輸入用戶名和密碼)和一個CommandButton控件(用來判斷輸入的用戶名和密碼是否正確)組成。使用ADO對象模型來訪問login表(操作員數(shù)據(jù)表)。代碼如下: Dim strsql As StringSet cn = CreateObject("adodb.connection")Set rs = CreateObject("adodb.recordset")cn.Open conn_stringstrsql = "select * from login where 用戶名=" & Text1(0).Text & ""rs.Open strsql, cn, 3, 3注:conn_string是我在Module1模塊中聲明的全局級常量(Public Const conn_string = “DRIVER=SQL Server;SERVER=(local);UID=sa;DATABASE=product;AutoTranslate=No;pwd=”)。當(dāng)兩個文本框輸入數(shù)據(jù)后,按驗(yàn)證按鈕實(shí)現(xiàn)信息核對,若正確則調(diào)用frmMain.frm窗體;若出錯則有提示信息,再次接收輸入。該模塊還實(shí)現(xiàn)了權(quán)限的判斷,當(dāng)用戶名是“admin”時,正確登陸后,能使用所有的系統(tǒng)功能;其它的用戶名登陸后,不能使用系統(tǒng)維護(hù)功能(操作員維護(hù)、原料基本資料維護(hù)和數(shù)據(jù)備份恢復(fù))。代碼如下:dim g_login As String g_login = Text1(0).TextIf g_login <> "admin" Then frmMain.Command1.Enabled = False frmMain.Command6.Enabled = False frmMain.Command7.Enabled = False frmMain.newin.Enabled = False frmMain.backup.Enabled = False frmMain.User.Enabled = False End If 當(dāng)不是以用戶名“admin”登陸時,主窗體的一些菜單的Enabled屬性被設(shè)為了False, 顯示為灰色,不可用。如圖4-4所示: 圖4-42主窗體模塊 界面設(shè)計(jì): 圖4-5窗體名:frmMain.frm 功能分析: 該窗體是系統(tǒng)的主界面,所有的系統(tǒng)應(yīng)用都靠選取功能菜單及其下拉菜單中的操作項(xiàng)或按窗體上的快捷按鈕進(jìn)入相應(yīng)的操作。 功能實(shí)現(xiàn):首先用菜單編輯器編輯菜單:一級菜單“文件”(包括三個二級菜單“入庫”、“出庫”和“退出”);一級菜單“查詢統(tǒng)計(jì)”(包括兩個二級菜單“查詢”和“盤點(diǎn)統(tǒng)計(jì)”);一級菜單“系統(tǒng)維護(hù)”(包括三個二級菜單“操作員維護(hù)”、“新產(chǎn)品”和“備份恢復(fù)”);一級菜單“幫助”。再在窗體上建8個快捷按鈕(“入庫”、“出庫”、“查詢”、“盤點(diǎn)”、“用戶”、“新產(chǎn)品”、“備份恢復(fù)”和“離開”)。通過調(diào)用窗體frmInput.frm實(shí)現(xiàn)原料入庫功能。通過調(diào)用窗體frmSell.frm實(shí)現(xiàn)原料出庫功能。通過調(diào)用窗體frmSearch.frm實(shí)現(xiàn)對原料出入庫信息和原料庫存信息地查詢功能。通過調(diào)用窗體frmTable.frm實(shí)現(xiàn)對原料出入庫報表和原料庫存報表地顯示功能。通過調(diào)用窗體frmUser.frm實(shí)現(xiàn)操作員信息地維護(hù)功能。通過調(diào)用窗體frmNew.frm實(shí)現(xiàn)對原料基本信息地維護(hù)功能。通過調(diào)用窗體frmBackup.frm實(shí)現(xiàn)對系統(tǒng)所有信息數(shù)據(jù)地備份和恢復(fù)功能。通過一級菜單“文件”下的二級菜單“退出”或快捷按鈕“離開”實(shí)現(xiàn)退出系統(tǒng)的功能。3操作員維護(hù)模塊界面設(shè)計(jì): 圖4-6窗體名:frmUser.frm功能分析: 添加或刪除操作員。功能實(shí)現(xiàn):使用ADO控件來訪問login表(操作員數(shù)據(jù)表),將DataGrid控件和ADODC控件綁定。當(dāng)按刪除鈕時執(zhí)行以下代碼:Private Sub Command2_Click() Dim varBmk As Variant Dim Massage As Integer If DataGrid1.SelBookmarks.Count = 0 Then MsgBox "請先選定要刪除的行" Exit Sub End If DataGrid1.AllowDelete = True Massage = MsgBox("確定要刪除嗎?", vbYesNo) If Massage = vbNo Then Exit Sub End If For Each varBmk In DataGrid1.SelBookmarks With Adodc1.Recordset .Bookmark = varBmk .Delete End With Next Adodc1.RefreshEnd Sub 實(shí)現(xiàn)刪除功能。 當(dāng)按下添加鈕時,調(diào)用窗體frmUserin.frm,如圖4-7所示: 圖4-7 該窗體使用ADO對象模型來訪問login表(操作員數(shù)據(jù)表)。當(dāng)兩個文本框輸入數(shù)據(jù)后,按添加按鈕實(shí)現(xiàn)信息核對,若用戶名已存在則出錯,并提示"該用戶已存在,請另選用戶名",再次接收輸入。若沒問題則添加新操作員成功,并提示"添加成功"。若按關(guān)閉按鈕則關(guān)閉該窗體,回到frmUser.frm窗體。4原料基本信息維護(hù)模塊界面設(shè)計(jì): 圖4-8窗體名:frmNew.frm功能分析: 添加或刪除原料種類。功能實(shí)現(xiàn):使用ADO控件來訪問productnew表(原料基本信息數(shù)據(jù)表),將Data控件和ADODC控件綁定。當(dāng)按刪除鈕時執(zhí)行以下代碼: Private Sub Command2_Click() Dim varBmk As Variant Dim Massage As Integer If DataGrid1.SelBookmarks.Count = 0 Then MsgBox "請先選定要刪除的行" Exit Sub End If DataGrid1.AllowDelete = True Massage = MsgBox("確定要刪除嗎?", vbYesNo) If Massage = vbNo Then Exit Sub End If For Each varBmk In DataGrid1.SelBookmarks With Adodc1.Recordset . Bookmark = varBmk .Delete End With Next Adodc1.RefreshEnd Sub實(shí)現(xiàn)刪除功能,同時更新productnew表(原料基本信息數(shù)據(jù)表)。 當(dāng)按下添加鈕時,調(diào)用窗體frmNewin.frm,如圖4-9所示: 圖4-9該窗體使用ADO對象模型來訪問productnew表(原料基本信息數(shù)據(jù)表)。當(dāng)三個文本框輸入數(shù)據(jù)后,按添加按鈕實(shí)現(xiàn)信息核對,若產(chǎn)品名稱已存在則出錯,并提示"該產(chǎn)品已存在",再次接收輸入。若沒問題則添加新產(chǎn)品成功,并提示"添加成功",同時更新productnew表(原料基本信息數(shù)據(jù)表)。若按關(guān)閉按鈕則關(guān)閉該窗體,回到frmNew.frm窗體。 5入庫模塊界面設(shè)計(jì): 圖4-10窗體名:frmInput.frm功能分析: 原料入庫。功能實(shí)現(xiàn): 該窗體是原料入庫的界面,使用ADO對象模型來訪問productnew表(原料基本信息數(shù)據(jù)表)、product表(原料庫存數(shù)據(jù)表)和productin表(原料入庫數(shù)據(jù)表)。為了得到方便的數(shù)據(jù)輸入方式和良好的人機(jī)界面,應(yīng)盡量避免漢字和長字符串的人工重復(fù)輸入,在窗體中用了一個ComboBox控件和三個TextBox控件來描述入庫原料的基本資料,再用一個TextBox控件來輸入入庫原料的數(shù)量。首先,在加載該窗體時,把productnew表(原料基本信息數(shù)據(jù)表)中“產(chǎn)品名稱”字段的數(shù)據(jù)加入到下拉框里,代碼如下: Private Sub Form_Load() Dim strsql As String Set cn = CreateObject("adodb.connection") Set rs = CreateObject("adodb.recordset") cn.Open conn_string strsql = "select * from productnew" rs.Open strsql, cn, 1, 1 Do Until rs.EOF Combo1.AddItem rs("產(chǎn)品名稱") 產(chǎn)品名稱 rs.MoveNext Loop If Combo1.ListCount > 0 Then Combo1.ListIndex = 0 End If End Sub 其次,加載該窗體后,在下拉框里選取所要入庫的原料名稱,再按確定鈕,把productnew表(原料基本信息數(shù)據(jù)表)中 “產(chǎn)品編號”字段、“產(chǎn)品單位” 字段和“產(chǎn)品價格”字段的相應(yīng)數(shù)據(jù)顯示在三個文本框中。最后,在第四個“產(chǎn)品數(shù)量”文本框中輸入要入庫原料的數(shù)量,按入庫鈕完成原料入庫,同時更新product表(原料庫存數(shù)據(jù)表)和productin表(原料入庫數(shù)據(jù)表)。 6出庫模塊界面設(shè)計(jì): 圖4-11 窗體名:frmSell.frm功能分析: 原料出庫。功能實(shí)現(xiàn): 該窗體是原料出庫的界面,使用ADO對象模型來訪問product表(原料庫存數(shù)據(jù)表)和productout表(原料出庫數(shù)據(jù)表)。為了得到方便的數(shù)據(jù)輸入方式和良好的人機(jī)界面,應(yīng)盡量避免漢字和長字符串的人工重復(fù)輸入,在窗體中用了一個ComboBox控件和四個TextBox控件來描述出庫原料的基本資料,再用一個TextBox控件來輸入入庫原料的數(shù)量。首先,在加載該窗體時,把product表(原料庫存數(shù)據(jù)表)中“產(chǎn)品名稱”字段的數(shù)據(jù)加入到下拉框里,代碼如下: Private Sub Form_Load()Dim strsql As String Set cn = CreateObject("adodb.connection") Set rs = CreateObject("adodb.recordset") cn.Open conn_string strsql = "select * from product" rs.Open strsql, cn, 1, 1 Do Until rs.EOF Combo1.AddItem rs("產(chǎn)品名稱") rs.MoveNext Loop If Combo1.ListCount > 0 Then Combo1.ListIndex = 0 End If End Sub其次,加載該窗體后,在下拉框里選取所要入庫的原料名稱,再按確定鈕,把product表(原料庫存數(shù)據(jù)表)中 “產(chǎn)品編號”字段、“產(chǎn)品單位” 字段、“產(chǎn)品價格”字段和“產(chǎn)品數(shù)量”字段的相應(yīng)數(shù)據(jù)顯示在四個文本框中。最后,在第五個“產(chǎn)品數(shù)量”文本框中輸入要出庫原料的數(shù)量,按出庫鈕,若出庫原料的數(shù)量大于庫存原料的數(shù)量則出錯并提示"庫存不夠";若出庫原料的數(shù)量小于庫存原料的數(shù)量則完成原料出庫,同時更新product表(原料庫存數(shù)據(jù)表)和productout表(原料出庫數(shù)據(jù)表)。7查詢模塊界面設(shè)計(jì):如圖4-12所示。窗體名:frmSeach.frm功能分析:該窗體能靈活地進(jìn)行查詢,能快速實(shí)現(xiàn)原料庫存數(shù)據(jù)的查詢和原料出入庫單據(jù)的查詢。功能實(shí)現(xiàn):該窗體使用ADO對象模型來訪問productin表(原料入庫數(shù)據(jù)表)、productout表(原料出庫數(shù)據(jù)表)、product表(原料庫存數(shù)據(jù)表)。該窗體還使用了SStab控件。1原料庫存數(shù)據(jù)的查詢 可以分別使用原料的編號或原料的名稱進(jìn)行查詢。為了得到方便的數(shù)據(jù)輸入方式和良好的人機(jī)界面,應(yīng)盡量避免漢字和長 圖4-12字符串的