版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
摘要倉庫管理系統(tǒng)是為了實(shí)現(xiàn)企業(yè)產(chǎn)品管理的系統(tǒng)化、標(biāo)準(zhǔn)化和自動(dòng)化,從而提高企業(yè)管理效率而設(shè)計(jì)的。它完全取代了原來一直用人工管理的工作方式,防止了由于管理人員的工作疏忽以及管理質(zhì)量問題所造成的各種錯(cuò)誤,為及時(shí)、準(zhǔn)確、高效的完成倉庫管理提供了強(qiáng)有力的工具和管理手段。倉庫管理系統(tǒng)是一個(gè)中小型數(shù)據(jù)庫管理系統(tǒng),它界面美觀、操作簡單、平安性高,根本滿足了倉庫管理的要求。整個(gè)系統(tǒng)由根本信息、單據(jù)中心、查詢統(tǒng)計(jì)、報(bào)表打印、維護(hù)設(shè)置、幫助等模塊組成。本系統(tǒng)是在以ACCESS2000作為后臺(tái)數(shù)據(jù)庫,以VisualBasic為編程語言來開發(fā)的。倉庫管理系統(tǒng)在運(yùn)行階段,效果好,數(shù)據(jù)準(zhǔn)確性高,提高了工作效率,同時(shí)也實(shí)現(xiàn)了倉庫管理計(jì)算機(jī)化。關(guān)鍵字:倉庫,管理系統(tǒng),數(shù)據(jù)庫AbstractTheadministrativesystemofthewarehouseisdesignedforrealizingthesystematization,standardizationandautomizationofenterprise'sproductsmanagementandimprovingefficiencyofenterprisesmanagement.Itcompletelyreplacestheworkingwayofartificialmanagementoriginally,preventsfromvariouskindsofmistakesbecauseofadministrativestaffneglectandthequalityproblemofmanagementandofferespowerfultoolandmanagementwaytocompletstorehousemanagementforprompt,accurate,high-efficient.Theadministrativesystemofthewarehouseisamediumandsmall-scaledatabasemanagementsystem,ithasnotonlybeautifulinterface,butalsothehighsecurityandthesimplyoperation,andmeetthedemandforstorehousemanagementbasically.Wholesystemismadeupbybasicinformation,documentinthecenter,inquirestatistics,reportformtype,setuptomaintainandmoduleofhelpingetc.TheWarehouseadministrativesystemisdesignedwithregardingACCESS2000asthebackstagedatabaseandregardingVisualBasicasprogramminglanguage.Theadministrativesystemiseffectual,thehighdataaccuracyduringthecourseofoperating,improvesworkingefficiencyandrealizescomputerizationforstorehousemanagementatthesametime.Keyword:TheWarehouse,AdministrativeSystem,TheDatabase目錄TOC\o\h\z前言1摘要2Abstract3目錄41倉庫管理系統(tǒng)開發(fā)環(huán)境簡介61.1中文VisualBasic6.0簡介61.2ACCESS2000簡介72系統(tǒng)可行性分析83系統(tǒng)總體設(shè)計(jì)103.1系統(tǒng)目標(biāo)設(shè)計(jì)103.2開發(fā)設(shè)計(jì)思想103.3系統(tǒng)功能需求分析113.4系統(tǒng)功能模塊設(shè)計(jì)114數(shù)據(jù)庫設(shè)計(jì)124.1數(shù)據(jù)庫需求分析124.2數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)144.3數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)185系統(tǒng)主窗體設(shè)計(jì)245.1創(chuàng)立工程工程—倉庫管理系統(tǒng)245.2創(chuàng)立系統(tǒng)主窗體245.3創(chuàng)立主窗體菜單255.4創(chuàng)立主窗體工具欄515.4.1工具欄控件常用屬性和事件515.4.2設(shè)置工具欄屬性525.5設(shè)置主窗體狀態(tài)欄566系統(tǒng)模塊設(shè)計(jì)576.1根本信息模塊設(shè)計(jì)576.1.1創(chuàng)立貨物信息窗體576.1.2創(chuàng)立倉庫信息窗體586.1.3創(chuàng)立庫存狀況信息窗體596.2單據(jù)中心模塊設(shè)計(jì)606.2.1創(chuàng)立新增入庫單窗體616.2.2創(chuàng)立入庫單管理窗體626.2.3創(chuàng)立月盤點(diǎn)窗體636.3查詢統(tǒng)計(jì)模塊設(shè)計(jì)636.3.1創(chuàng)立單據(jù)查詢窗體646.3.2創(chuàng)立庫存查詢窗體646.3.3創(chuàng)立貨物出入統(tǒng)計(jì)窗體656.3.4創(chuàng)立職員操作統(tǒng)計(jì)窗體666.4報(bào)表打印模塊設(shè)計(jì)67創(chuàng)立打印入庫單窗體676.4.2創(chuàng)立打印月盤點(diǎn)窗體686.5維護(hù)設(shè)置模塊設(shè)計(jì)696.5.1公司和職員信息706.5.2查看日志706.5.3數(shù)據(jù)去除716.5.4系統(tǒng)初始化716.5.5備份數(shù)據(jù)庫716.5.6復(fù)原數(shù)據(jù)庫和復(fù)原到昨天數(shù)據(jù)庫726.5.7用戶管理726.7幫助模塊設(shè)計(jì)72總結(jié)74致謝75參考文獻(xiàn)761倉庫管理系統(tǒng)開發(fā)環(huán)境簡介本倉庫管理系統(tǒng)是在以VisualBasic為編程語言,以ACCESS2000作為后臺(tái)數(shù)據(jù)庫而開發(fā)的一個(gè)數(shù)據(jù)庫管理系統(tǒng)。下面簡要介紹一下中文VisualBasic6.0和Access2000。1.1中文VisualBasic6.0簡介VisualBasic提供了開發(fā)Windows應(yīng)用程序最迅速、最簡潔的方法,它提供了一整套工具,供用戶開發(fā)應(yīng)用程序。Visual指的是開發(fā)圖形用戶界面〔GUI〕的方法,在圖形用戶界面下,不需要編寫大量代碼去描述界面元素的外觀和位置,而只需要把預(yù)先建立的對象加到屏幕上的適當(dāng)位置再進(jìn)行簡單設(shè)置即可;Basic指的是BASIC(BeginnersAll-PurposeSymbolInstructionCode)語言,是一種應(yīng)用十分廣泛的計(jì)算機(jī)語言。VisualBasic在原有BASIC語言的根底上進(jìn)一步開展,至今包含了數(shù)百條語句、函數(shù)和關(guān)鍵詞,其中很多和WindowsGUI有直接關(guān)系,專業(yè)人員可以用VisualBasic實(shí)現(xiàn)其他任何Windows編程語言的功能,而初學(xué)者只要掌握幾個(gè)關(guān)鍵詞就可以建立簡單的應(yīng)用程序。VisualBasic還是一個(gè)快速可視化程序開發(fā)工具,是極有特色和功能強(qiáng)大的軟件。它使用了面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,大大的增強(qiáng)了程序的可重用性,進(jìn)而簡化了程序設(shè)計(jì)。VisualBasic提供了眾多的ActiveX控件,提高了軟件開發(fā)人員的編程效率。它有其獨(dú)特的特點(diǎn),主要特點(diǎn)如下:1可視化設(shè)計(jì)。VB具有所見即所得的功能,在程序設(shè)計(jì)時(shí),頭腦中所想象的應(yīng)用程序界面,完全可以通過鍵盤和鼠標(biāo)完成,而不用編制大量代碼,如果需要修改也可利用鍵盤或鼠標(biāo)完成,而底層的一些程序代碼,可由VB自動(dòng)生成或修改。VB為用戶提供了大量“控件〞,這些“控件〞對于熟悉“Windows應(yīng)用成序〞的用戶而言,也許是一點(diǎn)也不陌生,如“標(biāo)簽〞,“組合框〞,“命令按扭〞“文本框〞,“單項(xiàng)選擇框〞等等,用戶只需要用鼠標(biāo)或鍵盤把這些“控件〞拖到所需的位置并設(shè)置他們的大小形狀屬性等,即可得到所需要的應(yīng)用程序界面。2事件驅(qū)動(dòng)編程,在VB中把“窗體〞及“控件〞稱為對象。這些對象組成了與用戶交互的圖形界面〔也稱為用戶接口用戶界面〕再設(shè)計(jì)應(yīng)用程序時(shí)必須考慮到用戶如何與程序進(jìn)行交互,用戶通過鼠標(biāo)和鍵盤與應(yīng)用程序進(jìn)行交互是最直接最方便的,這時(shí)那些對象必須對鼠標(biāo)鍵盤操作所引起的事件做出響應(yīng)。響應(yīng)是指執(zhí)行一段應(yīng)用程序,它不沿預(yù)定的路線執(zhí)行而是在響應(yīng)不同事件時(shí)執(zhí)行不同的代碼,因此VB編程重點(diǎn)是在編寫事件驅(qū)動(dòng)過程的代碼。3面向?qū)ο蟮某绦蛟O(shè)計(jì),VB是面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,他將代碼和數(shù)據(jù)結(jié)合在一個(gè)對象中,用戶只需要了解每個(gè)對象能完成何種任務(wù)而不需要知道對象是如何工做作的。軟件開發(fā)人員主要編寫事件驅(qū)動(dòng)過程的代碼,使對象對用戶的操作做出反映。但因VB沒有多態(tài)等面向?qū)ο蟮奶匦?,所以也有人稱VB是一種準(zhǔn)面向?qū)ο蟮某绦蛟O(shè)計(jì)語言。4易學(xué)易用,開發(fā)周期短。VB簡單易學(xué),界面友好,容易使用。VB提供了大量功能強(qiáng)大的“控件〞,能幫助開發(fā)人員在較短的時(shí)間內(nèi)用少量語句編寫出應(yīng)用程序,縮短了開發(fā)周期。1.2ACCESS2000簡介ASSESS是一個(gè)數(shù)據(jù)庫管理系統(tǒng),它簡單易學(xué),一個(gè)普通的計(jì)算機(jī)用戶可以很快的掌握它。ACCESS2000的功能也十分強(qiáng)大,利用它可以方便的實(shí)現(xiàn)對信息保存、維護(hù)、查詢、統(tǒng)計(jì)等,而且它可以十分方便地與OFFICE其他組件交流數(shù)據(jù),這些功能對一個(gè)普通用戶來說已經(jīng)足夠了。本系統(tǒng)就是在以ACCESS2000作為后臺(tái)數(shù)據(jù)庫,以VisualBasic為編程語言為中小型企業(yè)管理倉庫而開發(fā)的一個(gè)數(shù)據(jù)庫管理系統(tǒng)。2系統(tǒng)可行性分析可行性分析的任務(wù),并不是所有問題都有簡單明顯的解決方法,事實(shí)上,許多問題不可能在預(yù)定的系統(tǒng)規(guī)模之內(nèi)解決。如果問題沒有可行的解,那么花費(fèi)這項(xiàng)開發(fā)工程上的任何時(shí)間、資源、人力和經(jīng)費(fèi)都是無謂的浪費(fèi)。可行性研究的目的就是用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問題是否能夠解決。必須記住,可行性研究的目的不是解決問題,而是確定問題是否值得去解。怎樣到達(dá)這個(gè)目的呢?當(dāng)然不能靠主觀猜測,而只能靠客觀分析。必須分析幾種主要的可能解法的利弊,從而判斷原定的系統(tǒng)目標(biāo)和規(guī)模是否現(xiàn)實(shí),系統(tǒng)完成后所能帶來的效益是否大到值得投資開發(fā)這個(gè)系統(tǒng)的程度。因此,可行性研究實(shí)質(zhì)上是要進(jìn)行一次大大壓縮簡化了的系統(tǒng)分析和設(shè)計(jì)的過程,也就是在較高層次上以較抽象的方式進(jìn)行的系統(tǒng)分析和設(shè)計(jì)的過程。所以從以上的分析原那么來看,我所設(shè)計(jì)的倉庫信息管理系統(tǒng)是一個(gè)規(guī)模不太大的系統(tǒng),但是目標(biāo)明確,清晰的描述了對目標(biāo)系統(tǒng)的一切限制和約束。本系統(tǒng)幾乎在所有的企業(yè)、公司使用,當(dāng)然它需要進(jìn)一步的完善和更新。在使用過程中,要看它能不能帶來效益,畢竟在現(xiàn)今社會(huì)效率是第一位的。從現(xiàn)實(shí)看,這還是有一定的實(shí)用價(jià)值的,從另一個(gè)角度看,現(xiàn)實(shí)社會(huì)開展飛速,尊重科技勢在必行,因此這也是開發(fā)本系統(tǒng)的一個(gè)非常重要的原因。21世紀(jì)是計(jì)算機(jī)的時(shí)代,它必然取代一局部人的工作,高科技的監(jiān)控系統(tǒng)進(jìn)入社會(huì)生活的方方面面是開展的趨勢。本設(shè)計(jì)從一下三個(gè)方面進(jìn)行可行性研究:1.技術(shù)可行性。本設(shè)計(jì)“倉庫管理系統(tǒng)〞是為企業(yè)倉庫管理人員開發(fā)的。鑒于本人在上學(xué)期數(shù)據(jù)庫課程設(shè)計(jì)中已用VisualBasic6.0+Access2000開發(fā)過網(wǎng)上圖書銷售管理信息系統(tǒng),而且通過三個(gè)月畢業(yè)實(shí)習(xí)中的學(xué)習(xí)和實(shí)踐,對開發(fā)管理信息系統(tǒng)又有了新的認(rèn)識(shí)和提高,使自己在開發(fā)管理信息系統(tǒng)方面的技術(shù)更加成熟。由于本設(shè)計(jì)最重要表達(dá)的是實(shí)用性,所以,通過大量的社會(huì)調(diào)查和分析,結(jié)合自己現(xiàn)有的技術(shù)水平加上導(dǎo)師的指導(dǎo),還是能按期完本錢畢業(yè)設(shè)計(jì)。2.經(jīng)濟(jì)可行性。本錢方面:由于本畢業(yè)設(shè)計(jì)屬于計(jì)算機(jī)科學(xué)(本科)教學(xué)的最后一個(gè)環(huán)節(jié),所以人力消耗免費(fèi),資源學(xué)校提供,指導(dǎo)老師義務(wù)指導(dǎo)。所以本錢計(jì)算只需計(jì)算開發(fā)期間開發(fā)者的生活消費(fèi),學(xué)校資源的消耗,所以開發(fā)本軟件的本錢是非常低的。效益方面:為企業(yè)開發(fā)一個(gè)完整、合理的倉庫管理系統(tǒng),可大大節(jié)余人力,以前需要多人干的工作,使用本系統(tǒng)只需一個(gè)人或幾個(gè)人就能完成,且工作量和勞動(dòng)強(qiáng)度大大降低。所以開發(fā)本軟件可以為社會(huì)帶來很好的經(jīng)濟(jì)效益。從以上分析看開發(fā)本軟件在經(jīng)濟(jì)上是可行的。3.操作可行性。本軟件是為企業(yè)倉庫的管理者開發(fā)的,所有本軟件的用戶對象是企業(yè)倉庫的工作人員,由于本軟件要設(shè)計(jì)成友好的界面,寫出詳細(xì)的使用說明,用戶只需懂得簡單的計(jì)算機(jī)操作知識(shí),就能自由應(yīng)用本軟件。所以從以上幾個(gè)方面的分析來看,開發(fā)本軟件是完全可行的。3系統(tǒng)總體設(shè)計(jì)3.1系統(tǒng)目標(biāo)設(shè)計(jì)系統(tǒng)開發(fā)的總體任務(wù)是實(shí)現(xiàn)企業(yè)產(chǎn)品管理的系統(tǒng)化、標(biāo)準(zhǔn)化和自動(dòng)化,從而到達(dá)提高企業(yè)管理效率的目的。3.2開發(fā)設(shè)計(jì)思想倉庫管理主要是企業(yè)各種商品的管理。進(jìn)貨時(shí)經(jīng)檢查合同確認(rèn)為有效托收后,進(jìn)行驗(yàn)收入庫,填寫入庫單,進(jìn)行入庫登記。企業(yè)各個(gè)部門根據(jù)需要提出產(chǎn)品請求,方案員根據(jù)整個(gè)企業(yè)的需求開出產(chǎn)品出庫單,倉庫管理人員根據(jù)出庫單核對發(fā)放產(chǎn)品。根據(jù)需要按照月進(jìn)行統(tǒng)計(jì)分析,產(chǎn)生相應(yīng)報(bào)表。倉庫管理的特點(diǎn)是信息處理量比擬大,所管理的產(chǎn)品種類繁多,而且由于入庫單、出庫單、盤點(diǎn)單等單據(jù)發(fā)生量特別大,關(guān)聯(lián)信息多,查詢和統(tǒng)計(jì)的方式各不相同。因此在管理上實(shí)現(xiàn)起來有一定的困難。在管理的過程中經(jīng)常會(huì)出現(xiàn)信息的重復(fù)傳遞;單據(jù)、報(bào)表種類繁多,各個(gè)部門管理規(guī)格不統(tǒng)一等問題。在本系統(tǒng)的設(shè)計(jì)過程中,為了克服這些困難,滿足計(jì)算機(jī)管理工作的需要,我們采取了下面的一些原那么?!窠y(tǒng)一各種原始單據(jù)的格式,統(tǒng)一報(bào)表的格式?!駝h除不必要的管理冗余,實(shí)現(xiàn)管理標(biāo)準(zhǔn)化、科學(xué)化?!癯绦虼a標(biāo)準(zhǔn)化,軟件統(tǒng)一化,確保軟件的可維護(hù)性和實(shí)用性?!窠缑姹M量簡單化,做到實(shí)用、方便,盡量滿足企業(yè)中不同層次員工的需要?!窠⒉僮魅罩荆到y(tǒng)自動(dòng)記錄所進(jìn)行和各種操作。3.3系統(tǒng)功能需求分析系統(tǒng)開發(fā)的總體任務(wù)是實(shí)現(xiàn)各種信息的系統(tǒng)化、標(biāo)準(zhǔn)化和自動(dòng)化。系統(tǒng)功能分析是在系統(tǒng)開發(fā)的總體任務(wù)的根底上完成。本倉庫管理系統(tǒng)需要完成功能主要有:●倉庫管理各種信息的輸入,包括貨物、供給商、客戶、倉庫信息的輸入等。●倉庫管理各種信息的查詢、統(tǒng)計(jì)、修改和維護(hù),包括貨物、單據(jù)查詢,貨物出入、職員操作統(tǒng)計(jì),各種信息的修改和維護(hù)等?!翊蛴?bào)表的生成。●在貨物管理中參加最高儲(chǔ)藏和最低儲(chǔ)藏字段,對倉庫中的產(chǎn)品實(shí)現(xiàn)監(jiān)控和報(bào)警?!癫僮魅罩镜墓芾??!駛}庫管理系統(tǒng)的使用幫助。3.4系統(tǒng)功能模塊設(shè)計(jì)在系統(tǒng)功能分析的根底上,考慮到VisualBasic程序編制的特點(diǎn),得到如圖3-1所示的系統(tǒng)功能模塊圖。倉庫管理系統(tǒng)倉庫管理系統(tǒng)根本信息單據(jù)中心查詢統(tǒng)計(jì)報(bào)表打印維護(hù)設(shè)置系統(tǒng)幫助新增單據(jù)單據(jù)管理查詢模塊統(tǒng)計(jì)模塊圖3-1系統(tǒng)功能模塊圖。4數(shù)據(jù)庫設(shè)計(jì)4.1數(shù)據(jù)庫需求分析用戶的需求具體表達(dá)在各種信息的提供、保存、更新和查詢,這就要求數(shù)據(jù)庫結(jié)構(gòu)能充分滿足各種信息的輸出和輸入。收集根本數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)以及數(shù)據(jù)處理的流程,組成一份詳盡的數(shù)據(jù)字典,為后面的具體設(shè)計(jì)打下根底。仔細(xì)分析調(diào)查有關(guān)倉庫管理信息需求的根底上,得到如圖4-1所示的本系統(tǒng)所處理的數(shù)據(jù)流程。倉庫現(xiàn)有庫存?zhèn)}庫現(xiàn)有庫存匯總、處理各種單據(jù)產(chǎn)品入庫產(chǎn)品出庫報(bào)表打印圖4-1倉庫管理系統(tǒng)數(shù)據(jù)流程圖通過對企業(yè)倉庫管理的內(nèi)容和數(shù)據(jù)流程分析,設(shè)計(jì)數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)如下:●貨物信息,包括的數(shù)據(jù)項(xiàng)有編號、貨物名稱、貨物類別、貨物規(guī)格、計(jì)量單位、最高限量、最低限量、備注等?!駛}庫信息,包括的數(shù)據(jù)項(xiàng)有編號、倉庫名稱、倉庫地點(diǎn)、保管員編號、備注等?!駧齑鏍顩r信息,包括的數(shù)據(jù)項(xiàng)有編號、貨物編號、庫存數(shù)量、倉庫編號等?!袢霂靻涡畔ⅲǖ臄?shù)據(jù)項(xiàng)有編號、貨物編號、經(jīng)辦人編號、入庫時(shí)間、入庫單價(jià)、入庫數(shù)量、供給商編號、倉庫編號、定單狀況、其它金額、備注等?!癯鰩靻涡畔?,包括的數(shù)據(jù)項(xiàng)有編號、貨物編號、經(jīng)辦人編號、出庫時(shí)間、出庫單價(jià)、出庫數(shù)量、客戶編號、倉庫編號、定單狀況、其它金額、備注等。●進(jìn)行月盤點(diǎn)信息,包括的數(shù)據(jù)項(xiàng)有編號、倉庫編號、盤點(diǎn)時(shí)間、經(jīng)辦人編號、盤點(diǎn)數(shù)據(jù)等。●系統(tǒng)日志信息,包括的數(shù)據(jù)項(xiàng)有用戶名、操作時(shí)間、操作內(nèi)容等?!裼脩艄芾硇畔?,包括的數(shù)據(jù)項(xiàng)有用戶名、用戶密碼、用戶權(quán)限等。另外,還有借入單、借出單、報(bào)損單、調(diào)撥單信息等。它們與入庫單、出庫單信息根本類似,這里不再一一例舉。4.2數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)得到上面的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)以后,就可以設(shè)計(jì)出能夠滿足用戶需求的各種實(shí)體結(jié)構(gòu),以及他們之間的關(guān)系,為以后的邏輯結(jié)構(gòu)設(shè)計(jì)打下根底。根據(jù)上面的設(shè)計(jì)規(guī)劃出的實(shí)體有:現(xiàn)有庫存信息實(shí)體、入庫信息實(shí)體、出庫信息實(shí)體、借入信息實(shí)體、借出信息實(shí)體、調(diào)撥信息實(shí)體圖和報(bào)損信息實(shí)體圖。各個(gè)實(shí)體具體的描述E-R圖如下:現(xiàn)有庫存信息實(shí)體E-R圖如圖4-2所示?,F(xiàn)有庫存信息實(shí)體現(xiàn)有庫存信息實(shí)體編號貨物名稱最低限量最高限量圖4-2現(xiàn)有庫存信息實(shí)體E-R圖入庫單信息實(shí)體E-R圖如圖4-3所示。入庫信息實(shí)體入庫信息實(shí)體編號經(jīng)辦人編號入庫時(shí)間、單價(jià)、數(shù)量供給商編號圖4-3入庫單信息實(shí)體E-R圖出庫單信息實(shí)體E-R圖如圖4-4所示。出庫信息實(shí)體出庫信息實(shí)體編號經(jīng)辦人編號入庫時(shí)間、單價(jià)、數(shù)量客戶編號圖4-4出庫信息實(shí)體E-R圖借入信息實(shí)體E-R圖如圖4-3所示。借入信息實(shí)體借入信息實(shí)體編號經(jīng)辦人編號借入時(shí)間、單價(jià)、數(shù)量貨物編號圖4-5借入信息實(shí)體E-R圖借出信息實(shí)體E-R圖如圖4-6所示。借出信息實(shí)體借出信息實(shí)體編號經(jīng)辦人編號借出時(shí)間、數(shù)量貨物編號圖4-6借出信息實(shí)體E-R調(diào)撥信息實(shí)體E-R圖如圖4-7所示。調(diào)撥信息實(shí)體調(diào)撥信息實(shí)體編號經(jīng)辦人編號目標(biāo)倉庫編號原倉庫編號圖4-7調(diào)撥信息實(shí)體E-R報(bào)損信息實(shí)體E-R圖如圖4-4所示。報(bào)損信息實(shí)體報(bào)損信息實(shí)體編號經(jīng)辦人編號報(bào)損時(shí)間、單價(jià)、數(shù)量倉庫編號圖4-8報(bào)損信息實(shí)體E-R實(shí)體和實(shí)體之間的關(guān)系E-R圖如圖4-9所示?,F(xiàn)有庫存現(xiàn)有庫存入庫出庫借入借出調(diào)撥報(bào)損圖4-9實(shí)體之間關(guān)系E-R圖4.3數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)現(xiàn)在需要將在上面的數(shù)據(jù)庫概念結(jié)構(gòu)轉(zhuǎn)化為ACCESS2000數(shù)據(jù)庫系統(tǒng)所支持的實(shí)際數(shù)據(jù)模型,也就是數(shù)據(jù)庫的邏輯結(jié)構(gòu)。倉庫管理信息系統(tǒng)數(shù)據(jù)庫中各個(gè)表格的設(shè)計(jì)結(jié)果如下面表格所示。每個(gè)表格所示在數(shù)據(jù)庫中的一個(gè)表。表4-1為貨物根本信息表。表4-1貨物根本信息表字段名稱數(shù)據(jù)類型字段大小可否為空編號數(shù)字長整型不可貨物名稱文本64不可貨物類別文本50可貨物規(guī)格文本50可計(jì)量單位文本50可最高限量數(shù)字長整型不可最低限量數(shù)字長整型不可備注備注可表4-2為倉庫信息表表4-2倉庫信息表字段名稱數(shù)據(jù)類型字段大小可否為空編號數(shù)字長整型不可倉庫名稱文本50不可倉庫地點(diǎn)文本255可保管理員編號數(shù)字長整型可備注備注可表4-3為庫存狀況信息表表4-3庫存狀況信息表字段名稱數(shù)據(jù)類型字段大小可否為空編號數(shù)字長整型不可貨物編號數(shù)字長整型不可庫存數(shù)量數(shù)字長整型不可倉庫編號數(shù)字長整型不可表4-4為入庫單信息表表4-4入庫單信息表字段名稱數(shù)據(jù)類型字段大小可否為空編號數(shù)字長整型不可貨物編號數(shù)字長整型不可經(jīng)辦人編號數(shù)字長整型不可入庫時(shí)間日期/時(shí)間不可入庫單價(jià)貨幣不可入庫數(shù)量數(shù)字長整型不可供給商編號數(shù)字長整型可倉庫編號數(shù)字長整型不可訂單狀況文本50不可其它金額貨幣可備注備注可表4-5為出庫單信息表表4-5出庫單信息表字段名稱數(shù)據(jù)類型字段大小可否為空編號數(shù)字長整型不可貨物編號數(shù)字長整型不可經(jīng)辦人編號數(shù)字長整型不可出庫時(shí)間日期/時(shí)間不可出庫單價(jià)貨幣不可出庫數(shù)量數(shù)字長整型不可客戶編號數(shù)字長整型可倉庫編號數(shù)字長整型不可訂單狀況文本50不可其它金額貨幣可備注備注可表4-6為借入單信息表表4-6借入單信息表字段名稱數(shù)據(jù)類型字段大小可否為空編號數(shù)字長整型不可貨物編號數(shù)字長整型不可經(jīng)辦人編號數(shù)字長整型不可借入時(shí)間日期/時(shí)間不可借入數(shù)量數(shù)字長整型不可供給商編號數(shù)字長整型可倉庫編號數(shù)字長整型不可訂單狀況文本50不可其它金額貨幣可備注備注可表4-7為借出單信息表表4-6借出單信息表字段名稱數(shù)據(jù)類型字段大小可否為空編號數(shù)字長整型不可貨物編號數(shù)字長整型不可經(jīng)辦人編號數(shù)字長整型不可借出時(shí)間日期/時(shí)間不可借出數(shù)量數(shù)字長整型不可供給商編號數(shù)字長整型可倉庫編號數(shù)字長整型不可訂單狀況文本50不可其它金額貨幣可備注備注可表4-8為調(diào)撥單信息表表4-8調(diào)撥單信息表字段名稱數(shù)據(jù)類型字段大小可否為空編號數(shù)字長整型不可貨物編號數(shù)字長整型不可經(jīng)辦人編號數(shù)字長整型不可調(diào)撥時(shí)間日期/時(shí)間不可調(diào)撥數(shù)量數(shù)字長整型不可原倉庫編號數(shù)字長整型不可目標(biāo)倉庫編號數(shù)字長整型不可其它金額貨幣可備注備注可表4-9為報(bào)損單信息表表4-9報(bào)損單信息表字段名稱數(shù)據(jù)類型字段大小可否為空編號數(shù)字長整型不可貨物編號數(shù)字長整型不可經(jīng)辦人編號數(shù)字長整型不可報(bào)損時(shí)間日期/時(shí)間不可報(bào)損單價(jià)貨幣不可報(bào)損數(shù)量數(shù)字長整型不可倉庫編號數(shù)字長整型不可其它金額貨幣可備注備注可表4-10為盤點(diǎn)單信息表表4-10盤點(diǎn)單信息表字段名稱數(shù)據(jù)類型字段大小可否為空編號數(shù)字長整型不可倉庫編號數(shù)字長整型不可盤點(diǎn)時(shí)間日期/時(shí)間不可經(jīng)辦人編號數(shù)字長整型不可盤點(diǎn)數(shù)據(jù)備注不可表4-11為系統(tǒng)日志信息表表4-11系統(tǒng)日志信息表字段名稱數(shù)據(jù)類型字段大小可否為空用戶名文本50不可操作時(shí)間日期/時(shí)間不可操作內(nèi)容備注不可表4-12為用戶管理信息表表4-11用戶管理信息表字段名稱數(shù)據(jù)類型字段大小可否為空用戶名文本64不可用戶密碼文本50不可用戶權(quán)限數(shù)字長整型不可5系統(tǒng)主窗體設(shè)計(jì)5.1創(chuàng)立工程工程—倉庫管理系統(tǒng)翻開VisualBasic后,單擊File->NewProject菜單,在工程模板中選擇StandardExE,VisualBasic將自動(dòng)產(chǎn)生一個(gè)Form窗體,屬性都是缺省設(shè)置。這里我們刪除這個(gè)窗體,單擊File->SaveProjiect菜單,將這個(gè)工程工程命名為倉庫管理系統(tǒng)。5.2創(chuàng)立系統(tǒng)主窗體VisualBasic創(chuàng)立的應(yīng)用程序可以是SDI〔單文檔界面〕和MDI〔多文檔界面〕。在SDI的程序中,每個(gè)窗體之間是獨(dú)立的。而MDI的程序中,有一個(gè)窗體是主窗體,可以包含其他窗體,他的類型是MDIForm。本設(shè)計(jì)采用多文檔界面,這樣可以使程序更加美觀、整齊有序。單擊工具欄中的ADDMDIForm按鈕,生成一個(gè)窗體。窗體的屬性設(shè)置見表5-1。表5-1主窗體屬性設(shè)置屬性屬性取值NameFrmMainCaption倉庫管理系統(tǒng)StartUpPositionCenterScreenWindowStateMaximized主窗體界面設(shè)計(jì)如圖5-1所示。圖5-1系統(tǒng)主窗體5.3創(chuàng)立主窗體菜單熟悉Windows下應(yīng)用程序的用戶對菜單一定有比擬深的印象。所謂菜單,即是指應(yīng)用程序中為用戶提供的一組命令,這些命令出現(xiàn)在應(yīng)用程序界面的頂部。每項(xiàng)菜單有多項(xiàng)子菜單,具有一定的專門功能,用戶容易通過主菜單來訪問其下的子菜單。增加菜單可以增強(qiáng)應(yīng)用程序的功能。下面將介紹菜單及菜單的編輯和使用。1.菜單簡介菜單欄在窗體欄的標(biāo)題欄下面,包含一個(gè)或多個(gè)菜單標(biāo)題。當(dāng)單擊一個(gè)菜單標(biāo)題,包含菜單工程的列表就被拉下來。菜單項(xiàng)可以包含命令、分隔條和子菜單標(biāo)題。用戶看到的每個(gè)菜單項(xiàng)和在“MenuEditor〞中定義的一個(gè)菜單控件相對應(yīng)。為了使應(yīng)用程序簡單好用,應(yīng)該將菜單相按功能進(jìn)行分組。菜單控件使一個(gè)對象,與其他對象一樣,它具有定義它的外觀與行為的屬性。在設(shè)計(jì)或運(yùn)行時(shí)可以設(shè)置Caption屬性、Enabled和Visible屬性、Checked屬性以及其他屬性。菜單控件只包含一個(gè)事件,即Click事件,當(dāng)用鼠標(biāo)或鍵盤選中該菜單控件時(shí),將調(diào)用該事件。2.VisualBasic菜單編輯器菜單編輯器可以創(chuàng)立新的菜單和菜單欄,也可以向現(xiàn)存的菜單中增加新的命令、用自己的命令替代現(xiàn)存的菜單命令、產(chǎn)生新的菜單和菜單欄,改變和刪除現(xiàn)存菜單和菜單欄。要翻開菜單編輯器,在“Tools〞菜單中選擇“MenuEditor〞選項(xiàng)?;驌羰髽?biāo)右鍵,選擇彈出式菜單中的“MenuEditor〞。彈出菜單編輯器窗口如圖5-2所示。5-2菜單編輯器菜單編輯器的根本屬性如下:Caption—出現(xiàn)在控件上的文本。Name—代碼中用來引用菜單控件的名字。shortcut—可以訪問菜單的鍵盤按鍵組合。以上介紹了菜單編輯器的根本情況和屬性,接下來將來介紹利用菜單編輯器創(chuàng)立菜單的過程。選取待創(chuàng)立菜單的窗體,激活該窗體。從菜單欄的“Tools〞菜單中,選取“MenuEditor〞并單擊〔或在“工具欄〞上單擊“MenuEditor〞按鈕〕。在菜單編輯器的“Caption〞文本框中,為第一個(gè)菜單標(biāo)題鍵入希望在菜單欄上顯示的文本。如果希望某一字符成為該菜單項(xiàng)的訪問鍵,也可以在該字符前加上一個(gè)〔&〕字符。在菜單中,這一字符會(huì)自動(dòng)加上一條下劃線。在菜單編輯器的“Name〞文本框中,鍵入將用來在代碼中引用該菜單控件的名字。命名菜單控件的規(guī)那么如下:菜單中工程名稱應(yīng)當(dāng)唯一,但不同菜單中相似動(dòng)作工程可以重名。每一個(gè)工程名稱應(yīng)當(dāng)有一個(gè)用鍵盤選取命令的唯一的記憶訪問字符。訪問字符通常是菜單標(biāo)題的第一個(gè)字母;每個(gè)菜單標(biāo)題不能用同一個(gè)字符。如果命令在完成之前還需要附加信息,那么在其名稱后面應(yīng)當(dāng)有一個(gè)省略號〔…〕。單擊向左或向右箭頭按鈕,可以改變該控件的縮進(jìn)級。如果需要,還可以設(shè)置控件的其他屬性。創(chuàng)立新的菜單控件時(shí),選取“Next〞命令。單擊“Insert〞可以在現(xiàn)有的控件之間增加一個(gè)菜單控件。單擊向上與向下的箭頭按鈕,可以在現(xiàn)有菜單控件之中移動(dòng)控件。菜單控件創(chuàng)立好后,選取“OK〞可關(guān)閉菜單編輯器。創(chuàng)立的菜單標(biāo)題將顯示在窗體上。在設(shè)計(jì)時(shí),單擊一個(gè)菜單標(biāo)題可下拉其相應(yīng)的菜項(xiàng)。創(chuàng)立分隔符,如果在設(shè)計(jì)的菜單中創(chuàng)立分隔符條,只需在想要分隔開來的菜單項(xiàng)之間插入一個(gè)菜單控件。單擊左、右箭頭按鈕使新菜單項(xiàng)縮進(jìn)到與它要隔開的菜單項(xiàng)同級。然后在“Caption〞文本框中鍵入一個(gè)連字符〔-〕。設(shè)置“Name〞屬性?!癘K〞,關(guān)閉菜單編輯器。創(chuàng)立賦值訪問鍵和快捷鍵為了提高應(yīng)用程序的性能,為用戶提供最方便、快捷的操作,可以定義菜單的訪問鍵和快捷鍵,改良鍵盤對菜單命令的訪問。訪問鍵,要在菜單編輯器中給菜單控件賦值訪問鍵,先選取要賦值訪問鍵的菜單項(xiàng),在該菜單項(xiàng)“Caption〞框中,要在作為訪問鍵字符的前面鍵入一個(gè)〔&〕字符??旖萱I,快捷鍵提供了一種鍵盤單步的訪問方法,按下時(shí)會(huì)立刻運(yùn)行一個(gè)菜單項(xiàng)??旖萱I的賦值包括功能鍵與控制鍵的組合,如CTRL+F1鍵或CTRL+A鍵。他們出現(xiàn)在菜單中相應(yīng)菜單項(xiàng)的右邊。根據(jù)以上介紹的方法創(chuàng)立本設(shè)計(jì)的菜單結(jié)構(gòu)如圖5-3所示根本信息(&A)根本信息(&A)….貨物信息Ctrl+A….倉庫信息Ctrl+B….供給商信息Ctrl+C….往來客戶Ctrl+D….庫存狀況信息Ctrl+E….—….退出Ctrl+F單據(jù)中心(&B)….新增入庫單Ctrl+G….新增出庫單Ctrl+H….新增借入單Ctrl+I….新增借出單Ctrl+J….新增調(diào)撥單Ctrl+K….新增報(bào)損單Ctrl+L….—….入庫單管理Ctrl+M….出庫單管理Ctrl+N….借入單管理Ctrl+O….借出單管理Ctrl+P….調(diào)撥單管理Ctrl+Q….報(bào)損單管理Ctrl+R….—….進(jìn)行月盤點(diǎn)Ctrl+S查詢統(tǒng)計(jì)(&C)….單據(jù)查詢Ctrl+T….庫存查詢Ctrl+U….—….貨物出入統(tǒng)計(jì)Ctrl+V….職員操作統(tǒng)計(jì)Ctrl+W打印報(bào)表….打印入庫單Ctrl+X….打印出庫單Ctrl+Y….打印借入單Ctrl+Z….打印借出單Ctrl+F1….打印調(diào)撥單Ctrl+F2….打印報(bào)損單Ctrl+F3….—….打印月盤點(diǎn)Ctrl+F4….—….頁面設(shè)置Ctrl+F5視圖(&D)….工具欄Ctrl+F6….狀態(tài)欄Ctrl+F7維護(hù)設(shè)置(&E)….公司信息Ctrl+F8….職員信息Ctrl+F9….—….查看日志Ctrl+F11….數(shù)據(jù)去除Ctrl+F12….系統(tǒng)初始化Shift+F1….—….備份數(shù)據(jù)庫Shift+F2….復(fù)原數(shù)據(jù)庫Shift+F3….—….修改密碼Shift+F5….用戶管理Shift+F6幫助(&H)….關(guān)于倉庫管理系統(tǒng)F1圖5-3倉庫管理系統(tǒng)菜單結(jié)構(gòu)系統(tǒng)初始化菜單的代碼如下:PrivateDeclareFunctionGetWindowLib"user32"(ByValhwndAsLong,ByValwCmdAsLong)AsLongPublicSubInitPurview()'初始化17種權(quán)限狀態(tài)DimiAsIntegerFori=16To0Step-1IfGetBit(Purview,i+1)=0Then權(quán)限類別(16-i)=0Else權(quán)限類別(16-i)=1EndIfNextEndSubPrivateSubInitMenu()'根據(jù)用戶權(quán)限來初始化菜單If權(quán)限類別(3)=0ThenM月盤點(diǎn).Enabled=FalsetbToolBar.Buttons(4).Enabled=FalseEndIfIf權(quán)限類別(4)=0ThenM供給商.Enabled=False登記新供給商.MouseIcon=Picture1.MouseIconEndIfIf權(quán)限類別(5)=0ThenM往來客戶.Enabled=False登記新客戶.MouseIcon=Picture1.MouseIconEndIfIf權(quán)限類別(6)=0ThenM單據(jù)查詢.Enabled=FalseM庫存查詢.Enabled=FalseM貨物出入統(tǒng)計(jì).Enabled=FalseM職員操作統(tǒng)計(jì).Enabled=FalseL貨物出入統(tǒng)計(jì).MouseIcon=Picture1.MouseIconL職員操作統(tǒng)計(jì).MouseIcon=Picture1.MouseIconL單據(jù)查詢.MouseIcon=Picture1.MouseIconL庫存查詢.MouseIcon=Picture1.MouseIcontbToolBar.Buttons(5).Enabled=FalsetbToolBar.Buttons(8).Enabled=FalseEndIfIf權(quán)限類別(8)=0ThenM打印入庫單.Enabled=FalseM打印出庫單.Enabled=FalseM打印借入單.Enabled=FalseM打印借出單.Enabled=FalseM打印調(diào)拔單.Enabled=FalseM打印報(bào)損單.Enabled=FalseM打印月盤點(diǎn).Enabled=FalsetbToolBar.Buttons(10).Enabled=FalseEndIfIf權(quán)限類別(9)=0ThenM公司信息.Enabled=False修改公司信息.MouseIcon=Picture1.MouseIconEndIfIf權(quán)限類別(10)=0ThenM職員信息.Enabled=False登記新職員.MouseIcon=Picture1.MouseIconEndIfIf權(quán)限類別(11)=0ThenM倉庫信息.Enabled=False創(chuàng)立新倉庫.MouseIcon=Picture1.MouseIconEndIfIf權(quán)限類別(12)=0ThenM貨物信息.Enabled=False登記新貨物.MouseIcon=Picture1.MouseIconEndIfIf權(quán)限類別(13)=0ThenM數(shù)據(jù)去除.Enabled=FalseM系統(tǒng)初始化.Enabled=FalseEndIfIf權(quán)限類別(14)=0ThenM備份數(shù)據(jù)庫.Enabled=FalseM復(fù)原數(shù)據(jù)庫.Enabled=FalseM復(fù)原到昨天數(shù)據(jù)庫.Enabled=False備份數(shù)據(jù)庫.MouseIcon=Picture1.MouseIcon復(fù)原數(shù)據(jù)庫.MouseIcon=Picture1.MouseIconEndIfIf權(quán)限類別(15)=0ThenM查看日志.Enabled=False查看日志.MouseIcon=Picture1.MouseIcontbToolBar.Buttons(12).Enabled=FalseEndIfIf權(quán)限類別(16)=0ThenmnuUserManage.Enabled=FalseL用戶管理.MouseIcon=Picture1.MouseIconEndIfEndSub“菜單〞中的各個(gè)“子菜單〞的程序代碼如下:啟動(dòng)主窗體時(shí)的需要的代碼PrivateSubForm_Load()'初始化m_checkadom_checkado.ConnectionString=DataConnectStringm_checkado.Visible=False'每天首次運(yùn)行自動(dòng)備份數(shù)據(jù)庫fMainForm.m_checkado.RecordSource="select操作時(shí)間from系統(tǒng)日志orderby操作時(shí)間desc"IffMainForm.m_checkado.Recordset.RecordCount>0ThenDimtAsStringt=fMainForm.m_checkado.Recordset.Fields("操作時(shí)間").Value'如果今天從未有人登陸,備份數(shù)據(jù)庫IfInStr(1,t,Str(Date))<>1ThenBackupDataDataPath,App.Path+"\everyday.bkp"EndIfElseBackupDataDataPath,App.Path+"\everyday.bkp"EndIffMainForm.WriteLog("登陸系統(tǒng)")'寫入系統(tǒng)日志InitPurview'初始化各種權(quán)限類別InitMenu'初始化菜單'加載圖片Picture1.Picture=LoadPicture(App.Path+"\data\ground1.jpg")EndSub“根本信息〞菜單下的“退出〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“退出〞會(huì)退出系統(tǒng),但在此之前系統(tǒng)首先會(huì)寫入系統(tǒng)日志。PrivateSubForm_Unload(CancelAsInteger)fMainForm.WriteLog("退出系統(tǒng)")'寫入系統(tǒng)日志EndSubPrivateSubmnuFileExit_Click()UnloadMeEndSub“維護(hù)設(shè)置〞菜單下的“修改密碼〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“修改密碼〞會(huì)彈出修改當(dāng)前用戶密碼窗口。PrivateSubmnuModifyPassword_Click()PasModify.ShowvbModalEndSub“維護(hù)設(shè)置〞菜單下的“用戶管理〞子菜單的Click事件的程序代碼,如下。點(diǎn)擊“用戶管理〞會(huì)彈出用戶管理窗口。PrivateSubmnuUserManage_Click()用戶管理.ShowvbModalEndSub“幫助〞菜單下的“關(guān)于倉庫管理系統(tǒng)〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“關(guān)于倉庫管理系統(tǒng)〞會(huì)彈出系統(tǒng)幫助窗口。PrivateSubmnuHelpAbout_Click()frmAbout.ShowvbModal,MeEndSub“打印報(bào)表〞菜單下的“頁面設(shè)置〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“頁面設(shè)置〞會(huì)彈出頁面設(shè)置對話框。PrivateSubmnuFilePageSetup_Click()OnErrorResumeNextWithdlgCommonDialog.DialogTitle="頁面設(shè)置".CancelError=True.ShowPrinterEndWithEndSub“視圖〞菜單下的“狀態(tài)欄〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“狀態(tài)欄〞主窗體會(huì)隱藏狀態(tài)欄。PrivateSubmnuViewStatusBar_Click()sbStatusBar.Visible=True-sbStatusBar.VisiblemnuViewStatusBar.Checked=sbStatusBar.VisibleEndSub“視圖〞菜單下的“工具欄〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“工具欄〞主窗體會(huì)隱藏工具欄。PrivateSubmnuViewToolbar_Click()tbToolBar.Visible=True-tbToolBar.VisiblemnuViewToolbar.Checked=tbToolBar.VisibleEndSub“單據(jù)中心〞菜單下的“報(bào)損單管理〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“報(bào)損單管理〞會(huì)彈出報(bào)損單管理窗口。PrivateSubM報(bào)損單_Click()報(bào)損單.ShowvbModalEndSub“維護(hù)設(shè)置〞菜單下的“備份數(shù)據(jù)庫〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“備份數(shù)據(jù)庫〞系統(tǒng)會(huì)提示是否備份數(shù)據(jù)庫,如果點(diǎn)擊“是〞,系統(tǒng)會(huì)備份數(shù)據(jù)庫。PrivateSubM備份數(shù)據(jù)庫_Click()OnErrorGoTofailureWithdlgCommonDialog.DialogTitle="數(shù)據(jù)庫備份為..".ShowSaveIfLen(.filename)=0ThenExitSubIfBackupData(DataPath,.filename)=1ThenMsgBox"備份成功!"fMainForm.WriteLog("備份數(shù)據(jù)")'寫入系統(tǒng)日志Elsefailure:MsgBox"備份失敗!"EndIfEndWithEndSub“維護(hù)設(shè)置〞菜單下的“查看日志〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“查看日志〞會(huì)彈出查看日志窗口。PrivateSubM查看日志_Click()系統(tǒng)日志.ShowvbModalEndSub“打印報(bào)表〞菜單下的“打印報(bào)損單〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“打印報(bào)損單〞會(huì)彈出打印報(bào)損單窗口。PrivateSubM打印報(bào)損單_Click()DimfAsNew報(bào)損單f.打印報(bào)損單.left=f.B新增報(bào)損單.leftf.打印報(bào)損單.Top=f.B新增報(bào)損單.Topf.B新增報(bào)損單.Visible=Falsef.刪除報(bào)損單.Visible=Falsef.ShowvbModalUnloadfEndSub“打印報(bào)表〞菜單下的“打印出庫單〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“打印出庫單〞會(huì)彈出打印出庫單窗口。PrivateSubM打印出庫單_Click()DimfAsNew出庫單f.打印出庫單.left=f.B新增出庫單.leftf.打印出庫單.Top=f.B新增出庫單.Topf.B新增出庫單.Visible=Falsef.刪除出庫單.Visible=Falsef.退出出庫單.Visible=Falsef.ShowvbModalUnloadfEndSub“打印報(bào)表〞菜單下的“打印調(diào)拔單〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“打印調(diào)拔單〞會(huì)彈出打印調(diào)拔單窗口。PrivateSubM打印調(diào)拔單_Click()DimfAsNew調(diào)拔單f.打印調(diào)拔單.left=f.B新增調(diào)拔單.leftf.打印調(diào)拔單.Top=f.B新增調(diào)拔單.Topf.B新增調(diào)拔單.Visible=Falsef.刪除調(diào)拔單.Visible=Falsef.ShowvbModalUnloadfEndSub“打印報(bào)表〞菜單下的“打印借出單〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“打印借出單〞會(huì)彈出打印借出單窗口。PrivateSubM打印借出單_Click()DimfAsNew借出單f.打印借出單.left=f.B新增借出單.leftf.打印借出單.Top=f.B新增借出單.Topf.B新增借出單.Visible=Falsef.刪除借出單.Visible=Falsef.退出借出單.Visible=Falsef.ShowvbModalUnloadfEndSub“打印報(bào)表〞菜單下的“打印借入單〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“打印借入單〞會(huì)彈出打印借入單窗口。PrivateSubM打印借入單_Click()DimfAsNew借入單f.打印借入單.left=f.B新增借入單.leftf.打印借入單.Top=f.B新增借入單.Topf.B新增借入單.Visible=Falsef.刪除借入單.Visible=Falsef.退出借入單.Visible=Falsef.ShowvbModalUnloadfEndSub“打印報(bào)表〞菜單下的“打印入庫單〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“打印入庫單〞會(huì)彈出打印入庫單窗口。PrivateSubM打印入庫單_Click()DimfAsNew入庫單f.打印入庫單.left=f.B新增入庫單.leftf.打印入庫單.Top=f.B新增入庫單.Topf.B新增入庫單.Visible=Falsef.刪除入庫單.Visible=Falsef.退出入庫單.Visible=Falsef.ShowvbModalUnloadfEndSub“打印報(bào)表〞菜單下的“打印月盤點(diǎn)〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“打印月盤點(diǎn)〞會(huì)彈出打印月盤點(diǎn)窗口。PrivateSubM打印月盤點(diǎn)_Click()打印月盤點(diǎn).ShowvbModalEndSub“維護(hù)設(shè)置〞菜單下的“復(fù)原到昨天數(shù)據(jù)庫〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“復(fù)原到昨天數(shù)據(jù)庫〞會(huì)復(fù)原到昨天用戶使用的數(shù)據(jù)庫。PrivateSubM復(fù)原到昨天數(shù)據(jù)庫_Click()OnErrorGoTofailureIfMsgBox("復(fù)原數(shù)據(jù)庫將導(dǎo)致現(xiàn)在數(shù)據(jù)庫數(shù)據(jù)喪失,您確信要復(fù)原數(shù)據(jù)庫嗎?",vbYesNoOrvbQuestion)=vbNoThenExitSubIfResumeData(DataPath,App.Path+"\everyday.bkp")=1ThenInitAfterResume'初始化復(fù)原后的信息MsgBox"復(fù)原成功!"Elsefailure:MsgBox"復(fù)原失敗!"EndIfEndSub“維護(hù)設(shè)置〞菜單下的“復(fù)原數(shù)據(jù)〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“復(fù)原數(shù)據(jù)〞系統(tǒng)會(huì)復(fù)原你想復(fù)原的數(shù)據(jù)庫。PrivateSubM復(fù)原數(shù)據(jù)庫_Click()OnErrorGoTofailureWithdlgCommonDialog.DialogTitle="數(shù)據(jù)庫復(fù)原于...".ShowOpenIfLen(.filename)=0ThenExitSubIfMsgBox("復(fù)原數(shù)據(jù)庫將導(dǎo)致現(xiàn)在數(shù)據(jù)庫數(shù)據(jù)喪失,您確信要復(fù)原數(shù)據(jù)庫嗎?",vbYesNoOrvbQuestion)=vbNoThenExitSubIfResumeData(DataPath,.filename)=1ThenInitAfterResume'初始化復(fù)原后的信息MsgBox"復(fù)原成功!"Elsefailure:MsgBox"復(fù)原失敗!"EndIfEndWithEndSub“根本信息〞菜單下的“倉庫信息〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“倉庫信息〞會(huì)彈出倉庫信息窗口。PrivateSubM倉庫信息_Click()倉庫.ShowvbModalEndSub“單據(jù)中心〞菜單下的“出庫單管理〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“出庫單管理〞會(huì)彈出出庫單管理窗口。PrivateSubM出庫單_Click()出庫單.ShowvbModalEndSub“查詢統(tǒng)計(jì)〞菜單下的“單據(jù)查詢〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“單據(jù)查詢〞會(huì)彈出單據(jù)查詢窗口。PrivateSubM單據(jù)查詢_Click()單據(jù)查詢.ShowvbModalEndSub“單據(jù)中心〞菜單下的“調(diào)撥單管理〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“調(diào)撥單管理〞會(huì)彈出調(diào)撥單管理窗口。PrivateSubM調(diào)拔單_Click()調(diào)拔單.ShowvbModalEndSub“維護(hù)設(shè)置〞菜單下的“公司信息〞子菜單的Click事件的程序代碼發(fā)如下。點(diǎn)擊會(huì)彈出公司信息窗口。PrivateSubM公司信息_Click()公司信息.ShowvbModalEndSub“根本信息〞菜單下的“供給商信息〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“供給商信息〞會(huì)彈出供給商信息窗口。PrivateSubM供給商_Click()供給商.ShowvbModalEndSub“維護(hù)設(shè)置〞菜單下的“換用戶登錄〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“換用戶登錄〞會(huì)彈出換用戶登錄窗口。PrivateSubM換用戶登陸_Click()'啟動(dòng)登陸對話框DimfLoginAsNewfrmLoginfLogin.HelpContextID=2411fLogin.ShowvbModalIfNotfLogin.OKThenExitSub'登錄失敗,退出應(yīng)用程序EndIfUnloadfLoginUnloadMe'啟動(dòng)主窗口SetfMainForm=NewfrmMainfMainForm.ShowEndSub“查詢統(tǒng)計(jì)〞菜單下的“貨物出入統(tǒng)計(jì)〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“貨物出入統(tǒng)計(jì)〞會(huì)彈貨物出入統(tǒng)計(jì)窗口PrivateSubM貨物出入統(tǒng)計(jì)_Click()貨物出入統(tǒng)計(jì).ShowvbModalEndSub“根本信息〞菜單下的“貨物信息〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“貨物信息〞會(huì)彈出貨物信息窗口PrivateSubM貨物信息_Click()貨物信息.ShowvbModalEndSub“單據(jù)中心〞菜單下的“借出單管理〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“借出單管理〞會(huì)彈出借出單管理窗口PrivateSubM借出單_Click()借出單.ShowvbModalEndSub“單據(jù)中心〞菜單下的“借入單管理〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“借入單管理〞會(huì)彈出借入單管理窗口。PrivateSubM借入單_Click()借入單.ShowvbModalEndSub“查詢統(tǒng)計(jì)〞菜單下的“庫存查詢〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“庫存查詢〞會(huì)彈出庫存查詢窗口。PrivateSubM庫存查詢_Click()庫存查詢.ShowvbModalEndSub“根本信息〞菜單下的“庫存狀況信息〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“庫存狀況信息〞會(huì)彈出庫存狀況窗口。PrivateSubM庫存狀況_Click()庫存狀況.ShowvbModalEndSub“單據(jù)中心〞菜單下的“入庫單管理〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“入庫單管理〞會(huì)彈出入庫單管理窗口。PrivateSubM入庫單_Click()入庫單.ShowvbModalEndSub“維護(hù)設(shè)置〞菜單下的“數(shù)據(jù)去除〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“數(shù)據(jù)去除〞會(huì)彈數(shù)據(jù)去除窗口。PrivateSubM數(shù)據(jù)去除_Click()數(shù)據(jù)去除.ShowvbModalEndSub“根本信息〞菜單下的“往來客戶信息〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“往來客戶信息〞會(huì)彈出往來客戶窗口。PrivateSubM往來客戶_Click()客戶.ShowvbModalEndSub“維護(hù)設(shè)置〞菜單下的“系統(tǒng)初始化〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“系統(tǒng)初始化〞會(huì)彈出系統(tǒng)初始化對話框,如果用戶想系統(tǒng)初始化,就點(diǎn)擊“是〞。PrivateSubM系統(tǒng)初始化_Click()IfMsgBox("這將刪除您所有的數(shù)據(jù)信息,整個(gè)數(shù)據(jù)庫將全部清空,您確信要系統(tǒng)初始化嗎?",vbYesNoOrvbExclamation)=vbNoThenExitSubOnErrorResumeNext'刪除入庫單fMainForm.m_checkado.RecordSource="select*from入庫單"'刪除出庫單fMainForm.m_checkado.RecordSource="select*from出庫單"'刪除借入單fMainForm.m_checkado.RecordSource="select*from借入單"'刪除借出單fMainForm.m_checkado.RecordSource="select*from借出單"'刪除調(diào)拔單fMainForm.m_checkado.RecordSource="select*from調(diào)拔單"'刪除報(bào)損單fMainForm.m_checkado.RecordSource="select*from報(bào)損單"'刪除庫存狀況fMainForm.m_checkado.RecordSource="select*from庫存狀況"'刪除盤點(diǎn)單fMainForm.m_checkado.RecordSource="select*from盤點(diǎn)單"'刪除客戶fMainForm.m_checkado.RecordSource="select*from客戶"'刪除供給商fMainForm.m_checkado.RecordSource="select*from供給商"'刪除貨物信息fMainForm.m_checkado.RecordSource="select*from貨物信息"'刪除貨物類別fMainForm.m_checkado.RecordSource="select*from貨物類別"'刪除倉庫fMainForm.m_checkado.RecordSource="select*from倉庫"'刪除職員信息fMainForm.m_checkado.RecordSource="select*from職員信息"'刪除公司信息fMainForm.m_checkado.RecordSource="select*from公司信息"'刪除系統(tǒng)日志fMainForm.m_checkado.RecordSource="select*from系統(tǒng)日志"'刪除用戶管理fMainForm.m_checkado.RecordSource="select*from用戶管理"'增加一個(gè)管理員adminfMainForm.m_checkado.RecordSource="select*from用戶管理"fMainForm.m_checkado.Recordset.Fields("用戶名")="admin"fMainForm.m_checkado.Recordset.Fields("用戶密碼")=""fMainForm.m_checkado.Recordset.Fields("用戶權(quán)限")=131071'更改當(dāng)前登陸用戶信息UserName="admin":UserPas="":Purview=131071DimiAsIntegerFori=0To16權(quán)限類別(i)=1NextMsgBox"系統(tǒng)初始化成功!"EndSub“單據(jù)中心〞菜單下的“新增報(bào)損單〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“新增報(bào)損單〞會(huì)彈出新增報(bào)損單窗口。PrivateSubM新增報(bào)損單_Click()新增報(bào)損單.ShowvbModalEndSub“單據(jù)中心〞菜單下的“新增出庫單單〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“新增出庫單〞會(huì)彈出新增報(bào)損單窗口。PrivateSubM新增出庫單_Click()新增出庫單.ShowvbModalEndSub“單據(jù)中心〞菜單下的“新增調(diào)撥單〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“新增調(diào)撥單〞會(huì)彈出新增調(diào)撥單窗口。PrivateSubM新增調(diào)拔單_Click()新增調(diào)拔單.ShowvbModalEndSub“單據(jù)中心〞菜單下的“新增借出單〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“新增借出單〞會(huì)彈出新增借出單窗口。PrivateSubM新增借出單_Click()新增借出單.ShowvbModalEndSub“單據(jù)中心〞菜單下的“新增借入單〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“新增借入單〞會(huì)彈出新增借入單窗口。PrivateSubM新增借入單_Click()新增借入單.ShowvbModalEndSub“單據(jù)中心〞菜單下的“新增入庫單〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“新增入庫單〞會(huì)彈出新增入庫單窗口。PrivateSubM新增入庫單_Click()新增入庫單.ShowvbModalEndSub“單據(jù)中心〞菜單下的“進(jìn)行月盤點(diǎn)〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“進(jìn)行月盤點(diǎn)〞會(huì)彈出月盤點(diǎn)窗口。PrivateSubM月盤點(diǎn)_Click()月盤點(diǎn).ShowvbModalEndSub“查詢統(tǒng)計(jì)〞菜單下的“職員操作統(tǒng)計(jì)〞子菜單的Click事件的程序代碼如下。點(diǎn)擊“職員操作統(tǒng)計(jì)〞會(huì)彈出職員操作統(tǒng)計(jì)窗口。PrivateSubM職員操作統(tǒng)計(jì)_Click()職員操作統(tǒng)計(jì).ShowvbModalEndSub“維護(hù)設(shè)置〞菜單下“職員信息〞子菜單的Click事件程序代碼,點(diǎn)擊會(huì)進(jìn)入“職員信息〞窗口。PrivateSubM職員信息_Click()職員信息.ShowvbModalEndSub5.4創(chuàng)立主窗體工具欄同樣,熟悉Windows下應(yīng)用程序的用戶對工具欄也一定有比擬深的印象。在本系統(tǒng)中,它是用工具欄控件產(chǎn)生的,工具欄控件在主窗體上產(chǎn)生了很多按鈕對象,按鈕上顯示了文字、圖形。下面首先簡要介紹工具欄控件的常用屬性和事件。5.4.1工具欄控件常用屬性和事件1工具欄控件的常用屬性,工具欄控件常用的屬性有如下幾個(gè),同時(shí)也是本系統(tǒng)中用到的幾個(gè)屬性,主要有Align、ImageList、Index、ToolTipText、ShowTips、Wrappable、Image等。Align:讀出或設(shè)置對象在窗體中的顯示位置,它有5個(gè)值可供選擇,用來設(shè)置工具欄放置在窗體的上部、下部、左邊或右邊等。ImageList:讀出和設(shè)置與本控件相關(guān)聯(lián)的ImageList控件。該屬性被設(shè)置后,可以向工具欄按鈕中添加圖形。Index:控件名相同時(shí),用來產(chǎn)生一個(gè)數(shù)組標(biāo)識(shí)號。ToolTipText:設(shè)置鼠標(biāo)指針在工具欄某一按鈕暫停時(shí)所顯示的提示文本。ShowTips:設(shè)置是否顯示工具欄按鈕上的提示文本。Wrappable:設(shè)置如果窗口尺寸發(fā)生變化,是否自動(dòng)包括本控件按鈕。Image:用來設(shè)置按鈕中顯示的圖形,以0,1,2等來標(biāo)識(shí),ImageList控件中的圖形將按順序賦給不同的按鈕。2工具欄控件常用事件工具欄控件常用事件主要有ButtonClick和Click兩個(gè)。對于ButtonClick事件,當(dāng)單擊本控件之上的一個(gè)按鈕時(shí),該事件過程被執(zhí)行;對于Click,當(dāng)單擊本控件時(shí)進(jìn)行檢測。設(shè)置工具欄屬性向窗體添加工具欄控件后,然后按以下步驟操作:〔1〕設(shè)置Align屬性值為1,即工具攔放在窗體的頂部。〔2〕用鼠標(biāo)右鍵單擊工具欄對象,從彈出的菜單中選擇“屬性〞菜單項(xiàng)。彈出如圖5-4所示的“屬性頁〞對話框。圖5-4工具欄屬性對話框〔3〕單擊如圖5-4所示的“圖象列表〞列表框右邊的下拉箭頭,從下拉的列表中選擇ImageList。這樣ImageList控件就和“工具欄〞控件發(fā)生了聯(lián)系。注意:“工具欄〞控件按鈕使用圖形,所以要求必須已引入了ImageList控件,否那么,圖5-4中的“圖像列表〞框?qū)⒉荒茉O(shè)置成ImageList。另外選定了圖形列表控件后,ButtonHeight和ButtonWidth屬性值,由圖形的大小決定,用戶不要改變其設(shè)置?!?〕單擊圖5-4中“按鈕〞選項(xiàng)卡,“屬性頁〞對話框如圖5-5所示。單擊,單擊“插入〞按鈕后,“索引〞文本框中出現(xiàn)數(shù)字1,其它輸入框也變?yōu)榭捎谩_@樣就可以設(shè)置其上的屬性。假設(shè)“圖像〞輸入框設(shè)為1,即ImageList控件的第一個(gè)圖形作為按鈕1的圖形。重復(fù)上述步驟,添加其它按鈕到工具欄上,并設(shè)置相應(yīng)屬性。圖5-4
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 宜賓市荒山土地承包合同范本
- 動(dòng)漫作品授權(quán)合作合同范本
- 企業(yè)用人正式合同范例
- 淺析京劇發(fā)聲與民歌唱法美聲唱法的關(guān)系
- 加盟押金店合同范例
- 2025年度市政道路施工建設(shè)投資合作協(xié)議
- MW光伏電站項(xiàng)目EC總承包合同范本
- 三方合租協(xié)議合同范本
- 制砂機(jī)租賃合同范本
- 保險(xiǎn)內(nèi)勤銷售合同范例
- 餐飲服務(wù)與管理(高職)PPT完整全套教學(xué)課件
- 成人學(xué)士學(xué)位英語1000個(gè)高頻必考詞匯匯總
- 2023年菏澤醫(yī)學(xué)??茖W(xué)校單招綜合素質(zhì)模擬試題及答案解析
- 常見食物的嘌呤含量表匯總
- 人教版數(shù)學(xué)八年級下冊同步練習(xí)(含答案)
- SB/T 10752-2012馬鈴薯雪花全粉
- 2023年湖南高速鐵路職業(yè)技術(shù)學(xué)院高職單招(英語)試題庫含答案解析
- 濕型砂中煤粉作用及檢測全解析
- 積累運(yùn)用表示動(dòng)作的詞語課件
- 機(jī)動(dòng)車登記證書英文證書模板
- 第8課《山山水水》教學(xué)設(shè)計(jì)(新人教版小學(xué)美術(shù)六年級上冊)
評論
0/150
提交評論