版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 . . 22/22公司倉庫管理系統(tǒng)公司介紹與系統(tǒng)的需求分析1.1公司簡介佳雪公司是一個(gè)專銷電動機(jī)的公司,主要業(yè)務(wù)是進(jìn)行電動機(jī)的進(jìn)貨與分銷,作為一個(gè)銷售的中介公司,其要求有入庫與出庫的主要數(shù)據(jù)庫,可以簡單的記錄數(shù)據(jù),并且可以進(jìn)行多方面的查詢,使得公司有較詳細(xì)的數(shù)據(jù)統(tǒng)計(jì)與分析。其主要業(yè)務(wù)如以下圖所示:1. 廠商 倉庫 顧客圖1.1.1 2.查詢功能按型號查詢有兩個(gè)結(jié)果:A生成 入庫量、出庫量、節(jié)余量 B生成 兩個(gè)數(shù)據(jù)來源表,包括出庫來源與入庫來源;按單位查詢 結(jié)果:生成 型號、產(chǎn)品名稱、時(shí)間(入/出庫)、單價(jià) 再生成出入庫的兩個(gè)基本情況表,包括供應(yīng)商和顧客的基本情況,如型號、出/入庫時(shí)間,單價(jià),
2、發(fā)票編號、結(jié)帳情況; 3.本系統(tǒng)主要運(yùn)用Visual Basic的嵌數(shù)據(jù)庫Access來記錄數(shù)據(jù);4.產(chǎn)品信息: 序號(自動生成)、型號(文本)、入庫時(shí)間(日期)、出庫時(shí)間(日期)、數(shù)量(數(shù)字)、發(fā)票編號(文本)、單價(jià)(貨幣)、廠商名稱(文本)、供應(yīng)商名稱(文本)、廠商與供應(yīng)商的(數(shù)字)、結(jié)帳情況(是/否)是為0,否為-12分析與描述輸入數(shù)據(jù)一.根據(jù)1.1章節(jié)的具體要求,總結(jié)出以下的數(shù)據(jù)流程:顧客出庫入庫供應(yīng)商型號刪除修改單位增加刪除修改增加出庫查詢 入庫 圖1.2.1 數(shù)據(jù)流程二.根據(jù)以上情況,按要求設(shè)計(jì)了幾個(gè)相關(guān)的數(shù)據(jù)庫 表:出庫、入庫 查詢:查詢結(jié)余、出庫查詢、入庫查詢、型號出庫查詢、型
3、號入庫查詢主要的出庫表屬性如以下表所示:字段名屬性字段大小序號自動生成長整型型號文本50產(chǎn)品名稱文本50出庫數(shù)量數(shù)字長整型單價(jià)貨幣自動小數(shù)出庫時(shí)間日期年-月-日發(fā)票編號文本50顧客文本50結(jié)帳情況是/否2 表1.2.1由于入庫表與出庫想類似,所以在此不做詳細(xì)介紹。為了方便查詢,因此在出庫與入庫的基礎(chǔ)上增加了幾個(gè)查詢表,具體字段如下:查詢結(jié)余:型號、產(chǎn)品名稱、出庫數(shù)量、入庫數(shù)量出庫查詢:顧客名稱、型號、出庫時(shí)間、單價(jià)、出庫數(shù)量OF SUM、發(fā)票編號、結(jié)帳情況入庫查詢:供應(yīng)商名稱、型號、入庫時(shí)間、單價(jià)、入庫數(shù)量OF SUM、發(fā)票編號、結(jié)帳情況出庫型號查詢:型號、產(chǎn)品名稱、顧客名稱、單價(jià)、發(fā)票編號、
4、結(jié)帳情況入庫型號查詢:型號、產(chǎn)品名稱、供應(yīng)商名稱、單價(jià)、發(fā)票編號、結(jié)帳情況1.3數(shù)據(jù)庫的主要特點(diǎn)數(shù)據(jù)庫中的每一個(gè)表都必須符合下面幾個(gè)特征:*表中的每一個(gè)單元的容只有一個(gè)值*所有字段的名稱都不一樣*記錄的前后次序和字段的左右次序可以變化,不受限制*數(shù)據(jù)庫中的表的上下次序不受限制*表中不應(yīng)有容完全一樣的記錄*表中的每一個(gè)字段都必須有一樣的數(shù)據(jù)類型使用Visual Basic開發(fā)應(yīng)用程序的兩個(gè)主要思想:*可視設(shè)計(jì)*事件驅(qū)動編程Visual Basic應(yīng)用程序不同于其他語言開發(fā)的單一性程序。使用Visual Basic編程時(shí),必須首先確定應(yīng)用程序如何與用戶交互,如鼠標(biāo)單擊,用戶必須編寫代碼控制這些事件
5、的響應(yīng)方法。使用Visual Basic開發(fā)數(shù)據(jù)庫應(yīng)用程序的一般步驟如下所示:建立數(shù)據(jù)庫建立用戶界面編寫代碼調(diào)試運(yùn)行編譯應(yīng)用程序發(fā)布應(yīng)用程序界面設(shè)計(jì)控件的位置界面元素的一致性保持界面的簡明使用顏色和圖象:增加視覺的感染力圖象和圖標(biāo):增加應(yīng)用程序的視覺上的趣味選取字體Visual Basic應(yīng)用程序的結(jié)構(gòu): 由于Visual Basic應(yīng)用程序是基于對象的,所以應(yīng)用程序的代碼結(jié)構(gòu)就是該程序在屏幕上物理表示的模型。根據(jù)定義,對象包含數(shù)據(jù)和代碼。在屏幕上看到的窗體代表屬性,這些屬性定義了窗體的外觀和在特性。本設(shè)計(jì)主要是運(yùn)用Data控件。 Data控件主要是打開、訪問并操作已有的數(shù)據(jù)庫,它是Visua
6、l Basic 訪問數(shù)據(jù)庫的最常用的工具之一。由于Data控件使用Microsoft的Jet引擎來實(shí)現(xiàn)數(shù)據(jù)訪問(與MicrosoftAccess 所用的數(shù)據(jù)庫引擎一樣),使用戶可以無縫地訪問很多標(biāo)準(zhǔn)的數(shù)據(jù)庫格式,而且無需編寫任何代碼就可以創(chuàng)建數(shù)據(jù)應(yīng)用程序,因此這種Visual Basic部的Data控件最合適小的(桌面)數(shù)據(jù)庫,諸如Access和ISAM數(shù)據(jù)庫等。 由于Data控件是Visual Basic 的部控件,因此可以直接在標(biāo)準(zhǔn)工具箱中找到該控件。 在程序運(yùn)行過程中,只要用鼠標(biāo)單擊控件上的箭頭按鈕,系統(tǒng)將自動修改Data控件指向的記錄和顯示在約束控件中的數(shù)據(jù),而不需要編寫任何代碼。 可
7、以將多個(gè)Data控件同時(shí)添加到一個(gè)工程甚至是同一個(gè)窗體中。另外,每個(gè)控件可以連接到不同的數(shù)據(jù)庫或同一個(gè)數(shù)據(jù)庫的不同表上,還可以和代碼一起查詢滿足的語句的表的記錄集。 使用Data控件可以顯示、編輯和更新來字各種已有的數(shù)據(jù)庫信息。此外,還可以訪問和操作遠(yuǎn)程的開放式數(shù)據(jù)庫連接。除了使用Data控件之外,還運(yùn)用的Visual Basic 6.0的新增控件功能,Dblistbox它不象標(biāo)準(zhǔn)的列表框或組合框那樣需要使用AddItem方法添加列表項(xiàng)。另外,它們還可以有選擇地把某個(gè)選定的字段傳遞給另一個(gè)Data控件,使得它對于“查找表”應(yīng)用程序很理想。與其他的約束控件不同,這些控件可以同時(shí)顯示多個(gè)記錄。約束
8、數(shù)據(jù)列表控件類似于普通的列表框控件,可以顯示記錄集中的數(shù)據(jù),網(wǎng)格中的每一行代表記錄集中的一個(gè)記錄。第二章 管理系統(tǒng)的設(shè)計(jì)與分析2.1進(jìn)入界面由于系統(tǒng)的的界面比較單一,因此在設(shè)計(jì)過程中運(yùn)用了許多網(wǎng)上下載的圖片來增添界面的可觀性。在考慮到操作員的技術(shù)水平有限,因此在控件方面只運(yùn)用了COMMAND,這樣不僅能是界面清楚,更能是操作者很快學(xué)會,簡單易懂。圖2.1.1是進(jìn)入本系統(tǒng)的狀態(tài)圖,單擊“確定”可以進(jìn)入界面,如按“系統(tǒng)信息”的話,將顯示本系統(tǒng)的具體軟硬件情況。 圖2.1.1當(dāng)圖2.1.1中的“確定”按鈕被激活時(shí),將進(jìn)入圖2.1.3的屏幕,界面的圖片是圖片引入的,接著將進(jìn)入正式的編輯或查詢狀態(tài)。具體
9、的系統(tǒng)情況如圖2.1.2所示:圖2.1.2圖2.1.32入庫界面當(dāng)激活入庫按鈕時(shí)將出現(xiàn)以下的界面(圖2.2.1) 圖2.2.1入庫窗體(圖2.2.1)與其各個(gè)控件的主要屬性 控件類型控件名主要屬性FormFrmrsg1Caption=“入庫情況”DataData1Databasename=“Adb2.mdb”Recordsettype=1DynasetCaption=“入庫情況”CommandDialogCommand1Caption=“上一個(gè)”Command2Caption=“下一個(gè)”Command3Caption=“確定”Command4Caption=“取消”Command5Captio
10、n=“退出”Command6Caption=“增加”Command7Caption=“修改”Command8Caption=“刪除”LableLable1Caption=“序號”Lable2Caption=“型號”Lable3Caption=“產(chǎn)品名稱”Lable4Caption=“數(shù)量”Lable5Caption=“單價(jià)”Lable6Caption=“入庫時(shí)間”Lable7Caption=“發(fā)票名稱”Lable8Caption=“供應(yīng)商名稱”Lable9Caption=“”Lable10Caption=“結(jié)帳情況”TextText1Caption=“序號”Datasource=“data1”
11、Text2Caption=“型號”Datasource=“data1”Text3Caption=“產(chǎn)品名稱”Datasource=“data1”Text4Caption=“數(shù)量”Datasource=“data1”Text5Caption=“單價(jià)”Datasource=“data1”Text6Caption=“入庫時(shí)間”Datasource=“data1”Text7Caption=“發(fā)票名稱”Datasource=“data1”Text8Caption=“供應(yīng)商名稱”Datasource=“data1”Text9Caption=“”Datasource=“data1”Text10Caption
12、=“結(jié)帳情況”Datasource=“data1”表2.2.1控件說明增加新記錄當(dāng)單擊“確定”按鈕后,“確定”和“取消”兩個(gè)按鈕顯示,同時(shí)使其他的按鈕不可見,這樣做是為了防止用戶的誤操作。其主要程序如下:Private Sub Command5_Click()xg = True顯示“確定”和“取消”兩個(gè)按鈕Command3.Visible = TrueCommand4.Visible = True取消其他按鈕功能Command5.Enabled = FalseCommand6.Enabled = FalseCommand7.Enabled = FalseCommand8.Enabled = F
13、alseCommand1.Enabled = FalseCommand2.Enabled = FalseData1.Recordset.AddNew 添加一個(gè)新記錄Text1.SetFocus 光標(biāo)在TEXT1處 end sub修改記錄在調(diào)用EDIT方法之前,約束控件中的數(shù)據(jù)是只讀的,用戶無法對其進(jìn)行修改。調(diào)用了EDIT方法后,用戶可以在約束控件中修改記錄的值。如果在對當(dāng)前記錄進(jìn)行修改之前修改,未使用EDIT方法,將發(fā)生運(yùn)行時(shí)錯(cuò)誤。其主要程序如下:Private Sub Command6_Click()xg = TrueCommand3.Enabled = TrueCommand4.Enabl
14、ed = True取消其他按鈕功能Command5.Enabled = FalseCommand6.Enabled = FalseCommand7.Enabled = FalseCommand8.Enabled = FalseCommand1.Enabled = FalseCommand2.Enabled = False對記錄進(jìn)行編輯Data1.Recordset.EditText1.SetFocusEnd Sub刪除記錄當(dāng)用戶單擊“刪除”命令按鈕時(shí),為了防止用戶誤刪除數(shù)據(jù),程序?qū)⒄{(diào)用Msgbox()函數(shù)以彈出對話框,詢問用戶是否真的要刪除該記錄。如果用戶單擊對話框上的“確定”按鈕,程序調(diào)用記
15、錄集的Delete方法,將記錄集的當(dāng)前記錄設(shè)置為空,并從原始的表中刪掉當(dāng)前記錄。但是刪除的記錄仍然是當(dāng)前記錄,只是將其變?yōu)榱藷o效的記錄,任何對其的引用都會產(chǎn)生錯(cuò)誤。其主要程序如下:Private Sub Command6_Click()xg = TrueCommand3.Enabled = TrueCommand4.Enabled = True取消其他按鈕功能Command5.Enabled = FalseCommand6.Enabled = FalseCommand7.Enabled = FalseCommand8.Enabled = FalseCommand1.Enabled = Fals
16、eCommand2.Enabled = False對記錄進(jìn)行編輯Data1.Recordset.EditText1.SetFocusEnd SubPrivate Sub Command7_Click()ss = MsgBox(真的要刪除嗎?, vbYesNo + vbInformation, 刪除記錄)如果要刪除If (ss = vbYes) ThenData1.Recordset.DeleteData1.Recordset.MoveNextIf Data1.Recordset.EOF ThenData1.Recordset.MoveLastCommand2.Enabled = FalseEn
17、d IfEnd IfEnd Sub移動數(shù)據(jù)當(dāng)用戶單擊“上一個(gè)”和“下一個(gè)”按鈕是,系統(tǒng)將自動轉(zhuǎn)換數(shù)據(jù),但注意,當(dāng)移至第一個(gè)記錄時(shí),“下一個(gè)”按鈕將失效;移至最后一個(gè)記錄是,“上一個(gè)”按鈕也將失效。其中在設(shè)計(jì)程序時(shí),為了防止“NO Current Record”這樣的錯(cuò)誤,在移動記錄指針時(shí)測試記錄集的BOF 和EOF屬性。如果單擊“上一個(gè)”和“下一個(gè)”命令按鈕將導(dǎo)致記錄指針指向空指針,則分別調(diào)用Movefirst和Movelast方法,這是防止“NO Current Record”錯(cuò)誤出現(xiàn)的最簡單和最有效的方法。與此同時(shí),如果記錄集的BOF屬性為True,則置“上一個(gè)”命令按鈕為非激活狀態(tài),是用
18、戶無法再單擊該按鈕。同樣,當(dāng)記錄集的BOF屬性為True時(shí),置“下一個(gè)”命令按鈕為非激活狀態(tài)。其主要程序如下:Private Sub Command1_Click()xg = FalseData1.Recordset.MovePrevious如果是第一個(gè)記錄,BOF屬性為TRUEIf Data1.Recordset.BOF ThenData1.Recordset.MoveFirstCommand1.Enabled = FalseElseCommand2.Enabled = TrueCommand1.Enabled = TrueEnd IfEnd SubPrivate Sub Command2_
19、Click()xg = FalseData1.Recordset.MovePrevious如果當(dāng)前記錄是記錄集中最后一個(gè)記錄,EOF屬性為TRUEIf Data1.Recordset.BOF ThenData1.Recordset.MoveLastCommand2.Enabled = FalseElseCommand2.Enabled = TrueCommand1.Enabled = TrueEnd IfEnd Sub用Updata方法確認(rèn)增加和修改當(dāng)用戶修改和增加完一個(gè)記錄的數(shù)據(jù)后,需要將數(shù)據(jù)保存到數(shù)據(jù)庫中??梢酝ㄟ^調(diào)用記錄集的Updata方法把數(shù)據(jù)保存到數(shù)據(jù)庫中。單擊“確定”按鈕時(shí),記錄將
20、被記如數(shù)據(jù)庫。其主要程序如下:Private Sub Command3_Click()On Error GoTo error1xg = TrueData1.Recordset.UpdateCommand3.Enabled = FalseCommand4.Enabled = FalseCommand2.Enabled = TrueCommand1.Enabled = TrueCommand4.Enabled = TrueCommand5.Enabled = TrueCommand6.Enabled = TrueCommand7.Enabled = TrueCommand8.Enabled = T
21、rueExit Suberror1: MsgBox Err.Description, vbOKOnly, 錯(cuò)誤提示End Sub用CancelUpdata方法放棄增加和修改如果用戶修改了約束控件里的數(shù)據(jù)后,在沒有單擊“確定”命令按鈕之前,想放棄剛才的增加或修改,則可以單擊“取消”命令。 由于其程序與Updata方法相似,因此不做重復(fù)解釋。定義Data_Validata事件過程對于一個(gè)新記錄或編輯的記錄,如果不能維護(hù)引用完整性或不能反映該舊路的實(shí)體原型,那么它就是無效的,并且破壞了數(shù)據(jù)庫的完整性。為了在“入庫情況”表中建立一個(gè)有效的記錄,就必須要有主關(guān)鍵字段“型號”的值。因此,對已經(jīng)存在和新增加
22、的舊路都要先測試其“型號”字段之后才可以執(zhí)行更新操作。其主要程序如下:當(dāng)約束控件中容改變時(shí)If Text2.DataChanged ThenSave = TrueIf Data1.Recordset.RecordCount 1 ThenCommand1.Enabled = TrueCommand2.Enabled = TrueEnd IfElseIf Text2.Text = And xg = True Then ss = MsgBox(必須要有型號!, vbOKOnly + vbInformation, 提示) Action = False Command3.Visible = True C
23、ommand4.Visible = True Command1.Visible = True Command2.Visible = True Command7.Visible = True Command8.Visible = True Command5.Visible = True Command6.Visible = True End If End If If Action = data_actionunload Or Action = data_actionclose Then Save = True End IfEnd Sub2.3出庫界面當(dāng)單擊“出庫”按鈕的時(shí)候,系統(tǒng)將進(jìn)入出庫信息輸
24、入界面,如(圖2.3.1)所示,其基本情況與入庫相類似,依次不做具體介紹。圖2.3.12.4查詢界面當(dāng)用戶單擊“查詢”按鈕時(shí),系統(tǒng)將出現(xiàn)密碼登陸框,因?yàn)椴樵兊氖遣抠Y料,因此,需身份驗(yàn)證,如圖2.4.1圖2.4.1隨后將進(jìn)入查詢功能,如圖2.4.2圖2.4.2用戶可根據(jù)不同需要進(jìn)行“按型號”和“按單位”的查詢。單擊“按型號”,系統(tǒng)將進(jìn)入以型號為關(guān)鍵字段的查詢,如圖2.4.3。其中根據(jù)SQL語句的查詢,選出出庫型號與入庫型號一樣的記錄,統(tǒng)計(jì)出入庫與出庫的總數(shù)量,然后可按“上一個(gè)”和“下一個(gè)”進(jìn)行查詢,也可按出庫與入庫分別查詢記錄。圖2.4.3當(dāng)用戶單擊“查詢出庫”按鈕是,系統(tǒng)進(jìn)入界面,如圖2.4.
25、4圖2.4.4圖2.4.4窗體與其上面控件的屬性設(shè)置控件類型控件名主要屬性FormfrmdblistCaption=“查詢出庫”DataData1DatabaseName=“a:db2.mdb”RecordsetType=1RecordSource=“出庫型號”FrameFrame1Caption=“具體情況”LableLable1Cqption=“產(chǎn)品名稱”Lable2Cqption=“單價(jià)”Lable3Cqption=“發(fā)票編號”Lable4Cqption=“顧客名稱”Lable5Cqption=“結(jié)帳情況”TextText1Datafield=“具體情況”Datasource=“Data
26、1”Text2Datafield=“具體情況”Datasource=“Data1”Text3Datafield=“具體情況”Datasource=“Data1”Text4Datafield=“具體情況”Datasource=“Data1”Text5Datafield=“具體情況”Datasource=“Data1”DBlistDblist1Listfield=“型號”Rowsource=“Data1”表2.4.1單擊Dblist框中的型號,F(xiàn)rame中將自動顯示記錄,以供用戶查詢。當(dāng)用戶單擊“查詢?nèi)霂臁卑粹o時(shí),將出現(xiàn)圖2.4.5的界面。圖2.4.5再回到查詢界面,單擊“按單位”按鈕,此時(shí)系統(tǒng)將進(jìn)入按單位查詢的截面,如圖2.4.6圖2.4.6分別按“顧客”和“供應(yīng)商”按鈕,系統(tǒng)將分別進(jìn)入不同的查詢界面,如圖2.4.7和圖2.4.8由于以下兩個(gè)窗口的屬性以與其設(shè)計(jì)方法類似與圖4.3,因此也不做詳細(xì)介紹。圖2.4.7圖2.4.82.5退出程序再回到登陸主窗口,(圖2.1.3),單擊“退出”按鈕,系統(tǒng)將退出程序,顯示以下窗口(圖2.5.1),單擊圖中的“再見”,此程序也將結(jié)束。圖2.5.1第三章
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 吊車租賃合同模板
- 房產(chǎn)抵押借款合同范例樣式
- 2024正規(guī)個(gè)人房屋租賃合同格式(簡單版)
- 街區(qū)店鋪?zhàn)赓U協(xié)議
- 合作事宜協(xié)議書模板
- 個(gè)人買房協(xié)議書
- 2024股份合作協(xié)議書合同范本
- 2024競爭性招標(biāo)合同范文
- 城市更新項(xiàng)目拆除合同
- 工程工具租賃合同
- 浙江省金華市蘭溪市2023-2024學(xué)年五年級上學(xué)期期中數(shù)學(xué)試卷
- 藥店掛名負(fù)責(zé)人免責(zé)協(xié)議書
- 7.2維護(hù)祖國統(tǒng)一 (課件) 2024-2025學(xué)年九年級道德與法治上冊 (統(tǒng)編版)
- 體育場館運(yùn)營與管理手冊
- 2024年中國民航科學(xué)技術(shù)研究院社會招聘工作人員16人歷年高頻500題難、易錯(cuò)點(diǎn)模擬試題附帶答案詳解
- 廣東省東莞市2023-2024學(xué)年六年級上學(xué)期語文期中試卷(含答案)
- DGTJ08-9-2023 建筑抗震設(shè)計(jì)標(biāo)準(zhǔn)
- 國家電網(wǎng)招聘之通信類通關(guān)題庫(附答案)
- 小小理財(cái)師教學(xué)課件
- 2024新蘇教版一年級數(shù)學(xué)冊第五單元第1課《認(rèn)識11~19》課件
- 知識產(chǎn)權(quán)法(四川師范大學(xué))智慧樹知到答案2024年四川師范大學(xué)
評論
0/150
提交評論