




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、前言貨物管理是一般工業(yè)和商業(yè)企業(yè)生產(chǎn)管理的一個(gè)重要方面。要對(duì)基礎(chǔ)貨物信息管理、貨物調(diào)配等信息進(jìn)行全面監(jiān)控。貨物入庫(kù)首先需要登記貨物的基本信息,包括貨物的種類、名稱、型號(hào)、單位、單價(jià)等,然后登記貨物入庫(kù)信息,包括貨物的基本信息、入庫(kù)地點(diǎn)、入庫(kù)人、經(jīng)辦人、數(shù)量等,出庫(kù)貨物需要登記出庫(kù)信息,包括貨物基本信息、出庫(kù)地點(diǎn)、出庫(kù)人、經(jīng)辦人、數(shù)量等,根據(jù)貨物出入庫(kù)流程一體化,獲取各種商品的余額信息,方便后續(xù)工作。因此,貨物管理系統(tǒng)需要記錄貨物流通的全過程。第一章 簡(jiǎn)介隨著經(jīng)濟(jì)的發(fā)展,市場(chǎng)的國(guó)際一體化,市場(chǎng)的多變性,競(jìng)爭(zhēng)的殘酷,企業(yè)經(jīng)營(yíng)的艱難,企業(yè)主越來越意識(shí)到經(jīng)營(yíng)好企業(yè)的艱辛。對(duì)于一個(gè)大企業(yè)來說,可能遇到的
2、問題是設(shè)備老舊、包袱重、體制死板、管理混亂,產(chǎn)品在市場(chǎng)上的競(jìng)爭(zhēng)力越來越差。 ERP的出現(xiàn)就是為了解決這些問題。什么是ERP?值得單位花這么多錢、時(shí)間、精力去實(shí)施。事實(shí)上, ERP是一套思想,一套以企業(yè)系統(tǒng)成本最低、利潤(rùn)最高為目標(biāo),適應(yīng)新經(jīng)濟(jì)運(yùn)行特點(diǎn)的過程管理思想。它的實(shí)體是一組滿足上述許多條件的軟件。因此,開發(fā)一套完整的庫(kù)存管理系統(tǒng),對(duì)于提高倉(cāng)儲(chǔ)部門的效率、降低企業(yè)的成本、增強(qiáng)企業(yè)的競(jìng)爭(zhēng)力具有重要意義。至此,本文使用Power Builder 8.0作為前端開發(fā)語(yǔ)言,SQL Server 2000作為后端數(shù)據(jù)庫(kù),開發(fā)了一個(gè)簡(jiǎn)單的庫(kù)存管理子系統(tǒng)。文中介紹了庫(kù)存管理系統(tǒng)的特點(diǎn)和重要性,并結(jié)合企業(yè)實(shí)
3、際工作對(duì)本項(xiàng)目的設(shè)計(jì)、技術(shù)實(shí)現(xiàn)和編程方法進(jìn)行了詳細(xì)說明。1.1 學(xué)科背景隨著經(jīng)濟(jì)全球化競(jìng)爭(zhēng)的加劇和信息流與物流的高度融合,對(duì)企業(yè)資源的要求也越來越高,無論是傳統(tǒng)的MRP(物料需求計(jì)劃)、MRPII(制造資源計(jì)劃),還是現(xiàn)在的流行的ERP(企業(yè)資源計(jì)劃)和TEP(Total Enterprise Planning),庫(kù)存管理是非常重要的基礎(chǔ)部分。因?yàn)閷?duì)于企業(yè)的決策層來說,如果庫(kù)存居高不下,倉(cāng)庫(kù)管理混亂,他們會(huì)很頭疼,那么由此造成的企業(yè)資源浪費(fèi),產(chǎn)品制造成本高,企業(yè)經(jīng)營(yíng)不暢會(huì)導(dǎo)致到企業(yè)競(jìng)爭(zhēng)。減少能源和可持續(xù)發(fā)展能力是他們更關(guān)心的問題。因此,合理管理倉(cāng)庫(kù)一直是企業(yè)關(guān)注的熱點(diǎn)。庫(kù)存管理也是管理者和理論
4、研究者經(jīng)常討論的話題,其重要性怎么強(qiáng)調(diào)都不為過。隨著庫(kù)存管理理論的進(jìn)一步發(fā)展和信息技術(shù)的進(jìn)步,如何在信息技術(shù)充分發(fā)達(dá)的今天更好地進(jìn)行庫(kù)存管理是我們的重要任務(wù)之一1.2 庫(kù)存管理研究的目的和意義隨著我國(guó)改革開放的不斷深入和我國(guó)加入世貿(mào)組織的時(shí)間不長(zhǎng),各類企業(yè)和事業(yè)都面臨著前所未有的機(jī)遇和挑戰(zhàn)。這就要求企業(yè)在日益激烈的市場(chǎng)競(jìng)爭(zhēng)中,及時(shí)、準(zhǔn)確、全面地了解市場(chǎng)信息,并根據(jù)企業(yè)的具體實(shí)際情況迅速做出反應(yīng)。如根據(jù)倉(cāng)儲(chǔ)情況調(diào)整供應(yīng)、采購(gòu)等。同時(shí),在當(dāng)前市場(chǎng)經(jīng)濟(jì)的推動(dòng)下,傳統(tǒng)的計(jì)劃經(jīng)濟(jì)模式已經(jīng)被“一切圍繞市場(chǎng)、一切源于市場(chǎng)、一切服務(wù)于市場(chǎng)”的模式所取代。信息交換的速度使得采購(gòu)和銷售成本有更大的下降空間,這給這
5、個(gè)環(huán)節(jié)的庫(kù)存管理帶來了巨大的挑戰(zhàn)。1.2.1企業(yè)信息化建設(shè)的需要信息技術(shù)的發(fā)展給企業(yè)帶來了機(jī)遇,也帶來了巨大的壓力。在知識(shí)經(jīng)濟(jì)時(shí)代,每個(gè)企業(yè)的發(fā)展機(jī)會(huì),無論大小,都越來越趨于平等。面對(duì)海量的信息,如何為企業(yè)使用,如何構(gòu)建自己的信息網(wǎng)絡(luò)資源,如何將企業(yè)的資源管理延伸到企業(yè)外部的整個(gè)供應(yīng)鏈,成為亟待思考的問題。近年來,全球信息技術(shù)發(fā)展加快,世界各國(guó)信息化形勢(shì)突飛猛進(jìn),人類正在進(jìn)入知識(shí)經(jīng)濟(jì)時(shí)代。全社會(huì)對(duì)知識(shí)經(jīng)濟(jì)的廣泛研究和探討,極大地豐富和拓展了信息化的內(nèi)涵,為信息產(chǎn)業(yè)和信息化的進(jìn)一步發(fā)展奠定了理論和實(shí)踐基礎(chǔ)。當(dāng)前,信息化帶來的技術(shù)創(chuàng)新、商業(yè)模式轉(zhuǎn)型和新的資本市場(chǎng),極大地推動(dòng)了社會(huì)生產(chǎn)力的發(fā)展??葱?/p>
6、勢(shì),黨的十五屆五中全會(huì)抓緊提出“以信息化帶動(dòng)工業(yè)化,發(fā)揮后發(fā)優(yōu)勢(shì),實(shí)現(xiàn)跨越式發(fā)展”的宏偉目標(biāo)。社會(huì)生產(chǎn)力的發(fā)展”。那么,什么是企業(yè)信息化建設(shè)? ?準(zhǔn)確地說,企業(yè)的信息化建設(shè),是指運(yùn)用先進(jìn)成熟的管理思想和方法,依托現(xiàn)代電子信息技術(shù),對(duì)企業(yè)生產(chǎn)經(jīng)營(yíng)中的管理流程進(jìn)行全方位的分析和改進(jìn)。企業(yè),重新整合資源,提高整合資源。提高效率和效益,增強(qiáng)企業(yè)競(jìng)爭(zhēng)力的過程。這不是一般意義上的新技術(shù)的應(yīng)用和創(chuàng)新,而是更高層次的新管理革命。面對(duì)中國(guó)加入世貿(mào)組織時(shí)間不長(zhǎng),企業(yè)將不得不面對(duì)全球的競(jìng)爭(zhēng),企業(yè)如何才能抓住巨大的市場(chǎng)機(jī)遇?企業(yè)如何應(yīng)對(duì)生存和發(fā)展的嚴(yán)峻挑戰(zhàn)?這些都是每個(gè)勇敢的企業(yè)家都應(yīng)該思考、關(guān)注和解決的重要問題。企
7、業(yè)信息化建設(shè)將是解決這些問題的有效途徑。因此,無論從世界競(jìng)爭(zhēng)的角度,還是從企業(yè)自身的發(fā)展來看,信息化建設(shè)都必然會(huì)在企業(yè)管理上發(fā)生革命和飛躍。推進(jìn)信息化有利于加快發(fā)展和完善我國(guó)社會(huì)主義市場(chǎng)經(jīng)濟(jì)體制,加快我國(guó)產(chǎn)業(yè)結(jié)構(gòu)調(diào)整優(yōu)化升級(jí),加快提高國(guó)民經(jīng)濟(jì)運(yùn)行質(zhì)量。為此,我國(guó)顯然不能走發(fā)達(dá)國(guó)家“先工業(yè)化、后信息化”的老路,而應(yīng)充分發(fā)揮后發(fā)優(yōu)勢(shì),走工業(yè)化與信息化相結(jié)合的發(fā)展道路,實(shí)現(xiàn)“發(fā)展”。國(guó)民經(jīng)濟(jì)”的起點(diǎn)較高??缭绞桨l(fā)展,開展企業(yè)信息化建設(shè)。1.2.2庫(kù)存管理的意義成本競(jìng)爭(zhēng)是現(xiàn)代競(jìng)爭(zhēng)的有效手段。對(duì)于經(jīng)營(yíng)者來說,增加銷量或者降低成本可以擴(kuò)大利潤(rùn),而增加利潤(rùn)的最佳途徑之一就是做好庫(kù)存管理,也就是現(xiàn)代商人所說的
8、庫(kù)存。要走的路。由于存貨資產(chǎn)占各企業(yè)總資產(chǎn)的比重極為樂觀,適當(dāng)?shù)墓芾韺?duì)企業(yè)利益的提高影響很大。一方面,如果庫(kù)存過多,容易陷入資金周轉(zhuǎn)不力的境地;另一方面,如果庫(kù)存太少,不能滿足實(shí)際需要,勢(shì)必會(huì)增加采購(gòu)數(shù)量或生產(chǎn)批次,增加采購(gòu)或生產(chǎn)成本,違反經(jīng)濟(jì)原則。 ,盡量減少庫(kù)存水平是企業(yè)管理的重要目標(biāo),降低庫(kù)存成為“第三利潤(rùn)來源”??梢?,不斷提高庫(kù)存管理水平,進(jìn)行適時(shí)適度的庫(kù)存管理,已成為企業(yè)興衰的關(guān)鍵之一。自從有了生產(chǎn),就有了庫(kù)存物品的存在。庫(kù)存對(duì)于市場(chǎng)的發(fā)展和企業(yè)的正常經(jīng)營(yíng)發(fā)展起著非常重要的作用。1.3 國(guó)外庫(kù)存管理發(fā)展現(xiàn)狀1.3.1存儲(chǔ)理論的形成與發(fā)展1940年代初期,西方經(jīng)濟(jì)學(xué)家通過研究庫(kù)存物資的
9、使用和消耗隨時(shí)間變化的規(guī)律,提出了訂單點(diǎn)的方法和理論,并將其應(yīng)用于企業(yè)的庫(kù)存計(jì)劃管理。 1960年代中期,美國(guó)IBM公司的管理專家約瑟夫奧利弗博士首先提出了獨(dú)立需求和相關(guān)需求的概念。這種理論和方法與傳統(tǒng)的庫(kù)存理論和方法有很大的不同。其主要特點(diǎn)是:在傳統(tǒng)的基礎(chǔ)上,引入了時(shí)間分段和反映產(chǎn)品結(jié)構(gòu)的BOM(Bill Of Materials),更好地解決了庫(kù)存管理和生產(chǎn)控制中的問題,即準(zhǔn)時(shí)保量。到所需的材料。以加強(qiáng)物料計(jì)劃和控制,盡量減少庫(kù)存,減少資金占用,滿足企業(yè)生產(chǎn)為目標(biāo),是一種基于按需采購(gòu)的企業(yè)生產(chǎn)和庫(kù)存管理方法。其次是制造資源計(jì)劃(MRPII,Manufacturing Resources P
10、lanning)是1970年代后期的一種,以企業(yè)資源優(yōu)化配置,保證企業(yè)持續(xù)均衡生產(chǎn),實(shí)現(xiàn)信息流、物流和資本流動(dòng)。目標(biāo)是提高企業(yè)的整體水平,以計(jì)劃和控制為主線,以現(xiàn)代企業(yè)管理思想和方法為企業(yè)的生產(chǎn)、供應(yīng)、銷售和財(cái)富。1.3.2庫(kù)存管理的發(fā)展現(xiàn)狀最后,企業(yè)資源計(jì)劃(ERP,Enterprise Resources Planning)是1990年代初的一種,以市場(chǎng)和客戶需求為導(dǎo)向,實(shí)現(xiàn)企業(yè)外部資源的優(yōu)化配置,消除生產(chǎn)和生產(chǎn)過程中一切無效的勞動(dòng)力和資源。手術(shù)。 ,以計(jì)劃和控制為主線,以網(wǎng)絡(luò)和信息技術(shù)為平臺(tái),整合客戶、市場(chǎng)、集銷售、采購(gòu)、計(jì)劃、生產(chǎn)、財(cái)務(wù)、質(zhì)量、服務(wù)、信息集成和業(yè)務(wù)流程再造(BPR,Bu
11、siness Process Reengineering)等功能于一體,供應(yīng)鏈管理(SCM,Supply Chain Management)的現(xiàn)代企業(yè)管理思想和方法)。傳統(tǒng)上,對(duì)庫(kù)存管理的一般理解是指對(duì)物料進(jìn)出入庫(kù)的業(yè)務(wù)管理,但這種理解在現(xiàn)代庫(kù)存管理中已不再是全面的。 APICS詞匯中對(duì)庫(kù)存的定義是:“以支持生產(chǎn)、維修、運(yùn)營(yíng)和客戶為目的的各種物料的存儲(chǔ),包括原材料和在制品、維修件和生產(chǎn)消耗、產(chǎn)成品和備件等。 .。因此,庫(kù)存管理應(yīng)包括與物料儲(chǔ)存、交付、使用、計(jì)劃和控制有關(guān)的所有方面。第二章系統(tǒng)設(shè)計(jì)2.1 系統(tǒng)目標(biāo)設(shè)計(jì)本軟件作為物資供應(yīng)部信息管理系統(tǒng)的組成部分,負(fù)責(zé)倉(cāng)庫(kù)的日常出入庫(kù)和結(jié)算處理,提供
12、功能全面、使用方便、倉(cāng)庫(kù)管理準(zhǔn)確、快捷的倉(cāng)庫(kù)管理系統(tǒng)。為倉(cāng)庫(kù)管理人員替代傳統(tǒng)的人工操作。利用先進(jìn)的信息技術(shù),為用戶提供一些更加方便實(shí)用的功能,從而提高企業(yè)管理效率。2.2 培養(yǎng)設(shè)計(jì)思維倉(cāng)庫(kù)信息管理的特點(diǎn)是信息處理量比較大。被管理的數(shù)據(jù)進(jìn)出頻率高,在管理上難以落實(shí)。在人工管理的時(shí)代或者數(shù)據(jù)庫(kù)管理系統(tǒng)的設(shè)計(jì)不科學(xué)的情況下,管理數(shù)據(jù)會(huì)比較混亂,與數(shù)據(jù)庫(kù)相關(guān)的數(shù)據(jù)關(guān)聯(lián)性不好,導(dǎo)致數(shù)據(jù)不一致時(shí)有發(fā)生。在本系統(tǒng)的設(shè)計(jì)過程中,為了克服上述困難,滿足計(jì)算機(jī)管理的需要,我們采用了以下原則。本系統(tǒng)的開發(fā)設(shè)計(jì)思路: 盡量利用單位現(xiàn)有的軟硬件環(huán)境和先進(jìn)的管理系統(tǒng)開發(fā)方案,充分利用單位現(xiàn)有資源,提高系統(tǒng)開發(fā)水平和應(yīng)用效
13、果。系統(tǒng)應(yīng)符合單位倉(cāng)庫(kù)信息管理的規(guī)定,滿足單位對(duì)倉(cāng)庫(kù)物資日常管理的需要,在操作過程中滿足直觀、方便、實(shí)用、安全的要求。系統(tǒng)采用模塊化編程方式,方便系統(tǒng)功能的各種組合和修改,也方便非參與開發(fā)的技術(shù)維護(hù)人員補(bǔ)充和維護(hù)。2.3 系統(tǒng)開發(fā)及運(yùn)行環(huán)境:開發(fā)工具:中文版Visual Basic6.0 。訪問。運(yùn)行環(huán)境: Windows9X或Windows2000 , Windowxp + vb6.0 。2.4 系統(tǒng)功能分析系統(tǒng)開發(fā)的總體任務(wù)是實(shí)現(xiàn)倉(cāng)庫(kù)信息的系統(tǒng)化、標(biāo)準(zhǔn)化和自動(dòng)化。系統(tǒng)功能分析是在系統(tǒng)開發(fā)總體任務(wù)的基礎(chǔ)上完成的。倉(cāng)庫(kù)管理系統(tǒng)需要完成的主要功能如下:倉(cāng)庫(kù)基本信息的錄入,包括倉(cāng)庫(kù)編號(hào)、倉(cāng)庫(kù)名稱、
14、規(guī)格、類型、計(jì)量單位等。倉(cāng)庫(kù)基本信息的查詢報(bào)表。修改倉(cāng)庫(kù)基本信息。入庫(kù)信息輸入。入庫(kù)信息修改。入庫(kù)信息查詢報(bào)表。出庫(kù)倉(cāng)庫(kù)信息輸入。出庫(kù)倉(cāng)庫(kù)信息查詢報(bào)表。出庫(kù)信息修改。倉(cāng)庫(kù)余額信息查詢報(bào)表。瀏覽倉(cāng)庫(kù)余額信息。2.5 系統(tǒng)模塊設(shè)計(jì)將上述功能集中分塊,根據(jù)結(jié)構(gòu)化編程的要求,得到如圖所示的系統(tǒng)功能模塊圖:倉(cāng)庫(kù)管理信息系統(tǒng)事物系統(tǒng)資本資本體系剩余進(jìn)出基管Ekuku原則信 信 信興趣檢查管子查詢理由進(jìn)出事物,進(jìn)出,進(jìn)出首都圖書館 圖書館 圖書館 首都代碼賬戶渣基管資金數(shù)額字母 字母 字母 字母 字母 字母 字母 字母 字母 字母 字母 字母 字母 字母 字母 字母 字母 字母 字母 字母 字母 字母 字母
15、 字母 字母 字母 字母 字母 字母 字母 字母 字母 字母 字母 字母 字母 字母 字母 字母 字母 字母 字母 字母有趣的檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢查檢
16、查檢查檢查檢查檢查一次檢查查詢更改查詢添加查詢更改添加查詢更改添加2-1 系統(tǒng)功能框圖整個(gè)系統(tǒng)分為5個(gè)模塊:倉(cāng)庫(kù)基本信息管理模塊、入庫(kù)信息管理模塊、出庫(kù)信息管理模塊、倉(cāng)庫(kù)余額信息管理模塊、系統(tǒng)模塊。每個(gè)模塊下都有相應(yīng)的子模塊。第 3 章 數(shù)據(jù)庫(kù)設(shè)計(jì)在設(shè)計(jì)數(shù)據(jù)庫(kù)系統(tǒng)時(shí),首先要充分了解用戶各方面的需求,包括現(xiàn)有的和未來可能增加的需求。數(shù)據(jù)庫(kù)設(shè)計(jì)一般包括以下步驟:數(shù)據(jù)庫(kù)需求分析數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)3.1 數(shù)據(jù)庫(kù)需求分析用戶的具體要求體現(xiàn)在各種信息的提供、保存、更新和查詢中。這就要求數(shù)據(jù)庫(kù)結(jié)構(gòu)能夠充分滿足各種信息的輸入輸出,收集基礎(chǔ)數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)處理流程,形成詳細(xì)的數(shù)據(jù)字典,為后
17、續(xù)的具體設(shè)計(jì)奠定基礎(chǔ)。在對(duì)倉(cāng)庫(kù)管理的信息需求進(jìn)行仔細(xì)分析和調(diào)查的基礎(chǔ)上,得到如圖所示的本系統(tǒng)處理的數(shù)據(jù)流:倉(cāng)庫(kù)登記基本信息錄入倉(cāng)庫(kù)基本信息管理入庫(kù)倉(cāng)庫(kù)信息管理 倉(cāng)庫(kù)分配 出庫(kù)倉(cāng)庫(kù)信息管理倉(cāng)庫(kù)余額信息管理3-1 系統(tǒng)處理數(shù)據(jù)流程圖根據(jù)一般倉(cāng)庫(kù)信息管理系統(tǒng)的要求,通過對(duì)倉(cāng)庫(kù)調(diào)撥工作過程的內(nèi)容和數(shù)據(jù)流的分析,設(shè)計(jì)了以下數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu):倉(cāng)庫(kù)基本信息,包括數(shù)據(jù)項(xiàng):倉(cāng)庫(kù)編號(hào)、倉(cāng)庫(kù)名稱、規(guī)格型號(hào)、類別、計(jì)量單位等。存儲(chǔ)倉(cāng)庫(kù)信息,包括數(shù)據(jù)項(xiàng):倉(cāng)庫(kù)編號(hào)、倉(cāng)庫(kù)名稱、規(guī)格型號(hào)、類別、計(jì)量單位、數(shù)量、單價(jià)、數(shù)量、存儲(chǔ)時(shí)間、經(jīng)辦人、保管人、倉(cāng)庫(kù)、備注等。出庫(kù)倉(cāng)庫(kù)信息,包括數(shù)據(jù)項(xiàng):倉(cāng)庫(kù)編號(hào)、倉(cāng)庫(kù)名稱、規(guī)格型號(hào)、類別、計(jì)
18、量單位、數(shù)量、單價(jià)、金額、收貨時(shí)間、收貨人、經(jīng)理、倉(cāng)庫(kù)、備注等。倉(cāng)庫(kù)余額信息,包括數(shù)據(jù)項(xiàng):倉(cāng)庫(kù)編號(hào)、倉(cāng)庫(kù)名稱、規(guī)格型號(hào)、類別、計(jì)量單位、數(shù)量、單價(jià)、金額、倉(cāng)庫(kù)等。3.2 數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)得到上述數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)后,就可以設(shè)計(jì)出各種能夠滿足用戶需求的實(shí)體,并設(shè)計(jì)它們之間的關(guān)系,為后續(xù)的邏輯結(jié)構(gòu)設(shè)計(jì)打下基礎(chǔ)。這些實(shí)體包含各種特定的信息,并通過相互交互形成數(shù)據(jù)流。本系統(tǒng)設(shè)計(jì)和規(guī)劃的實(shí)體包括:倉(cāng)庫(kù)基本信息實(shí)體、入庫(kù)信息實(shí)體、出庫(kù)信息實(shí)體、倉(cāng)庫(kù)余額信息實(shí)體。每個(gè)實(shí)體ER圖的具體描述如下:1:倉(cāng)庫(kù)基本信息實(shí)體ER圖:倉(cāng)庫(kù)基本信息實(shí)體倉(cāng)號(hào)記錄單位倉(cāng)庫(kù)名稱.倉(cāng)庫(kù)規(guī)格3-2倉(cāng)庫(kù)基本信息實(shí)體ER圖2:倉(cāng)庫(kù)存儲(chǔ)信
19、息實(shí)體ER圖:倉(cāng)庫(kù)入庫(kù)信息實(shí)體倉(cāng)庫(kù)編號(hào)管理員入庫(kù)時(shí)間.經(jīng)理3-3倉(cāng)庫(kù)入庫(kù)信息實(shí)體ER圖3:倉(cāng)庫(kù)出庫(kù)信息實(shí)體ER圖:出庫(kù)信息實(shí)體倉(cāng)庫(kù)號(hào)收件人交貨時(shí)間.經(jīng)理3-4出庫(kù)信息實(shí)體ER圖4:倉(cāng)庫(kù)基本信息實(shí)體ER圖:倉(cāng)庫(kù)余額信息實(shí)體倉(cāng)庫(kù)編號(hào)倉(cāng)庫(kù)數(shù)量.數(shù)量3-5倉(cāng)庫(kù)基本信息實(shí)體ER圖5:實(shí)體間關(guān)系的ER圖:庫(kù)倉(cāng)庫(kù)登記倉(cāng)庫(kù)基本信息倉(cāng)庫(kù)入庫(kù)信息 倉(cāng)庫(kù)分配 倉(cāng)庫(kù)出庫(kù)信息倉(cāng)庫(kù)余額信息3-6實(shí)體之間關(guān)系的ER圖3.3 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)現(xiàn)在將上述數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)轉(zhuǎn)換為ACCESS數(shù)據(jù)庫(kù)系統(tǒng)支持的實(shí)際數(shù)據(jù)模型,即數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)。在上述實(shí)體和實(shí)體之間的關(guān)系的基礎(chǔ)上,將數(shù)據(jù)庫(kù)中的表形成為每個(gè)表之間的關(guān)系。倉(cāng)庫(kù)信息管理系統(tǒng)
20、數(shù)據(jù)庫(kù)中各表的設(shè)計(jì)結(jié)果如下表所示。每個(gè)表代表數(shù)據(jù)庫(kù)中的一個(gè)表。1:倉(cāng)庫(kù)基本信息表物料表3-1倉(cāng)庫(kù)基本信息表物料表列名數(shù)據(jù)類型可以為空闡明wzidvarchar非空倉(cāng)庫(kù)編號(hào)wznamevarchar非空倉(cāng)庫(kù)名稱wzpecvarchar非空規(guī)格wzkindvarchar無效的類別wzunitvarchar無效的測(cè)量單位2:倉(cāng)庫(kù)入庫(kù)信息表msave表 3-2倉(cāng)庫(kù)入庫(kù)信息表msave列名數(shù)據(jù)類型可以為空闡明Rknovarchar非空入庫(kù)號(hào)孩子varchar非空入庫(kù)倉(cāng)號(hào)名字varchar非空入庫(kù)倉(cāng)庫(kù)名稱rkspecvarchar無效的規(guī)格類型類型varchar無效的類別單位_varchar非空單元賬號(hào)v
21、archar非空數(shù)量?jī)r(jià)格varchar非空單價(jià)方值varchar無效的數(shù)量日期varchar無效的入庫(kù)時(shí)間Rkdeal_personvarchar非空經(jīng)理Rksave_peasonvarchar非空保管人rkbasevarchar無效的庫(kù)備忘錄varchar無效的評(píng)論3:倉(cāng)庫(kù)出庫(kù)信息表muse表3-3倉(cāng)庫(kù)出庫(kù)信息表muse列名數(shù)據(jù)類型可以為空闡明lynovarchar非空入庫(kù)號(hào)lyidvarchar非空入庫(kù)倉(cāng)號(hào)地名varchar非空倉(cāng)庫(kù)名稱lyspecvarchar無效的規(guī)格萊金德varchar無效的類別lyunitvarchar非空單元賬號(hào)varchar非空數(shù)量?jī)r(jià)格varchar非空單價(jià)利值
22、varchar無效的數(shù)量賴氨酸varchar無效的入庫(kù)時(shí)間lyuser_personvarchar非空經(jīng)理lydeal_peasonvarchar非空保管人堿基varchar無效的庫(kù)萊梅莫varchar無效的評(píng)論4:倉(cāng)庫(kù)余額信息表msurplus表 3-4倉(cāng)庫(kù)余額信息表msurplus列名數(shù)據(jù)類型可以為空闡明耶德varchar非空倉(cāng)庫(kù)編號(hào)日名varchar非空倉(cāng)庫(kù)名稱耶派克varchar非空規(guī)格葉金德varchar無效的類別耶單位varchar非空單元葉賬戶varchar非空數(shù)量耶值varchar無效的數(shù)量yebasevarchar無效的庫(kù)耶梅莫varchar無效的評(píng)論3.4 數(shù)據(jù)庫(kù)結(jié)構(gòu)的實(shí)現(xiàn)
23、在需求分析和概念結(jié)構(gòu)設(shè)計(jì)的基礎(chǔ)上得到數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)設(shè)計(jì)后,就可以在Visual Basic 6.0中實(shí)現(xiàn)邏輯結(jié)構(gòu)。實(shí)現(xiàn)方法和步驟如下:以英文版為例:通過菜單欄:Add -Ins Visual Data Manager.點(diǎn)擊顯示VisData界面,點(diǎn)擊菜單File New Microsoft Access Vision 7.0 MDB.彈出對(duì)話框保存數(shù)據(jù)庫(kù)文件的存放位置和數(shù)據(jù)庫(kù)框的文件名,命名為wzgl.mdb,保存到當(dāng)前系統(tǒng)存放的文件中。此時(shí)出現(xiàn)Database Windows設(shè)計(jì)界面,右鍵選擇New Table。設(shè)計(jì)表的字段是邏輯結(jié)構(gòu)表中的列名。第四章 倉(cāng)庫(kù)管理信息系統(tǒng)主窗體的創(chuàng)建數(shù)據(jù)庫(kù)結(jié)
24、構(gòu)的所有后臺(tái)工作都已完成。下面通過倉(cāng)庫(kù)管理信息系統(tǒng)中各個(gè)功能模塊的實(shí)現(xiàn),講解如何使用Visual Basic編寫數(shù)據(jù)庫(kù)系統(tǒng)的客戶端程序。4.1 創(chuàng)建工程項(xiàng)目 - 材料 MIS打開Visual Basic ,點(diǎn)擊File|NEW項(xiàng)目菜單,在項(xiàng)目模塊中選擇StandardEXE,VisualBasic會(huì)自動(dòng)生成一個(gè)Form表單,屬性都是默認(rèn)設(shè)置。這里我們刪除表單,點(diǎn)擊FileSaveProject菜單,將項(xiàng)目命名為Material MIS 。4.2 創(chuàng)建倉(cāng)庫(kù)管理信息系統(tǒng)的主要形式在本項(xiàng)目中,我們使用多文檔界面,點(diǎn)擊工具欄中的ADD MDI Form按鈕生成一個(gè)表單。在此表單上添加所需的控件。表格和
25、控件的屬性設(shè)置見表格。表 4-1窗體和控件的屬性設(shè)置表控制屬性屬性值窗體(窗體)姓名框架標(biāo)題倉(cāng)庫(kù)管理信息系統(tǒng)啟動(dòng)位置中心綠窗口狀態(tài)最大化Sbstatusbar(狀態(tài)條)姓名Sb stausbar面板(1)風(fēng)格文本面板(2)風(fēng)格Sbr日期面板(3)風(fēng)格時(shí)間_創(chuàng)建的表格如圖所示。4-1 物資管理信息系統(tǒng)表格圖在主窗體中添加狀態(tài)欄控件,可以實(shí)時(shí)反映系統(tǒng)中各種狀態(tài)的變化。狀態(tài)欄控件需要在通常的屬性窗口以及它自己的彈出菜單中設(shè)置通用屬性。選擇狀態(tài)欄控件,單擊鼠標(biāo)右鍵,選擇屬性菜單,然后設(shè)置屬性。面板1用于顯示各種文本信息,面板2用于顯示當(dāng)前日期,面板3用于顯示當(dāng)前時(shí)間。4.3 創(chuàng)建主窗體的菜單在主窗體中
26、,單擊鼠標(biāo)右鍵,在彈出的菜單中選擇MenuEditor,創(chuàng)建菜單結(jié)構(gòu)如圖:4-2 主窗體的菜單圖4.4 創(chuàng)建通用模塊在VisualBasic中,公共模塊可用于存儲(chǔ)整個(gè)項(xiàng)目的常用函數(shù)、過程和全局變量。這可以提高代碼的效率。在 Project Explorer 中向項(xiàng)目添加一個(gè)Module并將其保存為Module bas ?,F(xiàn)在您可以開始添加所需的代碼。由于系統(tǒng)中的各個(gè)功能模塊會(huì)頻繁使用數(shù)據(jù)庫(kù)中的各個(gè)數(shù)據(jù),因此需要一個(gè)公共的數(shù)據(jù)操作函數(shù)來執(zhí)行各種SQL語(yǔ)句。添加函數(shù)ExecuteSQL ,代碼如下:公共函數(shù) ExecuteSQL(ByVal SQL _作為字符串,MsgString 作為字符串)_
27、作為 ADODB.Recordset執(zhí)行 SQL 并返回 Recordset暗淡為 ADODB.Connection暗淡為 ADODB.Recordset將 sTokens() 調(diào)暗為字符串出錯(cuò)時(shí)轉(zhuǎn)到 ExecuteSQL_ErrorsTokens = 拆分(SQL)Setn = 新的 ADODB.Connectionn.打開連接字符串如果 InStr(插入、刪除、更新, _UCase$(sTokens(0) 然后n.執(zhí)行SQLMsgString = sTokens(0) & _“查詢成功”別的設(shè)置 rst = 新 ADODB.Recordsetrst.Open Trim$(SQL),n,_a
28、dOpenKeyset, _adLockOptimisticrst.MoveLast 獲取 RecordCount設(shè)置 ExecuteSQL = rstMsgString = 查詢到 & rst.RecordCount & _“ 記錄”萬(wàn)一執(zhí)行SQL_Exit:設(shè)置 rst = 無Setn = 無退出函數(shù)執(zhí)行SQL_錯(cuò)誤:MsgString = 查詢錯(cuò)誤: & _錯(cuò)誤描述恢復(fù) ExecuteSQL_Exit結(jié)束功能String 函數(shù)用于ExecuteSQL 函數(shù)中,用于連接數(shù)據(jù)庫(kù)。代碼如下:公共函數(shù) ConnectString() _作為字符串返回一個(gè)數(shù)據(jù)庫(kù)連接字符串ConnectString
29、 = FileDSN=material.dsn;UID=sa;PWD=結(jié)束功能輸入相關(guān)信息時(shí),需要回車進(jìn)入下一個(gè)文本框,對(duì)于軟件用戶來說非常方便。所有功能模塊都需要這個(gè)功能,所以放在公共模塊中,代碼如下:Public Sub EnterToTab(Keyasc As Integer)如果 Keyasc = 13 那么致鍵“TAB”萬(wàn)一結(jié)束子Keyasc用于保存當(dāng)前密鑰, SendKeys函數(shù)用于指定密鑰。一旦按下 Enter 鍵,它將返回到Tab鍵,并且下一個(gè)控件會(huì)自動(dòng)獲得輸入焦點(diǎn)。添加一個(gè)全局變量來記錄每個(gè)表單的讀寫狀態(tài)。代碼如下:公共 fMainForm 作為 frmMain公共標(biāo)志Med
30、it As Boolean公共標(biāo)志Iedit As Boolean公共標(biāo)志Ledit As Boolean公共標(biāo)志Oedit As Boolean公共 gintMmode 作為整數(shù)公共 gintImode 作為整數(shù)公共 gintLmode 作為整數(shù)公共 gintOmode 為整數(shù)gintMmode變量用于記錄狀態(tài)是添加還是修改。 1 表示添加,2 表示修改。 FlajMedit變量用于指示是否輸入修改后的表單。倉(cāng)庫(kù)管理信息系統(tǒng)啟動(dòng)后,需要對(duì)用戶進(jìn)行判斷。如果登錄的是授權(quán)用戶,則進(jìn)入系統(tǒng),否則將停止程序的執(zhí)行。這個(gè)判斷需要在系統(tǒng)運(yùn)行之初進(jìn)行,所以代碼放在一個(gè)通用模塊中。4.5 倉(cāng)庫(kù)基礎(chǔ)信息模塊的
31、創(chuàng)建倉(cāng)庫(kù)基礎(chǔ)信息管理模塊主要實(shí)現(xiàn)以下功能: 添加倉(cāng)庫(kù)基本信息。 修改倉(cāng)庫(kù)基本信息。 刪除倉(cāng)庫(kù)基本信息。 查詢倉(cāng)庫(kù)基本信息。1:添加倉(cāng)庫(kù)基本信息表的創(chuàng)建選擇“倉(cāng)庫(kù)基本信息管理添加倉(cāng)庫(kù)基本信息”菜單,出現(xiàn)如圖所示的表單。4-3 倉(cāng)庫(kù)物料信息窗口示意圖在表單上放置多個(gè)文本框,輸入倉(cāng)庫(kù)基本信息;兩個(gè)按鈕用于判斷是否添加倉(cāng)庫(kù)信息;多個(gè)標(biāo)簽用于提示在文本框中輸入的內(nèi)容。這些控件的屬性如下表所示:表 4-2表單控件屬性表控制屬性屬性值Frm mater1 (表格)姓名框架信息標(biāo)題倉(cāng)庫(kù)信息MDI兒童真的文本條目(0)文本條目(4)姓名文本條目(0)文本條目(4)標(biāo)簽1標(biāo)題學(xué)生卡標(biāo)簽2標(biāo)題標(biāo)簽3標(biāo)題性別標(biāo)簽4標(biāo)
32、題出生日期標(biāo)簽5標(biāo)題班號(hào)加載表單時(shí),程序首先判斷狀態(tài),代碼如下:私有子 Form_Load()將 intCount 調(diào)暗為整數(shù)將 MsgText 調(diào)暗為字符串如果 gintMmode = 1 那么Me.Caption = Me.Caption & “添加”否則如果 gintMmode = 2 那么設(shè)置 mrc = ExecuteSQL(txtSQL, MsgText)如果 mrc.EOF = False 那么與 mrc對(duì)于 intCount = 0 到 4txtItem(intCount) = .Fields(intCount)下一個(gè) intCount結(jié)束于txtItem(0).Enabled
33、 = False萬(wàn)一Me.Caption = Me.Caption & 修改萬(wàn)一mblChange = 假結(jié)束子gintMmode判斷是添加還是修改。如果處于添加狀態(tài),則清除文本框,表單有提示信息;如果處于修改狀態(tài),則顯示當(dāng)前記錄。用戶完成輸入后,點(diǎn)擊cmdSave按鈕會(huì)觸發(fā)Click事件。代碼詳情見附錄中的源代碼列表:程序先判斷內(nèi)容是否輸入,再判斷格式。在倉(cāng)庫(kù)管理中,所有的倉(cāng)庫(kù)都有唯一的編號(hào),不同類型的倉(cāng)庫(kù)對(duì)應(yīng)不同的編號(hào)。程序會(huì)判斷是否存在重復(fù)ID和重復(fù)位置的記錄,然后將數(shù)據(jù)添加到數(shù)據(jù)庫(kù)中。最后根據(jù)狀態(tài)顯示相應(yīng)的信息:如果是添加狀態(tài)則提示添加成功,然后重新顯示并清除所有文本框繼續(xù)添加記錄;如
34、果處于修改狀態(tài),則提示修改成功,然后更新所有記錄列表。當(dāng)文本框獲得焦點(diǎn)時(shí),會(huì)觸發(fā)以下事件: 自動(dòng)選擇輸入內(nèi)容,方便修改。Private Sub txtItem_GotFocus(索引為整數(shù))txtItem(索引).SelStart = 0txtItem(Index).SelLength = Len(txtItem(Index)結(jié)束子點(diǎn)擊按鈕cmdedit取消添加倉(cāng)庫(kù)信息,代碼如下:私有子 cmdExit_Click()如果 mblChange 和 cmdSave.Enabled 則If MsgBox(保存當(dāng)前記錄更改?, vbOKCancel + vbExclamation, Warning)
35、 = vbOK Then節(jié)省調(diào)用 cmdSave_Click萬(wàn)一萬(wàn)一卸載我結(jié)束子2:修改倉(cāng)庫(kù)基本信息表的創(chuàng)建選擇“倉(cāng)庫(kù)基本信息管理修改倉(cāng)庫(kù)基本信息”菜單,出現(xiàn)如圖所示的窗體,窗體中放置一個(gè)窗體控件。4-4 倉(cāng)庫(kù)基本信息修改圖加載表單時(shí),觸發(fā)表單的Load事件,顯示當(dāng)前數(shù)據(jù)庫(kù)中的所有記錄。代碼如下:調(diào)用showTitle函數(shù)顯示表頭,代碼如下調(diào)用showData函數(shù)顯示記錄列表。代碼如下:私有子 Form_Load()節(jié)目標(biāo)題顯示數(shù)據(jù)flagMedit=真結(jié)束子調(diào)用showtitle函數(shù)顯示表頭,代碼如下:顯示網(wǎng)格標(biāo)題私人子 ShowTitle()將 i 調(diào)暗為整數(shù)使用 msgList.Cols
36、 = 6.TextMatrix(0, 1) = 倉(cāng)庫(kù)編號(hào).TextMatrix(0, 2) = 倉(cāng)庫(kù)名稱.TextMatrix(0, 3) = 規(guī)范模型.TextMatrix(0, 4) = 類別.TextMatrix(0, 5) = 度量單位固定標(biāo)題.FixedRows = 1設(shè)置每一列的對(duì)齊方式對(duì)于 i = 0 到 5.ColAlignment(i) = 0接下來我標(biāo)題項(xiàng)居中.FillStyle = flexFillRepeat.Col = 0. 行 = 0.RowSel = 1.ColSel = .Cols - 1.CellAlignment = 4設(shè)置單元格大小.ColWidth(0)
37、 = 300.ColWidth(1) = 1000.ColWidth(2) = 2000.ColWidth(3) = 2000.ColWidth(4) = 1000.ColWidth(5) = 1000. 行 = 1結(jié)束于結(jié)束子調(diào)用showdata函數(shù)顯示記錄列表,代碼如下:顯示網(wǎng)格的內(nèi)容私有子 ShowData()將 i 調(diào)暗為整數(shù)設(shè)置 mrc = ExecuteSQL(txtSQL, MsgText)使用 msgList.Rows = 1不做時(shí)做 mrc.EOF.Rows = .Rows + 1對(duì)于 i = 1 到 mrc.Fields.Count選擇案例 mrc.Fields(i - 1
38、).Type案例 addDBDate.TextMatrix(.Rows - 1, i) = Format(mrc.Fields(i - 1) & , yyyy-mm-dd)其他情況.TextMatrix(.Rows - 1, i) = mrc.Fields(i - 1) & 結(jié)束選擇接下來我mrc.MoveNextLoop結(jié)束于mrc.關(guān)閉結(jié)束子選擇記錄并單擊鼠標(biāo)右鍵將觸發(fā)MouseUp事件并出現(xiàn)一個(gè)彈出菜單。該事件在鼠標(biāo)松開時(shí)發(fā)生,代碼如下:Private Sub msgList_MouseUp(Button As Integer, Shift As Integer, x As Single
39、, y As Single)右鍵彈出如果 Button = 2 并且 Shift = 0 那么PopupMenu fMainForm.menuMaterial萬(wàn)一結(jié)束子當(dāng)窗口發(fā)生變化時(shí),需要調(diào)整標(biāo)簽和表格的位置,使標(biāo)簽始終位于窗口頂部,表格始終位于標(biāo)簽下方。當(dāng)表單大小發(fā)生變化時(shí),會(huì)觸發(fā)Resize 事件。代碼如下:私有子 Form_Resize()If Me.WindowState vbMinimized And fMainForm.WindowState vbMinimized Then邊界處理如果 Me.ScaleHeight 10 * lblTitle.Height 然后退出子萬(wàn)一如果
40、Me.ScaleWidth 1 那么if MsgBox(你真的要?jiǎng)h除這條文件記錄嗎?, vbOKCancel + vbExclamation, Warning) = vbOK ThenintCount = frmMater.msgList.RowtxtSQL = 從材料中刪除 wzid= & Trim(frmMater.msgList.TextMatrix(intCount, 1) & 設(shè)置 mrc = ExecuteSQL(txtSQL, MsgText)卸載 frmMaterfrmMater.txtSQL = 從材料中選擇 *frmMater.Show萬(wàn)一萬(wàn)一萬(wàn)一結(jié)束子4:創(chuàng)建查詢司機(jī)信息
41、的表格選擇“倉(cāng)庫(kù)基本信息管理查詢倉(cāng)庫(kù)基本信息”菜單,出現(xiàn)如圖所示的表格。在這里,可以以各種方式并結(jié)合它們來執(zhí)行查詢。4-5 倉(cāng)庫(kù)基本信息查詢圖查詢倉(cāng)庫(kù)基本信息表單中包含的控件及其屬性設(shè)置如表所示。表 4-3倉(cāng)庫(kù)基本信息表單控件及其屬性設(shè)置控制屬性屬性值格式(Form)姓名框架信息標(biāo)題倉(cāng)庫(kù)登記查詢MDI兒童真的文本條目(0)文本條目(1)姓名文本條目(0)文本條目(1)檢查1標(biāo)題倉(cāng)庫(kù)名稱命令行標(biāo)題倉(cāng)庫(kù)名稱姓名命令行退出標(biāo)題取消姓名退出先選擇查詢方式,然后輸入查詢內(nèi)容。點(diǎn)擊“確定”按鈕觸發(fā)Click事件進(jìn)行查詢,代碼如下:私有子 cmdOK_Click()將 txtSQL 調(diào)暗為字符串將 sQSq
42、l 調(diào)暗為字符串If chkItem(0).Value = vbChecked ThensQSql = wzname = & Trim(txtItem(0) & ) & 萬(wàn)一If chkItem(1).Value = vbChecked ThenIf Trim(sQSql & ) = Then sQSql = wzspec = & Trim(txtItem(1) & ) & Else sQSql = sQSql & and wzspec = & Trim(txtItem(1) & ) & End If End If Me.Hide If Trim(sQSql) = Then MsgBox 請(qǐng)?jiān)O(shè)
43、置查詢方式!, vbOKOnly + vbExclamation, 警告 Exit Sub Else If flagMedit Then Unload frmMater End IffrmMater.txtSQL = select * from material where & sQSqlfrmMater.Show萬(wàn)一結(jié)束子程序先判斷查詢方式,如果沒有設(shè)置查詢方式,會(huì)顯示提示信息;然后將查詢內(nèi)容組合成一條SQL語(yǔ)句進(jìn)行查詢。查詢數(shù)據(jù)集后,需要在表格控件中正常顯示。使用循環(huán)顯示每條記錄的每個(gè)字段。單擊“取消”按鈕將退出程序。4.6 倉(cāng)儲(chǔ)信息管理模塊的創(chuàng)建倉(cāng)儲(chǔ)信息管理模塊主要實(shí)現(xiàn)以下功能: 添加入
44、庫(kù)信息。 修改存儲(chǔ)信息。 刪除存儲(chǔ)信息。 查詢存儲(chǔ)信息。1:增加創(chuàng)建倉(cāng)庫(kù)入庫(kù)信息表選擇“倉(cāng)庫(kù)入庫(kù)信息管理添加倉(cāng)庫(kù)入庫(kù)信息”菜單,出現(xiàn)如圖所示的窗體。4-6 倉(cāng)庫(kù)入庫(kù)信息管理圖表單中各個(gè)控件的屬性這里就不一一介紹了。將各種文本框放入表單的框架中,形成“倉(cāng)庫(kù)信息”和“倉(cāng)庫(kù)信息”兩部分。加載表單時(shí),現(xiàn)有的倉(cāng)庫(kù)信息會(huì)自動(dòng)添加到倉(cāng)庫(kù)信息中。代碼被添加到窗體的Load事件中。源代碼見附件:存儲(chǔ)信息的記錄號(hào)由程序隨機(jī)生成,使每條記錄都有唯一的編號(hào)。生成隨機(jī)數(shù)的代碼如下:私有函數(shù) GetRkno() 作為字符串GetRkno = 格式(現(xiàn)在,“yymmddhhmmss”)隨機(jī)化GetRkno = GetRkn
45、o & Int(99 - 10 + 1) * Rnd + 10)結(jié)束功能隨機(jī)數(shù)的前 12 位由當(dāng)前時(shí)間確定,后兩位由隨機(jī)數(shù)生成。輸入內(nèi)容后點(diǎn)擊“保存”按鈕觸發(fā)Click事件,首先檢查文本內(nèi)容是否符合格式要求,然后判斷是否有重復(fù)記錄,更新倉(cāng)庫(kù)余額表中的相關(guān)信息,最后添加內(nèi)容到數(shù)據(jù)庫(kù),代碼見附錄。 :這里很重要的一點(diǎn)是在添加入庫(kù)信息的同時(shí)更新倉(cāng)庫(kù)余額表中的信息。更新時(shí)使用SQL語(yǔ)句更新:2:修改倉(cāng)庫(kù)入庫(kù)信息選擇“倉(cāng)庫(kù)入庫(kù)信息管理和修改倉(cāng)庫(kù)入庫(kù)信息”菜單,出現(xiàn)如圖所示的窗體。4-7修改倉(cāng)庫(kù)入庫(kù)信息圖表單中放置了一個(gè)表單控件,所有入庫(kù)記錄都顯示在其中。選擇要修改的記錄,在彈出的菜單中選擇“修改入庫(kù)信息
46、”命令,修改成如圖所示的形式。選擇“修改倉(cāng)庫(kù)入庫(kù)信息”命令會(huì)觸發(fā)menuModifymaterialin 的 Click 事件,代碼如下:Private Sub menuModifymaterialin_Click()將 intCount 調(diào)暗為整數(shù)If flagIedit Then如果 frmMaterIn.msgList.Rows 1 那么gintImode=2intCount = frmMaterIn.msgList.RowfrmMaterIn1.txtSQL = select * from msave where rkno= & Trim(frmMaterIn.msgList.Text
47、Matrix(intCount, 1) & frmMaterIn1.顯示別的調(diào)用菜單Addmaterialin_Click萬(wàn)一別的frmMaterIn.txtSQL = 從 msave 中選擇 *frmMaterIn.Show萬(wàn)一結(jié)束子程序判斷為修改狀態(tài)后,先刪除原來的記錄,然后將新的內(nèi)容添加到數(shù)據(jù)庫(kù)中,同時(shí)保持倉(cāng)庫(kù)余額表中的相關(guān)信息更新。3:刪除倉(cāng)庫(kù)入庫(kù)信息在入庫(kù)記錄列表中選擇一條記錄,然后在菜單中選擇“刪除入庫(kù)信息”命令,即可刪除當(dāng)前記錄并更新入庫(kù)余額表中的相關(guān)信息。代碼顯示如下:Private Sub menuDeletematerialin_Click()將 txtSQL 調(diào)暗為字符串
48、將 intCount 調(diào)暗為整數(shù)將 mrc 調(diào)暗為 ADODB.Recordset將 MsgText 調(diào)暗為字符串If flagIedit Then如果 frmMaterIn.msgList.Rows 1 那么if MsgBox(你真的要?jiǎng)h除這條文件記錄嗎?, vbOKCancel + vbExclamation, Warning) = vbOK ThenintCount = frmMaterIn.msgList.RowtxtSQL = 更新 msurplus 設(shè)置 yeaccount=yeaccount- & Trim(frmMaterIn.msgList.TextMatrix(intCou
49、nt, 7) & ,yevalue=yevalue- & Trim(frmMaterIn.msgList.TextMatrix(intCount, 9) & 其中yeid= & Trim(frmMaterIn.msgList.TextMatrix(intCount, 2) & 設(shè)置 mrc = ExecuteSQL(txtSQL, MsgText)txtSQL = 從 rkno= 的 msave 中刪除 & Trim(frmMaterIn.msgList.TextMatrix(intCount, 1) & 設(shè)置 mrc = ExecuteSQL(txtSQL, MsgText)卸載 frmMa
50、terInfrmMaterIn.txtSQL = 從 msave 中選擇 *frmMaterIn.Show萬(wàn)一萬(wàn)一萬(wàn)一結(jié)束子4:查詢倉(cāng)庫(kù)入庫(kù)信息選擇“倉(cāng)庫(kù)入庫(kù)信息管理查詢倉(cāng)庫(kù)入庫(kù)入庫(kù)信息”菜單,出現(xiàn)如圖所示的表格。在這里,可以以各種方式并結(jié)合它們來執(zhí)行查詢。4-8查詢倉(cāng)庫(kù)入庫(kù)信息圖表加載表單時(shí)會(huì)自動(dòng)添加所有記錄的存儲(chǔ)時(shí)間,代碼如下:私有子 Form_Load()sQSql = 將 i 調(diào)暗為整數(shù)將 j 調(diào)暗為整數(shù)將 sSql 作為字符串變暗將 txtSQL 調(diào)暗為字符串將 MsgText 調(diào)暗為字符串將 mrc 調(diào)暗為 ADODB.RecordsettxtSQL = 從 msave 中選擇不同
51、的 datepart(yy,rkdate)設(shè)置 mrc = ExecuteSQL(txtSQL, MsgText)如果 mrc.EOF = False 那么與 mrc不做.EOFcboYear(0).AddItem.Fields(0)cboYear(1).AddItem.Fields(0).MoveNextLoop結(jié)束于對(duì)于 i = 0 到 1cboYear(i).ListIndex = 0接下來我對(duì)于 i = 0 到 1對(duì)于 j = 1 到 12cboMonth(i).AddItem j下一個(gè) j接下來我對(duì)于 i = 0 到 1cboMonth(i).Text = Month(Now()接下
52、來我別的cmdOk.Enabled = False萬(wàn)一mrc.關(guān)閉結(jié)束子查詢方法與查詢倉(cāng)庫(kù)基本信息的方法相同。4.7 倉(cāng)庫(kù)出庫(kù)管理模塊的創(chuàng)建倉(cāng)庫(kù)出庫(kù)管理模塊主要實(shí)現(xiàn)以下功能:添加倉(cāng)庫(kù)出庫(kù)信息。修改倉(cāng)庫(kù)出庫(kù)信息。刪除出庫(kù)信息。查詢出庫(kù)信息。1:增加創(chuàng)建倉(cāng)庫(kù)出庫(kù)信息表選擇“倉(cāng)庫(kù)出庫(kù)信息管理|添加倉(cāng)庫(kù)出庫(kù)信息”菜單,出現(xiàn)如圖所示的表單。4-9添加倉(cāng)庫(kù)出庫(kù)信息窗口圖加載表格時(shí),程序會(huì)自動(dòng)將所有數(shù)量大于零的倉(cāng)庫(kù)的名稱添加到倉(cāng)庫(kù)余額表中。代碼如下:私有子 Form_Load()將 sSql 作為字符串變暗將 intCount 調(diào)暗為整數(shù)將 mrc 調(diào)暗為 ADODB.Recordset如果 gintOmo
53、de = 1 那么Me.Caption = Me.Caption & “添加”初始化存儲(chǔ)庫(kù)名稱txtSQL = 從 msurplus 中選擇 DISTINCT 名稱,其中 yeaccount0設(shè)置 mrc = ExecuteSQL(txtSQL, MsgText)如果不是 mrc.EOF 那么不做時(shí)做 mrc.EOFcboItem(1).AddItem Trim(mrc!yename)mrc.MoveNextLoopcboItem(1).ListIndex = 0別的MsgBox 存儲(chǔ)庫(kù)中沒有存儲(chǔ)庫(kù)!, vbOKOnly + vbExclamation, 警告cmdSave.Enabled =
54、 False退出子萬(wàn)一mrc.關(guān)閉txt帳戶=“0”txt值 = 0txtNo = GetRknotxtBase = ElseIf gintOmode = 2 那么設(shè)置 mrc = ExecuteSQL(txtSQL, MsgText)如果 mrc.EOF = False 那么與 mrc對(duì)于 intCount = 0 到 4cboItem(intCount).AddItem .Fields(intCount + 1)cboItem(intCount).ListIndex = 0下一個(gè) intCount對(duì)于 intCount = 0 到 7If Not IsNull(.Fields(intCou
55、nt + 6) 那么txtItem(intCount) = .Fields(intCount + 6)萬(wàn)一下一個(gè) intCount保存更改的數(shù)據(jù)txtAccount = !lyaccounttxtValue = !lyvaluetxtNo = !lynotxtBase = !lybase & 結(jié)束于萬(wàn)一mrc.關(guān)閉Me.Caption = Me.Caption & “修改”萬(wàn)一mblChange = 假結(jié)束子選擇存儲(chǔ)庫(kù)名稱時(shí),還會(huì)顯示該存儲(chǔ)庫(kù)的其他信息,代碼如下:私有子 cboItem_Click(索引為整數(shù))將 sSql 作為字符串變暗將 mrcc 調(diào)暗為 ADODB.Recordset如果
56、 gintOmode = 1 那么 初始化員工姓名和ID如果索引 = 1 那么cboItem(0).Enabled = TruecboItem(3).Enabled = TruecboItem(4).Enabled = TruecboItem(2).清除cboItem(0).清除cboItem(3).清除cboItem(4).清除txtSQL = select yeid,yespec,yekind,yeunit from msurplus whereyename= & Trim(cboItem(1) & 設(shè)置 mrcc = ExecuteSQL(txtSQL, MsgText)如果不是 mrc
57、c.EOF 則不做時(shí)做 mrcc.EOFcboItem(0).AddItem mrcc!yeidcboItem(2).AddItem mrcc!yespeccboItem(3).AddItem mrcc!yekindcboItem(4).AddItem mrcc!yeunitmrcc.MoveNextLoopcboItem(0).Enabled = FalsecboItem(3).Enabled = FalsecboItem(4).Enabled = FalsecboItem(2).ListIndex = 0cmdSave.Enabled = True別的MsgBox 版本庫(kù)中不存在版本庫(kù)!,
58、 vbOKOnly + vbExclamation, 警告cmdSave.Enabled = False退出子萬(wàn)一mrcc.關(guān)閉ElseIf 索引 = 2 則cboItem(0).Enabled = TruecboItem(3).Enabled = TruecboItem(4).Enabled = True使用 cboItem(2)cboItem(0).ListIndex = .ListIndexcboItem(3).ListIndex = .ListIndexcboItem(4).ListIndex = .ListIndex結(jié)束于cboItem(0).Enabled = FalsecboIt
59、em(3).Enabled = FalsecboItem(4).Enabled = False萬(wàn)一萬(wàn)一結(jié)束子為了防止輸入信息時(shí)的誤操作,可以限制鍵盤的使用。在文本框中Private Sub txtItem_KeyPress(Index As Integer, KeyAscii As Integer)如果索引 = 0 或索引 = 1 則消息框鍵碼控制輸入的字符txtQuantity(Index).Locked = False小數(shù)點(diǎn)只能輸入一次如果 KeyAscii = 190 那么如果 InStr(Trim(txtItem(Index), .) = 0 那么如果 Len(Trim(txtItem
60、(Index) 0 那么txtItem(索引).Locked = False別的txtItem(索引).Locked = True萬(wàn)一別的txtItem(索引).Locked = True萬(wàn)一退出子萬(wàn)一非數(shù)字不能輸入如果 KeyAscii 57 或 KeyAscii 1 那么if MsgBox(你真的要?jiǎng)h除這條文件記錄嗎?, vbOKCancel + vbExclamation, Warning) = vbOK ThenintCount = frmMaterOut.msgList.RowtxtSQL = 更新 msurplus 設(shè)置 yeaccount=yeaccount+ & Trim(fr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑設(shè)計(jì)答辯匯報(bào)
- 冷鏈物流行業(yè)發(fā)展前景分析
- 2025建筑工程合同爭(zhēng)議解析
- 2025物流服務(wù)外包合同(專業(yè)律師審核起草修訂)
- 幼兒園假期安全教育指南
- 2025租房合同協(xié)議書標(biāo)準(zhǔn)版
- 2025合同管理規(guī)章:公章、資質(zhì)、合同及其它證書的使用與保管辦法
- 2025投資合同轉(zhuǎn)讓協(xié)議書
- 手術(shù)室細(xì)節(jié)護(hù)理
- 2025住宅房屋租賃合同協(xié)議范本
- SH/T 1673-1999工業(yè)用環(huán)己烷
- GB/T 9661-1988機(jī)場(chǎng)周圍飛機(jī)噪聲測(cè)量方法
- GB 29541-2013熱泵熱水機(jī)(器)能效限定值及能效等級(jí)
- FZ/T 07019-2021針織印染面料單位產(chǎn)品能源消耗限額
- 重癥醫(yī)學(xué)科各項(xiàng)規(guī)章制度匯編
- 社會(huì)組織培訓(xùn)概述課件
- 春節(jié)作文優(yōu)秀課件
- 三角函數(shù)的應(yīng)用論文Word版
- 農(nóng)業(yè)創(chuàng)業(yè)風(fēng)險(xiǎn)控制與防范培訓(xùn)課件
- 生物制造國(guó)內(nèi)外狀況課件
- 幼兒園大班數(shù)學(xué)口算練習(xí)題可打印
評(píng)論
0/150
提交評(píng)論