庫(kù)存管理系統(tǒng)(下)_第1頁(yè)
庫(kù)存管理系統(tǒng)(下)_第2頁(yè)
庫(kù)存管理系統(tǒng)(下)_第3頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余13頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

庫(kù)存管理系統(tǒng)(下)

第五章系統(tǒng)實(shí)施5.1、開發(fā)工具簡(jiǎn)介本系統(tǒng)的前端開發(fā)工具,我選擇了VisualBasic6.0,后臺(tái)數(shù)據(jù)庫(kù)采用Access2000。5.1.1VB簡(jiǎn)介Visual意為“可視化的”,指的是一種開發(fā)圖形用戶界面的方法,所以VisualBasic是基于Basic的可視化的程序設(shè)計(jì)語(yǔ)言。在VisualBasic中,一方面繼承了Basic所具有的程序設(shè)計(jì)語(yǔ)言簡(jiǎn)單易用的特點(diǎn),另一方面在其編程系統(tǒng)中采用了面向?qū)ο?、事件?qū)動(dòng)的編程機(jī)制,用一種巧妙的方法把Windows的編程復(fù)雜性封裝起來,提供了一種所見即所得的可視化程序設(shè)計(jì)方法。5.1.2VB功能特點(diǎn)具有面向?qū)ο蟮目梢暬O(shè)計(jì)工具在VB中,應(yīng)用面向?qū)ο蟮某绦蛟O(shè)計(jì)方法(OOP),把程序和數(shù)據(jù)封裝起來視為一個(gè)對(duì)象,每個(gè)對(duì)象都是可視的。程序員在設(shè)計(jì)時(shí)只需用現(xiàn)有工具根據(jù)界面設(shè)計(jì)要求,直接在屏幕上“畫”出窗口、菜單、按鈕、滾動(dòng)條等不同類型的對(duì)象,并為每個(gè)對(duì)象設(shè)置屬性。程序員的編程工作僅限于編寫相關(guān)對(duì)象要完成的功能程序,因而程序設(shè)計(jì)的效率可大大提高。事件驅(qū)動(dòng)的編程機(jī)制事件驅(qū)動(dòng)是非常適合圖形用戶界面的編程方式。在圖形用戶界面的應(yīng)用程序中,是由用戶的動(dòng)作即事件掌握著程序運(yùn)行的流向,每個(gè)事件都能驅(qū)動(dòng)一段程序的運(yùn)行。程序員只要編寫響應(yīng)用戶動(dòng)作的代碼,而各個(gè)動(dòng)作之間不一定有聯(lián)系。提供了易學(xué)易用的應(yīng)用程序集成開發(fā)環(huán)境在VB集成開發(fā)環(huán)境中,用戶可設(shè)計(jì)界面、編寫代碼、調(diào)試程序,直至把應(yīng)用程序編譯成可執(zhí)行文件在Windows中運(yùn)行,使用戶在友好的開發(fā)環(huán)境中工作。結(jié)構(gòu)化的程序設(shè)計(jì)語(yǔ)言VB具有豐富的數(shù)據(jù)類型和結(jié)構(gòu)化程序結(jié)構(gòu),作為一種程序設(shè)計(jì)語(yǔ)言,它還有如下一些特點(diǎn):強(qiáng)大的數(shù)值和字符串處理功能豐富的圖形指令,可方便地繪制各種圖形提供靜態(tài)和動(dòng)態(tài)數(shù)組,有利于簡(jiǎn)化內(nèi)存的管理過程可遞歸調(diào)用,使程序更為簡(jiǎn)練支持隨機(jī)文件和順序文件的訪問提供了一個(gè)可供應(yīng)用程序調(diào)用的包含多種類型的圖標(biāo)庫(kù)具有完善的運(yùn)行出錯(cuò)處理支持多種數(shù)據(jù)庫(kù)系統(tǒng)的訪問利用數(shù)據(jù)控件可訪問的數(shù)據(jù)庫(kù)系統(tǒng)有:MicrosoftAccess、Btrieve、DBASE、MicrosfotFoxPro和Paradox等,也可以訪問MicrosoftExcel、Lotus1-2-3等多種電子表格。支持動(dòng)態(tài)數(shù)據(jù)交換(DDE)、動(dòng)態(tài)鏈接庫(kù)(DLL)和對(duì)象的鏈接與嵌入(OLE)技術(shù)完備的HELP聯(lián)機(jī)幫助功能與Windows環(huán)境下的軟件一樣,在VB中,利用幫助菜單和F1功能鍵,用戶可以隨時(shí)方便地得到所需要的幫助信息。VB幫助窗口中顯示了有關(guān)的示例代碼,通過復(fù)制、粘貼操作可獲取大量的示例代碼,為用戶的學(xué)習(xí)和使用提供了極大的方便。VB程序設(shè)計(jì)的概念就是面向?qū)ο蟮母拍睿瑢?duì)象就是數(shù)據(jù)(DATA)和代碼(CODE)互相結(jié)合的綜合體。Windows上面的每一個(gè)圖標(biāo),包括窗口本身都是對(duì)象,如果沒有任何事情發(fā)生,對(duì)象處于停頓狀態(tài)。當(dāng)存在外來事件時(shí),程序段執(zhí)行,它的執(zhí)行是由外來事件決定的。因此是“事件”驅(qū)動(dòng)的。編寫VB程序較為簡(jiǎn)單,首先將各個(gè)對(duì)象放在空白窗體上,然后將程序代碼分別添加給對(duì)象或圖標(biāo),將它們組合起來就可以隨意運(yùn)行了。在VB中,窗體實(shí)際上是一個(gè)對(duì)象,VB的窗體含有許多內(nèi)嵌特性,這使得用戶界面部分的建立像是從一個(gè)目錄中挑選一個(gè)個(gè)合適的控件,而不是從零開始一步一步地建立控件。這種開發(fā)者能親眼看到的程序設(shè)計(jì)過程就是“可視化程序設(shè)計(jì)”(VisualProgramming)5.1.3VB中的基本概念

對(duì)象:面向?qū)ο缶幊蹋∣OP)的提法大家一定也很耳熟,雖然VisualBasic并不是完全的面向?qū)ο缶幊?,但也利用了?duì)象編程技術(shù)。對(duì)象簡(jiǎn)單地說就是大家經(jīng)常看到的各種窗口、按鈕、文本框甚至打印機(jī)等。

屬性:如同電視有黑白、彩色之分一樣,作為對(duì)象的Windows中的窗口也是有大有小,文本框的位置不可能完全一樣,菜單要顯示出不同的功能,這些都是由對(duì)象的屬性決定的。不同對(duì)象的屬性可能不同。屬性一般決定了對(duì)象的位置、大小、顯示等情況。

方法:就是對(duì)象能夠做的事,如打印機(jī)對(duì)象就有打?。≒rint)方法、窗口對(duì)象支持隱藏(Hide)方法、很多對(duì)象支持移動(dòng)(Move)方法等。

事件:就是對(duì)象對(duì)用戶各種操作的反映情況。如用戶用鼠標(biāo)按一下按鈕,就會(huì)觸發(fā)按鈕的“按”(Click)事件。

控件:控件就是VisualBasic提供的編程用的模塊,與對(duì)象有直接的聯(lián)系,如同積木的木塊,使用這樣的控件,就可以像拼圖或堆積木一樣“搭”、“拼”你的程序界面。VisualBasic中使用控件,簡(jiǎn)化了Windows中的窗口、按鈕等對(duì)象的編程設(shè)計(jì)。每個(gè)控件都有各自的屬性、事件及方法。只需修改這些特征你就可以隨心所欲地編程了。最重要的是,你可以利用成千上萬的各種擴(kuò)充的控件來快速構(gòu)造幾乎能滿足你任何要求的程序。例如,如果你不滿意Windows簡(jiǎn)陋的媒體播放器,你就可以使用VB的多媒體控件在1小時(shí)以內(nèi)設(shè)計(jì)一個(gè)完全自己風(fēng)格的能夠播放CD、VCD的多媒體播放器,而功能完全與之相當(dāng)。5.1.4Access2000數(shù)據(jù)庫(kù)簡(jiǎn)介作為Microsoft的office套件產(chǎn)品之一,access已經(jīng)成為世界上最流行的桌面數(shù)據(jù)庫(kù)系統(tǒng)。Access與許多優(yōu)秀的關(guān)系數(shù)據(jù)庫(kù)一樣,可以讓你很容易地連接相關(guān)的信息而且還對(duì)其他的數(shù)據(jù)庫(kù)系統(tǒng)有所補(bǔ)充。它能操作其它來源的資料,包括許多流行的PC數(shù)據(jù)庫(kù)程序(如dBASE,Paradox,MicrosoftFoxPro)和服務(wù)器、小型機(jī)及大型機(jī)上的許多SQL數(shù)據(jù)庫(kù)。Access還完全支持Microsoft的OLE技術(shù)。Access還提供windows操作系統(tǒng)的高級(jí)應(yīng)用程序開發(fā)系統(tǒng)。Access與其它數(shù)據(jù)庫(kù)開發(fā)系統(tǒng)之間相當(dāng)顯著的區(qū)別就是:您不用寫一行代碼,就可以在很短的時(shí)間里開發(fā)出一個(gè)功能強(qiáng)大而且相當(dāng)專業(yè)的數(shù)據(jù)庫(kù)應(yīng)用程序,并且這一愉快的過程是完全可視的!如果您能給它加上簡(jiǎn)短的VBA代碼,那么您的程序決不比專業(yè)程序員潛心開發(fā)的程序差。Access的總體結(jié)構(gòu)Access將所有有名字的東西都成為對(duì)象(object),在Access2000中,最重要的對(duì)象有表,查詢,窗體,報(bào)表,宏和模塊。表用戶定義的存儲(chǔ)資料的對(duì)象。每一個(gè)表都包含有關(guān)某個(gè)主體的信息。表包括存儲(chǔ)不同種類資料的字段(列),而記錄(行)則收集特定主體實(shí)例的所有信息。查詢?yōu)閬碜砸粋€(gè)或多個(gè)表的資料提供定制視圖的對(duì)象。在Access中,可以利用圖形化的實(shí)例查詢機(jī)制(QBE)或通過SQL語(yǔ)句來建立查詢。你可以在查詢中選擇、更新、插入或刪除資料,也可以用查詢來建立新表。窗體窗體是主要的人機(jī)接口。大量的操作(幾乎所有)都要通過窗體完成。窗體通過運(yùn)行宏(macro)或VisualBasicforApplicatinns(VBA)過程,來響應(yīng)大量的事件。Access2000為我們提供了強(qiáng)大的(同時(shí)也是相當(dāng)方便的向?qū)В﹣斫?biāo)準(zhǔn)的Windows窗體。報(bào)表為格式化、計(jì)算、打印選定資料而設(shè)計(jì)的對(duì)象。它是衡量一個(gè)優(yōu)秀的數(shù)據(jù)庫(kù)的重要標(biāo)準(zhǔn)(有時(shí)甚至是唯一的標(biāo)準(zhǔn))。宏為了響應(yīng)已定義的事件,需要讓Access去執(zhí)行一個(gè)或多個(gè)操作,而宏就是對(duì)這些操作的結(jié)構(gòu)化的定義對(duì)象。它可以讓你像堆積木一樣建立一個(gè)功能強(qiáng)大的程序,而無須寫大量的代碼。模塊包括用VBA編碼的定制過程的一個(gè)對(duì)象。模塊提供了獨(dú)立的動(dòng)作流以捕獲錯(cuò)誤,而宏做不到。模塊能直接響應(yīng)窗體或報(bào)表事件,也可以從應(yīng)用程序的任何地方被調(diào)用。Adodc1.RecordSource=frmLogin.Adodc1.RecordSourceAdodc1.RefreshSetText4.DataSource=Adodc1Text4.DataField="密碼"IfText1=""ThenMsgBox"請(qǐng)輸入原密碼!",,"修改密碼"ExitSubElseIfText1.Text<>Adodc1.Recordset.Fields("密碼")ThenMsgBox"原密碼錯(cuò)誤!",,"修改密碼"ExitSubElseIfText2=""OrText3=""ThenMsgBox"請(qǐng)輸入新密碼?。?,,"修改密碼"ExitSubElseIfText2<>Text3ThenMsgBox"密碼不一致??!",,"修改密碼"ExitSubElseText4.Text=Text2.TextAdodc1.Recordset.MoveFirstMsgBox"密碼修改成功?。?,,"修改密碼"UnloadMeEndIfDimI,JAsIntegerDimSTRAsStringIfText1.Text=""OrText2=""OrCombo1.Text=""OrText4=""OrText5=""OrText6=""OrText7=""ThenMsgBox"請(qǐng)輸入完整信息!"ExitSubElse將記錄存入入庫(kù)記錄表設(shè)備入庫(kù)表.datPrimaryRS.Recordset.Fields("設(shè)備號(hào)")=Text1.Text設(shè)備入庫(kù)表.datPrimaryRS.Recordset.Fields("入庫(kù)數(shù)量")=Text2.Text設(shè)備入庫(kù)表.datPrimaryRS.Recordset.Fields("入庫(kù)時(shí)間")=Combo1.Text設(shè)備入庫(kù)表.datPrimaryRS.Recordset.Fields("供應(yīng)商")=Text4.Text設(shè)備入庫(kù)表.datPrimaryRS.Recordset.Fields("供應(yīng)商電話")=Text5.Text設(shè)備入庫(kù)表.datPrimaryRS.Recordset.Fields("價(jià)格")=Text6.Text設(shè)備入庫(kù)表.datPrimaryRS.Recordset.Fields("采購(gòu)員")=Text7.TextMsgBox"已經(jīng)成功入庫(kù)!"EndIf設(shè)備入庫(kù)表.Adodc1.Refresh設(shè)備入庫(kù)表.DataGrid1.RefreshIf設(shè)備入庫(kù)表.Adodc1.Recordset.RecordCount>0Then將記錄加入現(xiàn)有庫(kù)存表中設(shè)備入庫(kù)表.Text9.Text=CInt(設(shè)備入庫(kù)表.Text9.Text)+CInt(Text2.Text)設(shè)備入庫(kù)表.Text9.RefreshJ=設(shè)備入庫(kù)表.Text9設(shè)備入庫(kù)表.Adodc1.Recordset.MoveFirst設(shè)備入庫(kù)表.Adodc1.Recordset.Fields.Refresh設(shè)備入庫(kù)表.DataGrid1.RefreshMsgBox"現(xiàn)有庫(kù)存量為:"&JElseSTR="現(xiàn)有庫(kù)存表中無此設(shè)備!"&vbCrLf&"請(qǐng)?jiān)谠O(shè)備代碼表和現(xiàn)有庫(kù)存表中手動(dòng)添加記錄!!"MsgBoxSTRLoadfrm現(xiàn)有庫(kù)存表frm現(xiàn)有庫(kù)存表.ShowCallfrm現(xiàn)有庫(kù)存表.Command1_ClickFrmAddNewEqu.Text1.Text=frmInput.Text1.TextFrmAddNewEqu.Text2.Text=frmInput.Text2.TextLoadfrm設(shè)備代碼表frm設(shè)備代碼表.ShowEndIfEndSubPrivateSubcmdDelete_Click()刪除入庫(kù)表中記錄OnErrorGoToDeleteErrDimYesNoAsStringYesNo=MsgBox("刪除",vbYesNo,"刪除記錄")IfYesNo=vbYesThenWithdatPrimaryRS.Recordset.Delete.MoveNextIf.EOFThen.MoveLastEndWithElseExitSubEndIfDeleteErr:MsgBoxErr.DescriptionEndSubPrivateSubcmdUpdate_Click()更新紀(jì)錄程序OnErrorGoToUpdateErrdatPrimaryRS.Recordset.UpdateBatchadAffectAllExitSubUpdateErr:MsgBoxErr.DescriptionPrivateSubCommand1_Click()設(shè)備出庫(kù)程序Dimi,J,kAsIntegerDimSTRAsStringfrm設(shè)備出庫(kù)表.Adodc1.RecordSource="select*from現(xiàn)有庫(kù)存表where設(shè)備號(hào)='"&Text1.Text&"'"frm設(shè)備出庫(kù)表.Adodc1.Refreshfrm設(shè)備出庫(kù)表.DataGrid1.RefreshIfIsNumeric(Text2)=FalseThenMsgBox"數(shù)量必須是數(shù)字!"ExitSubEndIfIfText1.Text=""OrText2=""OrCombo1.Text=""OrText4=""OrText5=""OrText6=""OrText7=""ThenMsgBox"請(qǐng)輸入完整信息!"ExitSubElseIffrm設(shè)備出庫(kù)表.Adodc1.Recordset.RecordCount<=0ThenSTR="現(xiàn)有庫(kù)存表中無此設(shè)備!請(qǐng)檢查輸入是否正確?。?MsgBoxSTRExitSubElsefrm設(shè)備出庫(kù)表.datPrimaryRS.Recordset.Fields("設(shè)備號(hào)")=Text1.Textfrm設(shè)備出庫(kù)表.datPrimaryRS.Recordset.Fields("出庫(kù)數(shù)量")=Text2.Textfrm設(shè)備出庫(kù)表.datPrimaryRS.Recordset.Fields("出庫(kù)時(shí)間")=Combo1.Textfrm設(shè)備出庫(kù)表.datPrimaryRS.Recordset.Fields("經(jīng)手人")=Text4.Textfrm設(shè)備出庫(kù)表.datPrimaryRS.Recordset.Fields("領(lǐng)取人")=Text5.Textfrm設(shè)備出庫(kù)表.datPrimaryRS.Recordset.Fields("使用部門")=Text6.Textfrm設(shè)備出庫(kù)表.datPrimaryRS.Recordset.Fields("用途")=Text7.TextMsgBox"已經(jīng)成功存入設(shè)備出庫(kù)表庫(kù)!"EndIfIffrm設(shè)備出庫(kù)表.Adodc1.Recordset.RecordCount>0Thenk=CInt(frm設(shè)備出庫(kù)表.Text9.Text)-CInt(Text2.Text)Ifk>=0Thenfrm設(shè)備出庫(kù)表.Text9.Text=CInt(frm設(shè)備出庫(kù)表.Text9.Text)-CInt(Text2.Text)frm設(shè)備出庫(kù)表.Text9.RefreshJ=frm設(shè)備出庫(kù)表.Text9frm設(shè)備出庫(kù)表.Adodc1.Recordset.MoveFirstfrm設(shè)備出庫(kù)表.Adodc1.Recordset.Fields.Refreshfrm設(shè)備出庫(kù)表.DataGrid1.RefreshMsgBox"現(xiàn)有庫(kù)存量為:"&JElseMsgBox"現(xiàn)有庫(kù)存量不足!請(qǐng)輸入合適數(shù)量!!"ExitSubEndIfElseSTR="現(xiàn)有庫(kù)存表中無此設(shè)備!請(qǐng)檢查輸入是否正確??!"MsgBoxSTREndIfEndSubPrivateSubcmdDelete_Click()刪除出庫(kù)記錄OnErrorGoToDeleteErrDimYesNoAsStringYesNo=MsgBox("刪除",vbYesNo,"刪除記錄")IfYesNo=vbYesThenWithdatPrimaryRS.Recordset.Delete.MoveNextIf.EOFThen.MoveLastEndWithElseExitSubEndIfDeleteErr:MsgBoxErr.DescriptionEndSub更新記錄程序同入庫(kù)的更新程序相同,在此略5.2.5設(shè)備采購(gòu)模塊實(shí)現(xiàn),程序略主要程序PrivateSubcmdAdd_Click()添加設(shè)備OnErrorGoToAddErrdatPrimaryRS.Recordset.AddNewExitSubAddErr:MsgBoxErr.DescriptionEndSub5.2.8庫(kù)存報(bào)警模塊實(shí)現(xiàn)主要程序PrivateSubCommand1_Click()顯示高于最大警戒庫(kù)存的設(shè)備datPrimaryRS.RecordSource="select*from現(xiàn)有庫(kù)存表where現(xiàn)有庫(kù)存>最大庫(kù)存"datPrimaryRS.RefreshgrdDataGrid.RefreshIfdatPrimaryRS.Recordset.RecordCount>0ThenBeepMsgBox"表中設(shè)備已過量!"ElseMsgBox"沒有設(shè)備庫(kù)存過量!"EndIfEndSubPrivateSubCommand2_Click()顯示低于于最小警戒庫(kù)存的設(shè)備datPrimaryRS.RecordSource="select*from現(xiàn)有庫(kù)存表where現(xiàn)有庫(kù)存<最小庫(kù)存"datPrimaryRS.RefreshgrdDataGrid.RefreshIfdatPrimaryRS.Recordset.RecordCount>0ThenBeepMsgBox"表中設(shè)備庫(kù)存量已過警戒線!請(qǐng)采購(gòu)!!"ElseMsgBox"沒有設(shè)備庫(kù)存量過少!"EndIfEndsubPrivateSubTimer1_Timer()自動(dòng)報(bào)警程序frmAlarm.datPrimaryRS.RecordSource="select*from現(xiàn)有庫(kù)存表where現(xiàn)有庫(kù)存>最大庫(kù)存"frmAlarm.datPrimaryRS.RefreshIffrmAlarm.datPrimaryRS.Recordset.RecordCount>0ThenBeepMsgBox"有設(shè)備庫(kù)存超過警戒庫(kù)存!"&vbCrLf&"請(qǐng)查看庫(kù)存報(bào)警記錄"Timer1.Enabled=F

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論