版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、學校代碼:12904學 號:1004109112中圖分類: 密 級:無吉林農業(yè)工程職業(yè)技術學院畢 業(yè) 論 文藥品庫房管理系統(tǒng)學生姓名: 指導教師: 所在學院(系):信息工程系學科專業(yè):計算機信息管理吉林農業(yè)工程職業(yè)技術學院中國四平2013年5月題 目:藥品庫房管理系統(tǒng)摘 要在藥店里,藥品庫房管理是一項非常重要的工作,使用人工方式管理各項品信息不僅效率低下,而且容易出錯、安全性很差。并且在實際操作中,數(shù)據(jù)的查找和維護都不容易實現(xiàn)。藥品庫房管理系統(tǒng),就是為了解決這些問題而設計的。其目的是實現(xiàn)藥品信息管理和出入庫記錄的快速高效檢索,使操作簡單安全,提高工作效率和質量。本系統(tǒng)的主要功能是完成品庫房管理
2、的日常工作,包括材料的入庫、出庫以及庫存材料信息的管理維護等。目 錄第一章 技術背景和分析.1第二章 系統(tǒng)實施.1 2.1 系統(tǒng)設計.1 2.1.1系統(tǒng)分析.2 用戶需求分析.2 系統(tǒng)可行性分析.2 2.1.2系統(tǒng)功能模塊劃分.3 2.2數(shù)據(jù)庫設計.4 2.2.1數(shù)據(jù)庫需求分析.4 2.2.2數(shù)據(jù)庫邏輯設計.4 2.2.3數(shù)據(jù)庫實現(xiàn).5 2.3表單設計.7 2.3.1材料信息維護表單.7 2.3.2材料信息查詢表單.14 2.3.3出入庫管理表單.15 2.3.4用戶向導制作報表.23 2.3.5主表單設計.25 2.4主控程序設計.26第三章 問題討論.27 3.
3、1系統(tǒng)功能設計的不完善.27 3.2代碼維護.27 3.3數(shù)據(jù)維護.27 3.3.1數(shù)據(jù)庫的安全問題.27 3.3.2數(shù)據(jù)的安全問題.27第四章 總結.284.1論文總結 284.2工作展望 28參考文獻 29 致謝30 第一章 技術背景和分析visual foxpro是為數(shù)據(jù)庫結構和應用程序開發(fā)而設計的功能強大的面向對象的軟件。無論是組織信息、運行查詢、創(chuàng)建集成的關系型數(shù)據(jù)庫系統(tǒng),還是為最終用戶編寫功能全面的數(shù)據(jù)管理應用程序,visual foxpro都可以提管理數(shù)據(jù)所需的工具,可以在應用程序或數(shù)據(jù)庫開發(fā)的任何一個領域中提供幫助。本系統(tǒng)使用visual foxpro來設計開發(fā)的原因是visu
4、al foxpro具有三大特點。一、強大的管理功能vfp提了一種稱為“項目管理器”(program manager)的管理工具,可供用戶對所開發(fā)項目中的數(shù)據(jù)、文檔、源代碼和類庫(class library)等資源進行集中高效的管理,開發(fā)與維護均更加方便。二、大量使用可視化的界面操作工具vfp 6.0提供向導(wizard)、 設計器(designer)、生成器(builder)等3類界面操作工具,達40種之多。它們普遍采用圖形界面,能幫助用戶簡便快捷地完成各種查詢和設計任務。vfp的設計器普遍配有工具欄和彈出式的快捷菜單。每個工具按鈕對應一項功能;用戶可通過它們方便地完成操作或設計控件,不必編
5、程或很少編程即可實現(xiàn)美觀實用的應用程序界面。大多數(shù)設計器還提快捷菜單,內含最常用的菜單選項,供用戶隨時調用。三、支持面向對象的程序設計vfp除繼續(xù)使用傳統(tǒng)的面向過程的程序設計外,還支持面向對象的程序設計。允許用戶對“對象”(object)和“類”(class)進行定義,并編寫相應的代碼。由于vfp預先定義和提供了一批基類,用戶可以在基類的基礎上定義自己的類和子類(subclass),從而利用類的繼承性(inheritance),減少編程的工作量,加快軟件的開發(fā)過程。使用結構化的程序設計,同時應用面向對象的程序設計,構成了vfp程序設計的特點,同時為用戶的編程帶來了很大的方便。第二章 系統(tǒng)實施2
6、.1系統(tǒng)設計本系統(tǒng)設計包括兩個部分:系統(tǒng)分析和系統(tǒng)功能模塊設計。2.1.1系統(tǒng)分析用戶需求分析某藥店根據(jù)業(yè)務發(fā)展的要求,選定建立一個“藥品庫房管理系統(tǒng)”,以取代人工管理。開發(fā)目的如下:l、必須要指定的專門人員才能對藥品倉庫的日常事務進行管理。2、能夠對藥品庫房內的有關各種藥品材料的數(shù)據(jù)進行輸入、修改與查詢。3、當有藥品入庫或出庫時,能夠更新藥品的數(shù)據(jù)進行輸入、修改與查詢。4、要求有專門的報表存儲藥品材料的出入庫信息,能夠打印報表。 系統(tǒng)可行性分析1、四項基本內容的實現(xiàn)用戶在該藥品庫房管理系統(tǒng)中需要的四項基本內容完全可以利用vfp進行的相關設置(主要是表單設置)來加以
7、實現(xiàn)。例如可以用vfp進行登錄界面設計,在表單上添加命令按鈕以實現(xiàn)對用戶身份的驗證,達到用戶要求的“必須要指定的專門人才對藥品倉庫的日常事務進行管理”的目的。2、數(shù)據(jù)庫分析藥店中所有藥品材料的信息都可以在vfp項目管理器的數(shù)據(jù)庫中建立與維護。該藥品倉庫管理系統(tǒng)查詢藥品信息只需要兩張數(shù)據(jù)表(即材料信息表和出入庫信息表)就可以滿足需求。3、系統(tǒng)的發(fā)布及其運行環(huán)境。(1)系統(tǒng)的發(fā)布:vfp項目管理器提供了一個管理應用系統(tǒng)的集成環(huán)境,而且vfp提供的安裝向導,支持用戶為所開發(fā)的項目創(chuàng)建一套“安裝(磁)盤”,供系統(tǒng)發(fā)布使用。(2)系統(tǒng)的運行環(huán)境:操作系統(tǒng)windows9x系列、用戶自定義安裝需要85mb
8、硬盤空間,完全安裝需要90mb硬盤空間,內存要求16mb以上。推薦使用vga或更高分辨率的顯示器。2.1.2 系統(tǒng)功能模塊劃分根據(jù)以上分析,可以進行系統(tǒng)的功能模塊劃分,如圖21所示: 圖21系統(tǒng)功能模塊功能模塊劃分圖中各個模塊的功能如下:1、登錄界面通過輸入管理員的用戶名和密碼進入系統(tǒng)。2、主表單用戶可以在主表單上根據(jù)需要進行選擇以實現(xiàn)各種不同的操作。3、庫存材料信息的維護新材料入庫時,系統(tǒng)允許管理員添加新材料的記錄。材料出庫或產品過期需要清除時,管理員可以刪除產品信息。記錄有誤時管理員可以修改數(shù)據(jù)表中的記錄。4、庫存材料信息的查詢信息查詢是倉庫管理系統(tǒng)的重要組成部分。用戶可以按照材料編號和材
9、料名稱等查詢條件查詢倉庫中的材料信息。5、材料的入庫、出庫新產品或材料需要出入庫時,管理員可以直接進行出入庫操作;出入庫操作后,程序自動修改庫存材料的信息。6、報表打印功能可以打印庫存表,出入庫記錄的報表。2.2 數(shù)據(jù)庫設計2.2.1數(shù)據(jù)庫需求分析根據(jù)上一節(jié)的系統(tǒng)分析,本系統(tǒng)主要是實現(xiàn)倉庫藥品信息和出入庫信息的管理。因此,該藥品倉庫管理系統(tǒng)的數(shù)據(jù)關系比較簡單,只需要兩張數(shù)據(jù)表:材料信息表和出入庫記錄信息表。2.2.2 數(shù)據(jù)庫邏輯設計本系統(tǒng)中需要兩個數(shù)據(jù)表:材料信息表和出入庫信息表,數(shù)據(jù)表的字段和結構如表1和表2所示:表1材料信息表表2出入庫信息表2.2.3 數(shù)據(jù)庫實現(xiàn)本系統(tǒng)開發(fā)中,首先創(chuàng)建庫房
10、管理系統(tǒng)的數(shù)據(jù)庫,然后在數(shù)據(jù)庫中創(chuàng)建需要的數(shù)據(jù)表,為數(shù)據(jù)表添加記錄。如果需要,還可以設計視圖和存儲過程以及觸發(fā)器等。下面設計本系統(tǒng)數(shù)據(jù)庫,詳細步驟如下:1、創(chuàng)建項目文件“庫房管理.pjx”,保存路徑為project庫房管理系統(tǒng)。2、在該項目中新建數(shù)據(jù)庫“倉庫管理”,保存路徑為project倉庫管理系統(tǒng)data。3、在數(shù)據(jù)庫中新建材料信息表,保存路徑為project倉庫管理系統(tǒng)data材料信息.dbf。在table designer的fields選項卡中根據(jù)表1的內容設置數(shù)據(jù)表的字段及其屬性,如22圖所示:圖22 “材料信息”表的字段設置切換到indexes選項卡,設置表索引。如圖23所示。將“
11、材料編號”設置為主索引,索引類型為primary。將“材料名稱”設置為普通索引,索引類型為regular。圖23 “材料信息”表的索引設置關閉table designer,在“材料信息”表中添加記錄。具體做法是:在project designer中選中材料信息表,單擊browse按鈕,瀏覽數(shù)據(jù)表。然后在visual foxpro 6.0的主窗口中選取table | append new record菜單命令,在數(shù)據(jù)表中添加新的記錄。出入庫信息的創(chuàng)建方法與材料信息表相似,保存路徑也與材料信息表相同。表的字段設置和索引分別如圖24、圖25所示:圖24 “出入庫信息”表的字段設置圖25 “出入庫信息
12、”表的索引設置表建立完成后,打開database designer,創(chuàng)建數(shù)據(jù)表之間的關聯(lián)關系。其結果如圖26所示。其中,材料信息表和出入庫信息表之間通過索引“材料編號”相關聯(lián)。圖26 數(shù)據(jù)表的關聯(lián)關系至此,數(shù)據(jù)庫和數(shù)據(jù)表的設計完成。下面進入庫房管理系統(tǒng)的表單設計。2.3 表單設計本系統(tǒng)主要功能模塊的實現(xiàn)由4個表單完成,分別是:材料信息維護表單、材料信息查詢表單、出入庫管理表單和用于選擇操作類型的主界面。2.3.1 材料信息維護表單材料信息維護表單的功能主要是完成材料信息的添加、修改和刪除等操作。1、材料信息維護表單設計在項目中新建表單,保存路徑為“project倉庫管理系統(tǒng)forms材料信息.
13、scx”,在表單的data environment中添加“材料信息”表。在表單上添加控件并設置控件的屬性,得到如圖27所示的表單。圖27材料信息維護表單整個“材料信息維護”表單分為3部分,最上面的一部分是在一個container控件中顯示當前材料記錄的信息,如材料編號、材料名稱、規(guī)格、單位和單價等。中間是4個命令按鈕分別表示第一條記錄、上一條記錄、下一條記錄、和最后一條記錄。下面是維護操作功能按鈕,包括添加、修改、刪除、保存和退出5種功能按鈕。2、添加響應代碼下面為表單添加響應代碼,實現(xiàn)上述各項功能?!笆子涗洝卑粹o。單擊按鈕時,顯示“材料信息”表的第一記錄。即表中第一條記錄被設為當前記錄。該按
14、鈕的click事件代碼如下:go topthisform.refresh“末記錄”按鈕。單擊按鈕時,顯示“材料信息”表的最后一條記錄,即表中最后一條記錄被設置為當前記錄。該按鈕的click事件代碼如下:go bottomthisform.refresh“上一條”按鈕。單擊按鈕時,顯示當前記錄上一條記錄。該按鈕的click事件代碼如下:thisform.text1.readonly=.t.thisform.text2.readonly=.t.thisform.text3.readonly=.t.thisform.text4.readonly=.t.thisform.text5.readonly=
15、.t. thisform.text6.readonly=.t. thisform.text7.readonly=.t.thisform.text8.readonly=.t.thisform.edit1.readonly=.t.&設置各text box和edit的readonly屬性if eof() go bottomelse skip 1endifthisform.refresh“下一條”按鈕。單擊按鈕時,顯示當前記錄的下一條記錄。該按鈕的click事件代碼如下:thisform.text1.readonly=.t.thisform.text2.readonly=.t.thisform.tex
16、t3.readonly=.t.thisform.text4.readonly=.t.thisform.text5.readonly=.t.thisform.text6.readonly=.t.thisform.text7.readonly=.t.thisform.text8.readonly=.t.thisform.edit1.readonly=.t.&設置各text box控件的屬性if eof() go topelse skip 1endifthisform.refresh“添加”按鈕。單擊按鈕時,完成材料添加功能,在材料信息表中加入一條新記錄。該按鈕的click事件代碼如下:go bot
17、tomtempnum=val(材料信息.材料編號)&獲取最后一條記錄的材料編號字段append blankgo bottomreplace 材料信息.材料編號 with alltrim(str(tempnum+1)&在表尾添加一條新記錄mand1.enabled=.f.mand2.enabled=.f.mand3.enabled=.f.mand4.enabled=.f.mand5.enabled=.f.mand6.enabled=.f.mand7.enabled=.f.mand8.enabled=.f.mand9.enabled=.f.&設置各按鈕的有效狀態(tài),在添加新記錄的過程中,為防止出錯,
18、應設置除“保存”按鈕之外的其他按鈕為無效。這樣,在輸入完成后,只能使用“保存”按鈕來保存記錄。thisform.text1.readonly=.f.thisform.text2.readonly=.f.thisform.text3.readonly=.f.thisform.text4.readonly=.f.thisform.text5.readonly=.f.thisform.text6.readonly=.f.thisform.text7.readonly=.f.thisform.text8.readonly=.f.thisform.edit1.readonly=.f.&設置各textbo
19、x控件的屬性thisform.refresh“修改”按鈕。單擊按鈕時,修改當前記錄。該按鈕的click事件代碼如下:mand1.enabled=.f.mand2.enabled=.f.mand3.enabled=.f.mand4.enabled=.f.mand5.enabled=.f.mand6.enabled=.f.mand7.enabled=.f.mand8.enabled=.f.mand9.enabled=.f.thisform.text1.readonly=.f.thisform.text2.readonly=.f.thisform.text3.readonly=.f.thisform
20、.text4.readonly=.f.thisform.text5.readonly=.f.thisform.text6.readonly=.f.thisform.text7.readonly=.f.thisform.text8.readonly=.f.thisform.edit1.readonly=.f.thisform.refresh&本段代碼主要功能是設置表單上各控件的可讀寫狀態(tài)。“刪除”按鈕。單擊按鈕時,刪除表中當前記錄。該按鈕的click事件代碼如下:tempstr=messagebox(“是否刪除記錄?”,4+32+256,”刪除對話框”)if tempstr=6set exclu
21、sive ondeletepackset exclusive offthisform.refreshendif&在刪除記錄之前,首先設置表的操作方式為exclusive(獨占方式),然后用delete語句為當前記錄加上刪除標記,最后使用pack語句刪除有標記的記錄。“保存”按鈕。單擊按鈕時,將表單中用戶輸入的信息保存到“材料信息”表。該按鈕的click事件代碼如下:dimension aaa(9)&定義數(shù)組aaa(1)=thisform.text1.valueaaa(2)=thisform.text2.valueaaa(3)=thisform.text3.valueaaa(4)=thisfor
22、m.text4.valueaaa(5)=thisform.text5.valueaaa(6)=thisform.text6.valueaaa(7)=thisform.text7.valueaaa(8)=thisform.text8.valueaaa(9)=thisform.text9.value&將表單中的輸入值存儲到數(shù)組中replace 材料信息.材料編號 with aaa(1)replace 材料信息.規(guī)格 with aaa(2)replace 材料信息.單價 with aaa(3)replace 材料信息.產地 with aaa(4)replace 材料信息.生產廠家 with aaa(
23、5)replace 材料信息.材料名稱 with aaa(6)replace 材料信息.單位 with aaa(7)replace 材料信息.數(shù)量 with aaa(8)replace 材料信息.備注 with aaa(9)&用數(shù)組修改表記錄的各字段mand1.enabled=.t.mand2.enabled=.t.mand3.enabled=.t.mand4.enabled=.t.mand5.enabled=.t.mand6.enabled=.t.mand7.enabled=.t.mand8.enabled=.t.mand9.enabled=.t.&設置各按鈕的有效狀態(tài)thisform.te
24、xt1.readonly=.t.thisform.text2.readonly=.t.thisform.text3.readonly=.t.thisform.text4.readonly=.t.thisform.text5.readonly=.t.thisform.text6.readonly=.t.thisform.text7.readonly=.t.thisform.text8.readonly=.t.thisform.edit1.readonly=.t.thisform.refresh&設置textbox控件為只讀“退出”按鈕。單擊該按鈕,退出表單。該按鈕的click事件代碼如下:thi
25、sform.release另外表單初始化時“保存”按鈕應該為不可用,且顯示的內容應該處于只讀狀態(tài),因此為表單的init事件添加如下代碼:thisform.text1.readonly=.t.thisform.text2.readonly=.t.thisform.text3.readonly=.t.thisform.text4.readonly=.t.thisform.text5.readonly=.t.thisform.text6.readonly=.t.thisform.text7.readonly=.t.thisform.text8.readonly=.t.thisform.edit1.r
26、eadonly=.t.mand8.enabled=.f.設計完成后,運行表單。如圖28所示:圖28材料信息維護表單的運行結果2.3.2材料信息查詢表單材料信息查詢表單的功能是實現(xiàn)材料信息的快速檢索。當用戶輸入材料編號或名稱后,可快速檢索出所有符合條件的材料記錄。1、材料信息查詢表單設計新建表單“材料信息查詢”,保存路徑為“project庫房管理系統(tǒng)forms材料信息查詢.scx”,在表單的data environment中添加“材料信息表”。在表單上添加控件并設置相應的屬性,得到如圖29所示的表單。圖29材料信息查詢表單在表單上添加了一個grid控件,用來顯示查詢的結果,將grid的reado
27、nly屬性設置為.t.。并且通過一個combo下拉框控件來實現(xiàn)多依據(jù)的查詢,本系統(tǒng)中根據(jù)材料編號和材料名稱實現(xiàn)名稱查詢,將combo的readonly屬性設置為.t.。2、添加響應代碼combo用于選擇查詢依據(jù)。此處用戶分別選擇“材料編號”或“材料名稱”進行查詢。因此,在表單初始化時,要為combo box控件輸入初始值。為存儲查詢結果,還要定義一個在表單運行過程中有效的cursor公共變量。因此,為表單的init事件添加如下代碼:public tempcursorthisform.combo1.additem(“材料編號”)thisform.combo1.additem(“材料名稱”)thi
28、sform.refresh“查詢”按鈕完成材料信息的查詢。根據(jù)用戶選擇的查詢依據(jù)和輸入的查詢數(shù)據(jù)的值,在表中查找符合條件的記錄,顯示在表格中?!安樵儭卑粹o的click事件代碼如下:if thisform.combo1.text=”材料編號” select *;from project庫房管理系統(tǒng)data材料信息.dbf;where 材料編號=alltrim(thisform.text1.value);into cursor tempcursor; thisform.grid1.recordsource=tempcursor;endifthisform.refresh&按照材料編號查詢if th
29、isform.combol,text=“材料名稱”select *;from project倉庫管理系統(tǒng)data材料信息.dbf;where 材料名稱=alltrim(thisform.text1.value);into cursor tempcursor; thisform.grid1.recordsource=tempcursor;endifthisform.refresh&按照材料名稱查詢3、運行表單設計完成后,運行表單,結果如圖210所示:圖210材料信息查詢表單的運行結果2.3.3出入庫管理表單出入庫管理表單實現(xiàn)的功能是記錄材料的出入庫信息,并修改相應材料信息表。1、出入庫管理表單設
30、計出庫和入庫的功能、結構都比較相似,因而這里用一個表單來實現(xiàn)它們。表單中使用pageframe控件,分兩個頁面分別實現(xiàn)入庫和出庫的功能。新建表單“出入庫管理”,保存路徑為“project倉庫管理系統(tǒng)forms出入庫管理.scx”。在表單的data environment中添加“出入庫信息”數(shù)據(jù)表。該表單使用了一個pageframe控件pageframe1,將pageframe的pagecount屬性值設置為2,即pageframe設置為兩頁,分別用于“入庫”管理和“出庫”管理。將page1的標題設為“入庫管理”;將page2的標題設為“出庫管理”。2、入庫管理(1)入庫管理表單設計在表單的pa
31、geframe控件單擊鼠標右鍵,在彈出的菜單中選取edit命令,使其處于編輯狀態(tài)。切換到page1頁面,添加所需控件并設置其相應屬性,界面如圖211所示。圖211入庫管理表單在page1上添加的控件類型有l(wèi)abel、text、command button、container和edit box。edit box控件和text box控件類似,不同之處在于edit box控件可以對多行字符串進行編輯,并且有垂直滾動條,通常用來顯示或設置備注字段。下面首先介紹edit box控件特有的屬性。如表3所示:表3 edit box控件的常用屬性edit box控件具有的與text box控件一樣的屬性,這
32、里不再贅述。(2)添加響應代碼“確定” 按鈕的click事件代碼如下:select材料編號;from project倉庫管理系統(tǒng)data材料信息.dbf; where 材料編號=alltrim(thisform.pageframe1.page1.text1.value);into cursor tempcursor&根據(jù)材料編號在材料信息表中查找記錄 temp 材料編號=tempcursor.材料編號 if empty(temp 材料編號) then messagebox(“你要添加的材料在材料庫中”+chr(13)+chr(10)+”沒有找到,請先到材料庫中”+chr(13)+chr(10)
33、+”登記新材料 ”+temp材料編號,0+64,”材料檢測”) thisform.pageframe1.page1.text2.readonly=.t.thisform.pageframe1.page1.text3.readonly=.t.thisform.pageframe1.page1.text4.readonly=.t.thisform.pageframe1.page1.text5.readonly=.t.thisform.pageframe1.page1.edit1.readonly=.t.&材料信息表中沒有該編號的材料,提示用戶更新材料信息表,并設置各text控件為只讀。elseme
34、ssagebox(“繼續(xù)下面的入庫信息填寫”,0+64,”材料檢測”)thisform.pageframe1.page1.text2.readonly=.f.thisform.pageframe1.page1.text3.readonly=.f.thisform.pageframe1.page1.text4.readonly=.f.thisform.pageframe1.page1.text5.readonly=.f.thisform.pageframe1.page1.edit1.readonly=.f.endif&材料編號正確,允許用戶繼續(xù)輸入。close tablesthisform.pa
35、geframe1.page1.refresh當進行入庫登記時,用戶首先輸入“入庫材料編號”。如果材料信息表中有該材料的信息,且“txt出入庫編號”、“txt出入庫日期”、“txt經手人”、“txt數(shù)量”、“txt備注”的readonly屬性為.f.,用戶才可以繼續(xù)輸入。如果該材料不在材料信息表中,將提示用戶首先檢查材料信息表。如圖212所示,當輸入的“入庫材料編號”不在材料表中時,提示用戶檢查材料表。圖212材料編號不在材料表中時的運行結果如果材料編號正確,用戶可以進行“入庫”操作。單擊“入庫”按鈕時,根據(jù)用戶的輸入完成入庫操作并更新入庫信息表。“入庫”按鈕的click事件代碼如下:dimen
36、sion bbb(7)&定義數(shù)組temp 數(shù)量=val(alltrim(thisform.pageframe1.page1.text4.value)bbb(1)= alltrim(thisform.pageframe1.page1.text2.value)bbb(2)= “i”bbb(3)= alltrim(thisform.pageframe1.page1.text1.value)bbb(4)= alltrim(thisform.pageframe1.page1.text3.value)bbb(5)= alltrim(thisform.pageframe1.page1.text4.value
37、)bbb(6)= alltrim(thisform.pageframe1.page1.text5.value)bbb(7)= alltrim(thisform.pageframe1.page1.editt1.value)&將入庫信息存儲在數(shù)組中replace 出入庫信息.出入庫編號 with bbb(1)replace 出入庫信息.類型 with bbb(2)replace 出入庫信息.材料編號 with bbb(3)replace 出入庫信息.出入庫日期 with bbb(4)replace 出入庫信息.數(shù)量 with bbb(5)replace 出入庫信息.經手人 with bbb(6)r
38、eplace 出入庫信息.備注 with bbb(7)&將記錄插入出入庫信息表中select *;from “project倉庫管理系統(tǒng)data材料信息.dbf”; where 材料編號=alltrim(thisform.pageframe1.page1.text1.value);into cursor tempcursornum1= tempcursor.數(shù)量在材料信息表中按“材料編號”查找記錄update project倉庫管理系統(tǒng)data材料信息.dbf set;數(shù)量=num1+temp數(shù)量;where 材料編號=alltrim(thisform.pageframe1.page1.tex
39、t1.value);&修改材料信息表thisform.pageframe1.page1.text1.value=”thisform.pageframe1.page1.text2.value=”thisform.pageframe1.page1.text3.value=”thisform.pageframe1.page1.text4.value=”thisform.pageframe1.page1.text5.value=”thisform.pageframe1.page1.text6.value=”thisform.pageframe1.page1.edit1.value=”&重置text b
40、ox控件和edit值thisform.pageframe1.page1.text2.readonly=.t.thisform.pageframe1.page1.text3.readonly=.t.thisform.pageframe1.page1.text4.readonly=.t.thisform.pageframe1.page1.text5.readonly=.t.thisform.pageframe1.page1.edit1.readonly=.t.&重置控件的readonly屬性thisform.refresh單擊“取消”按鈕時,取消用戶的前一次操作,表單恢復為初始狀態(tài)?!叭∠卑粹o的
41、click事件代碼如下:thisform.pageframe1.page1.text1.value=”thisform.pageframe1.page1.text2.value=”thisform.pageframe1.page1.text3.value=”thisform.pageframe1.page1.text4.value=”thisform.pageframe1.page1.text5.value=”thisform.pageframe1.page1.text6.value=”thisform.pageframe1.page1.edit1.value=”&重置text box控件和e
42、dit值thisform.pageframe1.page1.text2.readonly=.t.thisform.pageframe1.page1.text3.readonly=.t.thisform.pageframe1.page1.text4.readonly=.t.thisform.pageframe1.page1.text5.readonly=.t.thisform.pageframe1.page1.edit1.readonly=.t.&重置控件的readonly屬性thisform. pageframe1.page1.refresh“退出”按鈕的功能是返回主控界面。該按鈕的click
43、事件代碼如下:do form project倉庫管理系統(tǒng)forms主表單.scxthisform.release3、出庫管理(1)出庫管理表單設計出庫管理的頁面設計與入庫管理的頁面相似,如圖213所示:圖213出庫管理表進行出庫管理時,用戶必須先輸入“出庫材料編號”,然后單擊“確定”按鈕。如果該材料編號在材料信息表中,允許用戶繼續(xù)完成出入庫信息輸入,否則提示錯誤,要求用戶重新輸入材料編號。(2)添加響應代碼“確定” 按鈕的click事件代碼如下:select材料編號;from project倉庫管理系統(tǒng)data材料信息.dbf; where 材料編號=alltrim(thisform.page
44、frame1.page2.text1.value);into cursor tempcursor&根據(jù)材料編號在材料信息表中查找記錄 temp 材料編號=tempcursor.材料編號 if empty(temp 材料編號) then messagebox(“你要添加的材料在材料庫中”+chr(13)+chr(10)+”沒有找到,請先到材料庫中”+chr(13)+chr(10)+”登記新材料 ”+temp材料編號,0+64,”材料檢測”)&提示錯誤elsethisform.pageframe1.page2.text2.readonly=.f.thisform.pageframe1.page2.
45、text3.readonly=.f.thisform.pageframe1.page2.text4.readonly=.f.thisform.pageframe1.page2.text5.readonly=.f.thisform.pageframe1.page2.edit1.readonly=.f.endif&材料編號正確,允許用戶繼續(xù)輸入。thisform.pageframe1.page2.refresh出庫信息輸完后,單擊“出庫”按鈕,將完成材料的出庫操作。如果庫存材料足夠,將出庫信息加入出入庫信息表中,并更新相應的材料信息表中的記錄。如果庫存材料不足,提示用戶出錯。要求用戶重新輸入?!俺?/p>
46、庫”按鈕的click事件代碼如下:dimension ccc(7)&定義數(shù)組temp 數(shù)量=val(alltrim(thisform.pageframe1.page2.text5.value)&記錄需要出庫的材料數(shù)量select *;from “project倉庫管理系統(tǒng)data材料信息.dbf”; where 材料編號=alltrim(thisform.pageframe1.page2.text1.value);into cursor tempcursornum1= tempcursor.數(shù)量&記錄原有材料的數(shù)量if (num1-temp數(shù)量)0 thenmessagebox(“出庫數(shù)量大于
47、庫存數(shù)量!”,0+64,”入庫”)thisform.pageframe1.page2.text5.value=&庫存不足,提示用戶出錯elseupdate project庫房管理系統(tǒng)data材料信息.dbf set;數(shù)量=num1-temp數(shù)量;where 材料編號=alltrim(thisform.pageframe1.page2.text1.value);&修改材料數(shù)量信息ccc(1)= alltrim(thisform.pageframe1.page2.text2.value)ccc(2)= “0”ccc(3)= alltrim(thisform.pageframe1.page2.tex
48、t1.value)ccc(4)= alltrim(thisform.pageframe1.page2.text3.value)ccc(5)= alltrim(thisform.pageframe1.page2.text4.value)ccc(6)= alltrim(thisform.pageframe1.page2.text5.value)ccc(7)= alltrim(thisform.pageframe1.page2.edit1.value)&將記錄插入出入庫信息表insert into project庫房管理系統(tǒng)data出入庫信息.dbf from array ccc;thisform.
49、pageframe1.page2.text1.value=”thisform.pageframe1.page2.text2.value=”thisform.pageframe1.page2.text3.value=”thisform.pageframe1.page2.text4.value=”thisform.pageframe1.page2.text5.value=”thisform.pageframe1.page2.edit1.value=”&重置text box控件和edit值thisform.pageframe1.page2.text2.readonly=.t.thisform.pag
50、eframe1.page2.text3.readonly=.t.thisform.pageframe1.page2.text4.readonly=.t.thisform.pageframe1.page2.text5.readonly=.t.thisform.pageframe1.page2.edit1.readonly=.t.&重置控件的readonly屬性endifthisform.refresh&表單刷新“取消”按鈕和“退出”按鈕的功能和實現(xiàn)方法與入庫頁面中基本相同,不再贅述。2 3.4用戶向導制作報表首先利用向導快速生成報表,然后對生成的報表進一步編輯和修改。材料信息報表的內容包括材料信
51、息表的各字段記錄,并在表頭打印日期信息,統(tǒng)計材料總數(shù),在表尾進行顯示。生成報表的步驟為:1、選取toolswizardreports菜單命令,彈出如圖214所示對話框,選中report wizard,單擊ok按鈕,進入報表設計窗口。圖214 報表向導2、選擇數(shù)據(jù)表為“材料信息”,表字段為材料信息表的全部字段,如圖215所示。圖215選擇表和字段3、在表尾加入統(tǒng)計信息,具體做法是在第2步時單擊右側的summary option按鈕,在summary option選項卡中選取summary only選項,并選取“材料編號”字段的count屬性。如圖216所示。這樣報表會自動對村料編號進行計數(shù),統(tǒng)計材料種類。圖216設置報表的summary4、選擇報表風格為excutive,進入下一步。5、報表的layout屬性選擇默認選項,進入下一步。排序則選擇“材料名稱”為索引項,如圖217所示。圖217排序規(guī)則選擇6、單擊next按鈕,輸入報表的title信息,并選中save report and modify it in the report designer,單擊finish按鈕,保存報表為“d:project庫房管理系統(tǒng)reports材料信息.frx”,進入報表設計器對報表界面作進一步的調整,如圖218所示。圖218完成報表制作本設計中,需要在report designer中調整列的寬度,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 固定總價合同計量規(guī)則規(guī)范
- 沈陽理工大學《材料成型與工藝應用設計》2022-2023學年第一學期期末試卷
- 國有企業(yè)代理采購合同管理制度
- 國有文物社會力量合作合同范本
- 合同法定解除的五種情形舉例說明
- 大班游戲《一朵美麗的花》微課件
- 2024年廣西客運資格證考試內客
- 2024建筑工程供貨合同
- 2024上海市技術咨詢合同范本
- 沈陽城市學院《習近平法治思想概論》2021-2022學年第一學期期末試卷
- 人民幣的發(fā)展史課件
- 人物速寫教學課件
- 貨物供應、運輸、包裝說明方案
- 醫(yī)院清潔消毒與滅菌課件
- 干部人事檔案查(借)閱審批表
- 離散數(shù)學-第三章:集合的基本概念和運算課件
- 藥物濫用知識培訓課件
- 四年級科學食物的消化課件
- (新版)血液透析??评碚摽荚囶}庫(參考500題)
- 市人民醫(yī)院卒中防治中心培訓制度
- 可隨意編輯【封面+自薦信+簡歷】百年樹人寓意求職個人簡歷
評論
0/150
提交評論