藥房藥品進(jìn)銷存_第1頁
藥房藥品進(jìn)銷存_第2頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、.藥品倉庫管理系統(tǒng)摘要:在藥店里,藥品倉庫管理是一項(xiàng)非常重要的工作,使用人工方式管理各項(xiàng)品信息不僅效率低下,而且容易出錯(cuò)、安全性很差。并且在實(shí)際操作中,數(shù)據(jù)的查找和維護(hù)都不容易實(shí)現(xiàn)。藥品倉庫管理系統(tǒng),就是為了解決這些問題而設(shè)計(jì)的。其目的是實(shí)現(xiàn)藥品信息管理和出入庫記錄的快速高效檢索,使操作簡單安全,提高工作效率和質(zhì)量。本系統(tǒng)的主要功能是完成品倉庫管理的日常工作,包括材料的入庫、出庫以及庫存材料信息的管理維護(hù)等。關(guān)鍵詞:事件代碼 數(shù)據(jù)庫 檢索 關(guān)聯(lián) 管理系統(tǒng)Abstract:In drugstores,to manage the drug warehouse is a very important

2、 work,it is not only inefficient to manage all kinds of drug information by using manual work,but also easy to make a mistake and has little security More over,in practical operation, finding out and protecting the data are hard to realize. The system of drugwarehouse management is designed for solv

3、ing these problems. The purposes are to realize the drug information management,to recall the record of putting the drug in and out of the warehouse,to make the operation become simple,safe,and to enhance the work efficiency and quality. This system focuses on finishing the daily operation of drug w

4、arehouse management,which including putting the drug in and out of the warehouse, storing, managming and protecting the material information and so on.Keyword:case code database index relation controlling management system目 錄第一章 技術(shù)背景和分析.3第二章 系統(tǒng)實(shí)施.3 2.1 系統(tǒng)設(shè)計(jì)3 2.1.1系統(tǒng)分析.4 用戶需求分析4 系統(tǒng)可行性分析

5、4 2.1.2系統(tǒng)功能模塊劃分.4 2.2數(shù)據(jù)庫設(shè)計(jì).6 2.2.1數(shù)據(jù)庫需求分析.6 2.2.2數(shù)據(jù)庫邏輯設(shè)計(jì).6 2.2.3數(shù)據(jù)庫實(shí)現(xiàn).7 2.3表單設(shè)計(jì).9 2.3.1材料信息維護(hù)表單.9 2.3.2材料信息查詢表單.16 2.3.3出入庫管理表單.18 2.3.4用戶向?qū)е谱鲌?bào)表.26 2.3.5主表單設(shè)計(jì).28 2.4主控程序設(shè)計(jì).29第三章 問題討論.29 3.1系統(tǒng)功能設(shè)計(jì)的不完善.29 3.2代碼維護(hù).30 3.3數(shù)據(jù)維護(hù).30 3.3.1數(shù)據(jù)庫的安全問題.30 3.3.2數(shù)據(jù)的安全問題.30第四章 總結(jié).31參考文獻(xiàn).32后記.33第一章 技術(shù)背景和分析Visual FoxP

6、ro是為數(shù)據(jù)庫結(jié)構(gòu)和應(yīng)用程序開發(fā)而設(shè)計(jì)的功能強(qiáng)大的面向?qū)ο蟮能浖?。無論是組織信息、運(yùn)行查詢、創(chuàng)建集成的關(guān)系型數(shù)據(jù)庫系統(tǒng),還是為最終用戶編寫功能全面的數(shù)據(jù)管理應(yīng)用程序,Visual FoxPro都可以提管理數(shù)據(jù)所需的工具,可以在應(yīng)用程序或數(shù)據(jù)庫開發(fā)的任何一個(gè)領(lǐng)域中提供幫助。本系統(tǒng)使用Visual FoxPro來設(shè)計(jì)開發(fā)的原因是Visual FoxPro具有三大特點(diǎn)。一、強(qiáng)大的管理功能VFP提了一種稱為“項(xiàng)目管理器”(program manager)的管理工具,可供用戶對所開發(fā)項(xiàng)目中的數(shù)據(jù)、文檔、源代碼和類庫(class library)等資源進(jìn)行集中高效的管理,開發(fā)與維護(hù)均更加方便。二、大量使用

7、可視化的界面操作工具VFP 6.0提供向?qū)?wizard)、 設(shè)計(jì)器(designer)、生成器(builder)等3類界面操作工具,達(dá)40種之多。它們普遍采用圖形界面,能幫助用戶簡便快捷地完成各種查詢和設(shè)計(jì)任務(wù)。VFP的設(shè)計(jì)器普遍配有工具欄和彈出式的快捷菜單。每個(gè)工具按鈕對應(yīng)一項(xiàng)功能;用戶可通過它們方便地完成操作或設(shè)計(jì)控件,不必編程或很少編程即可實(shí)現(xiàn)美觀實(shí)用的應(yīng)用程序界面。大多數(shù)設(shè)計(jì)器還提快捷菜單,內(nèi)含最常用的菜單選項(xiàng),供用戶隨時(shí)調(diào)用。三、支持面向?qū)ο蟮某绦蛟O(shè)計(jì)VFP除繼續(xù)使用傳統(tǒng)的面向過程的程序設(shè)計(jì)外,還支持面向?qū)ο蟮某绦蛟O(shè)計(jì)。允許用戶對“對象”(object)和“類”(class)進(jìn)行定

8、義,并編寫相應(yīng)的代碼。由于VFP預(yù)先定義和提供了一批基類,用戶可以在基類的基礎(chǔ)上定義自己的類和子類(subclass),從而利用類的繼承性(inheritance),減少編程的工作量,加快軟件的開發(fā)過程。使用結(jié)構(gòu)化的程序設(shè)計(jì),同時(shí)應(yīng)用面向?qū)ο蟮某绦蛟O(shè)計(jì),構(gòu)成了VFP程序設(shè)計(jì)的特點(diǎn),同時(shí)為用戶的編程帶來了很大的方便。第二章 系統(tǒng)實(shí)施2.1系統(tǒng)設(shè)計(jì)本系統(tǒng)設(shè)計(jì)包括兩個(gè)部分:系統(tǒng)分析和系統(tǒng)功能模塊設(shè)計(jì)。2.1.1系統(tǒng)分析用戶需求分析某藥店根據(jù)業(yè)務(wù)發(fā)展的要求,選定建立一個(gè)“藥品倉庫管理系統(tǒng)”,以取代人工管理。開發(fā)目的如下:l、必須要指定的專門人員才能對藥品倉庫的日常事務(wù)進(jìn)行管理。2、能夠?qū)?/p>

9、藥品倉庫內(nèi)的有關(guān)各種藥品材料的數(shù)據(jù)進(jìn)行輸入、修改與查詢。3、當(dāng)有藥品入庫或出庫時(shí),能夠更新藥品的數(shù)據(jù)進(jìn)行輸入、修改與查詢。4、要求有專門的報(bào)表存儲(chǔ)藥品材料的出入庫信息,能夠打印報(bào)表。 系統(tǒng)可行性分析1、四項(xiàng)基本內(nèi)容的實(shí)現(xiàn)用戶在該藥品倉庫管理系統(tǒng)中需要的四項(xiàng)基本內(nèi)容完全可以利用VFP進(jìn)行的相關(guān)設(shè)置(主要是表單設(shè)置)來加以實(shí)現(xiàn)。例如可以用VFP進(jìn)行登錄界面設(shè)計(jì),在表單上添加命令按鈕以實(shí)現(xiàn)對用戶身份的驗(yàn)證,達(dá)到用戶要求的“必須要指定的專門人才對藥品倉庫的日常事務(wù)進(jìn)行管理”的目的。2、數(shù)據(jù)庫分析藥店中所有藥品材料的信息都可以在VFP項(xiàng)目管理器的數(shù)據(jù)庫中建立與維護(hù)。該藥品倉庫管理系統(tǒng)查詢藥

10、品信息只需要兩張數(shù)據(jù)表(即材料信息表和出入庫信息表)就可以滿足需求。3、系統(tǒng)的發(fā)布及其運(yùn)行環(huán)境。(1)系統(tǒng)的發(fā)布:VFP項(xiàng)目管理器提供了一個(gè)管理應(yīng)用系統(tǒng)的集成環(huán)境,而且VFP提供的安裝向?qū)?,支持用戶為所開發(fā)的項(xiàng)目創(chuàng)建一套“安裝(磁)盤”,供系統(tǒng)發(fā)布使用。(2)系統(tǒng)的運(yùn)行環(huán)境:操作系統(tǒng)Windows9x系列、用戶自定義安裝需要85MB硬盤空間,完全安裝需要90MB硬盤空間,內(nèi)存要求16MB以上。推薦使用VGA或更高分辨率的顯示器。2.1.2 系統(tǒng)功能模塊劃分根據(jù)以上分析,可以進(jìn)行系統(tǒng)的功能模塊劃分,如圖21所示: 圖21系統(tǒng)功能模塊功能模塊劃分圖中各個(gè)模塊的功能如下:1、登錄界面通過輸入管理員的

11、用戶名和密碼進(jìn)入系統(tǒng)。2、主表單用戶可以在主表單上根據(jù)需要進(jìn)行選擇以實(shí)現(xiàn)各種不同的操作。3、庫存材料信息的維護(hù)新材料入庫時(shí),系統(tǒng)允許管理員添加新材料的記錄。材料出庫或產(chǎn)品過期需要清除時(shí),管理員可以刪除產(chǎn)品信息。記錄有誤時(shí)管理員可以修改數(shù)據(jù)表中的記錄。4、庫存材料信息的查詢信息查詢是倉庫管理系統(tǒng)的重要組成部分。用戶可以按照材料編號(hào)和材料名稱等查詢條件查詢倉庫中的材料信息。5、材料的入庫、出庫新產(chǎn)品或材料需要出入庫時(shí),管理員可以直接進(jìn)行出入庫操作;出入庫操作后,程序自動(dòng)修改庫存材料的信息。6、報(bào)表打印功能可以打印庫存表,出入庫記錄的報(bào)表。2.2 數(shù)據(jù)庫設(shè)計(jì)2.2.1數(shù)據(jù)庫需求分析根據(jù)上一節(jié)的系統(tǒng)分

12、析,本系統(tǒng)主要是實(shí)現(xiàn)倉庫藥品信息和出入庫信息的管理。因此,該藥品倉庫管理系統(tǒng)的數(shù)據(jù)關(guān)系比較簡單,只需要兩張數(shù)據(jù)表:材料信息表和出入庫記錄信息表。2.2.2 數(shù)據(jù)庫邏輯設(shè)計(jì)本系統(tǒng)中需要兩個(gè)數(shù)據(jù)表:材料信息表和出入庫信息表,數(shù)據(jù)表的字段和結(jié)構(gòu)如表1和表2所示:表1材料信息表表2出入庫信息表2.2.3 數(shù)據(jù)庫實(shí)現(xiàn)本系統(tǒng)開發(fā)中,首先創(chuàng)建倉庫管理系統(tǒng)的數(shù)據(jù)庫,然后在數(shù)據(jù)庫中創(chuàng)建需要的數(shù)據(jù)表,為數(shù)據(jù)表添加記錄。如果需要,還可以設(shè)計(jì)視圖和存儲(chǔ)過程以及觸發(fā)器等。下面設(shè)計(jì)本系統(tǒng)數(shù)據(jù)庫,詳細(xì)步驟如下:1、創(chuàng)建項(xiàng)目文件“倉庫管理.pjx”,保存路徑為project倉庫管理系統(tǒng)。2、在該項(xiàng)目中新建數(shù)據(jù)庫“倉庫管理”,

13、保存路徑為project倉庫管理系統(tǒng)data。3、在數(shù)據(jù)庫中新建材料信息表,保存路徑為project倉庫管理系統(tǒng)data材料信息.dbf。在Table Designer的Fields選項(xiàng)卡中根據(jù)表1的內(nèi)容設(shè)置數(shù)據(jù)表的字段及其屬性,如22圖所示:圖22 “材料信息”表的字段設(shè)置切換到Indexes選項(xiàng)卡,設(shè)置表索引。如圖23所示。將“材料編號(hào)”設(shè)置為主索引,索引類型為Primary。將“材料名稱”設(shè)置為普通索引,索引類型為Regular。圖23 “材料信息”表的索引設(shè)置關(guān)閉Table Designer,在“材料信息”表中添加記錄。具體做法是:在Project Designer中選中材料信息表,單

14、擊Browse按鈕,瀏覽數(shù)據(jù)表。然后在Visual FoxPro 6.0的主窗口中選取Table | Append New Record菜單命令,在數(shù)據(jù)表中添加新的記錄。出入庫信息的創(chuàng)建方法與材料信息表相似,保存路徑也與材料信息表相同。表的字段設(shè)置和索引分別如圖24、圖25所示:圖24 “出入庫信息”表的字段設(shè)置圖25 “出入庫信息”表的索引設(shè)置表建立完成后,打開Database Designer,創(chuàng)建數(shù)據(jù)表之間的關(guān)聯(lián)關(guān)系。其結(jié)果如圖26所示。其中,材料信息表和出入庫信息表之間通過索引“材料編號(hào)”相關(guān)聯(lián)。圖26 數(shù)據(jù)表的關(guān)聯(lián)關(guān)系至此,數(shù)據(jù)庫和數(shù)據(jù)表的設(shè)計(jì)完成。下面進(jìn)入倉庫管理系統(tǒng)的表單設(shè)計(jì)。2

15、.3 表單設(shè)計(jì)本系統(tǒng)主要功能模塊的實(shí)現(xiàn)由4個(gè)表單完成,分別是:材料信息維護(hù)表單、材料信息查詢表單、出入庫管理表單和用于選擇操作類型的主界面。2.3.1 材料信息維護(hù)表單材料信息維護(hù)表單的功能主要是完成材料信息的添加、修改和刪除等操作。1、材料信息維護(hù)表單設(shè)計(jì)在項(xiàng)目中新建表單,保存路徑為“project倉庫管理系統(tǒng)forms材料信息.scx”,在表單的Data Environment中添加“材料信息”表。在表單上添加控件并設(shè)置控件的屬性,得到如圖27所示的表單。圖27材料信息維護(hù)表單整個(gè)“材料信息維護(hù)”表單分為3部分,最上面的一部分是在一個(gè)Container控件中顯示當(dāng)前材料記錄的信息,如材料編

16、號(hào)、材料名稱、規(guī)格、單位和單價(jià)等。中間是4個(gè)命令按鈕分別表示第一條記錄、上一條記錄、下一條記錄、和最后一條記錄。下面是維護(hù)操作功能按鈕,包括添加、修改、刪除、保存和退出5種功能按鈕。2、添加響應(yīng)代碼下面為表單添加響應(yīng)代碼,實(shí)現(xiàn)上述各項(xiàng)功能?!笆子涗洝卑粹o。單擊按鈕時(shí),顯示“材料信息”表的第一記錄。即表中第一條記錄被設(shè)為當(dāng)前記錄。該按鈕的Click事件代碼如下:Go topThisform.Refresh“末記錄”按鈕。單擊按鈕時(shí),顯示“材料信息”表的最后一條記錄,即表中最后一條記錄被設(shè)置為當(dāng)前記錄。該按鈕的Click事件代碼如下:Go bottomThisform.Refresh“上一條”按鈕

17、。單擊按鈕時(shí),顯示當(dāng)前記錄上一條記錄。該按鈕的Click事件代碼如下: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.readonly=.t.&設(shè)置各Text Box和Edit的Re

18、adOnly屬性if eof() go bottomelse skip 1endifthisform.refresh“下一條”按鈕。單擊按鈕時(shí),顯示當(dāng)前記錄的下一條記錄。該按鈕的Click事件代碼如下: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.t

19、ext8.readonly=.t.thisform.edit1.readonly=.t.&設(shè)置各Text Box控件的屬性if eof() go topelse skip 1endifthisform.refresh“添加”按鈕。單擊按鈕時(shí),完成材料添加功能,在材料信息表中加入一條新記錄。該按鈕的Click事件代碼如下:go bottomtempnum=val(材料信息.材料編號(hào))&獲取最后一條記錄的材料編號(hào)字段append blankgo bottomreplace 材料信息.材料編號(hào) with alltrim(str(tempnum+1)&在表尾添加一條新記錄mand1.enabled=.

20、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.&設(shè)置各按鈕的有效狀態(tài),在添加新記錄的過程中,為防止出錯(cuò),應(yīng)設(shè)置除“保存”按鈕之外的其他按鈕為無效。這樣,在輸入完成后,只能使用“保存”按鈕來保存記錄。thisform.text1.readonly=.f.thisform.text2.readonly=.f.thisform.text3.readonly=.f.thisf

21、orm.text4.readonly=.f.thisform.text5.readonly=.f.thisform.text6.readonly=.f.thisform.text7.readonly=.f.thisform.text8.readonly=.f.thisform.edit1.readonly=.f.&設(shè)置各TextBox控件的屬性thisform.refresh“修改”按鈕。單擊按鈕時(shí),修改當(dāng)前記錄。該按鈕的Click事件代碼如下:mand1.enabled=.f.mand2.enabled=.f.mand3.enabled=.f.mand4.enabled=.f.mand5.e

22、nabled=.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.text4.readonly=.f.thisform.text5.readonly=.f.thisform.text6.readonly=.f.thisform.text7.readonly=.f.thisform.text8.readonly=.f.thisfo

23、rm.edit1.readonly=.f.thisform.refresh&本段代碼主要功能是設(shè)置表單上各控件的可讀寫狀態(tài)。“刪除”按鈕。單擊按鈕時(shí),刪除表中當(dāng)前記錄。該按鈕的Click事件代碼如下:tempstr=messagebox(“是否刪除記錄.”,4+32+256,”刪除對話框”)if tempstr=6set exclusive ondeletepackset exclusive offthisform.refreshendif&在刪除記錄之前,首先設(shè)置表的操作方式為Exclusive(獨(dú)占方式),然后用Delete語句為當(dāng)前記錄加上刪除標(biāo)記,最后使用Pack語句刪除有標(biāo)記的記錄。

24、“保存”按鈕。單擊按鈕時(shí),將表單中用戶輸入的信息保存到“材料信息”表。該按鈕的Click事件代碼如下:dimension aaa(9)&定義數(shù)組aaa(1)=thisform.text1.valueaaa(2)=thisform.text2.valueaaa(3)=thisform.text3.valueaaa(4)=thisform.text4.valueaaa(5)=thisform.text5.valueaaa(6)=thisform.text6.valueaaa(7)=thisform.text7.valueaaa(8)=thisform.text8.valueaaa(9)=thisf

25、orm.text9.value&將表單中的輸入值存儲(chǔ)到數(shù)組中replace 材料信息.材料編號(hào) with aaa(1)replace 材料信息.規(guī)格 with aaa(2)replace 材料信息.單價(jià) with aaa(3)replace 材料信息.產(chǎn)地 with aaa(4)replace 材料信息.生產(chǎn)廠家 with aaa(5)replace 材料信息.材料名稱 with aaa(6)replace 材料信息.單位 with aaa(7)replace 材料信息.數(shù)量 with aaa(8)replace 材料信息.備注 with aaa(9)&用數(shù)組修改表記錄的各字段mand1.en

26、abled=.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.&設(shè)置各按鈕的有效狀態(tài)thisform.text1.readonly=.t.thisform.text2.readonly=.t.thisform.text3.readonly=.t.thisform.text4.readonly=.t.thisform.text5.readonly=.t.thisform.

27、text6.readonly=.t.thisform.text7.readonly=.t.thisform.text8.readonly=.t.thisform.edit1.readonly=.t.thisform.refresh&設(shè)置TextBox控件為只讀“退出”按鈕。單擊該按鈕,退出表單。該按鈕的Click事件代碼如下:Thisform.Release另外表單初始化時(shí)“保存”按鈕應(yīng)該為不可用,且顯示的內(nèi)容應(yīng)該處于只讀狀態(tài),因此為表單的Init事件添加如下代碼:thisform.text1.readonly=.t.thisform.text2.readonly=.t.thisform.te

28、xt3.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.mand8.enabled=.f.設(shè)計(jì)完成后,運(yùn)行表單。如圖28所示:圖28材料信息維護(hù)表單的運(yùn)行結(jié)果2.3.2材料信息查詢表單材料信息查詢表單的功能是實(shí)現(xiàn)材料信息的快速檢索。當(dāng)用戶輸入材料編號(hào)或名稱后,可快速檢索出所有符合條件的材料記錄。1、

29、材料信息查詢表單設(shè)計(jì)新建表單“材料信息查詢”,保存路徑為“project倉庫管理系統(tǒng)forms材料信息查詢.scx”,在表單的Data Environment中添加“材料信息表”。在表單上添加控件并設(shè)置相應(yīng)的屬性,得到如圖29所示的表單。圖29材料信息查詢表單在表單上添加了一個(gè)Grid控件,用來顯示查詢的結(jié)果,將Grid的Readonly屬性設(shè)置為.t.。并且通過一個(gè)Combo下拉框控件來實(shí)現(xiàn)多依據(jù)的查詢,本系統(tǒng)中根據(jù)材料編號(hào)和材料名稱實(shí)現(xiàn)名稱查詢,將Combo的Readonly屬性設(shè)置為.t.。2、添加響應(yīng)代碼Combo用于選擇查詢依據(jù)。此處用戶分別選擇“材料編號(hào)”或“材料名稱”進(jìn)行查詢。因

30、此,在表單初始化時(shí),要為Combo Box控件輸入初始值。為存儲(chǔ)查詢結(jié)果,還要定義一個(gè)在表單運(yùn)行過程中有效的Cursor公共變量。因此,為表單的Init事件添加如下代碼:Public tempcursorThisform.Combo1.additem(“材料編號(hào)”)Thisform.Combo1.additem(“材料名稱”)Thisform.refresh“查詢”按鈕完成材料信息的查詢。根據(jù)用戶選擇的查詢依據(jù)和輸入的查詢數(shù)據(jù)的值,在表中查找符合條件的記錄,顯示在表格中?!安樵儭卑粹o的Click事件代碼如下:if thisform.Combo1.text=”材料編號(hào)” select *;fro

31、m project倉庫管理系統(tǒng)data材料信息.dbf;where 材料編號(hào)=alltrim(thisform.text1.value);into cursor tempcursor; thisform.grid1.recordsource=tempcursor;endifthisform.refresh&按照材料編號(hào)查詢if thisform.Combol,text=“材料名稱”select *;from project倉庫管理系統(tǒng)data材料信息.dbf;where 材料名稱=alltrim(thisform.text1.value);into cursor tempcursor; thi

32、sform.grid1.recordsource=tempcursor;endifthisform.refresh&按照材料名稱查詢3、運(yùn)行表單設(shè)計(jì)完成后,運(yùn)行表單,結(jié)果如圖210所示:圖210材料信息查詢表單的運(yùn)行結(jié)果2.3.3出入庫管理表單出入庫管理表單實(shí)現(xiàn)的功能是記錄材料的出入庫信息,并修改相應(yīng)材料信息表。1、出入庫管理表單設(shè)計(jì)出庫和入庫的功能、結(jié)構(gòu)都比較相似,因而這里用一個(gè)表單來實(shí)現(xiàn)它們。表單中使用PageFrame控件,分兩個(gè)頁面分別實(shí)現(xiàn)入庫和出庫的功能。新建表單“出入庫管理”,保存路徑為“project倉庫管理系統(tǒng)forms出入庫管理.scx”。在表單的Data Environme

33、nt中添加“出入庫信息”數(shù)據(jù)表。該表單使用了一個(gè)PageFrame控件Pageframe1,將Pageframe的PageCount屬性值設(shè)置為2,即PageFrame設(shè)置為兩頁,分別用于“入庫”管理和“出庫”管理。將Page1的標(biāo)題設(shè)為“入庫管理”;將Page2的標(biāo)題設(shè)為“出庫管理”。2、入庫管理(1)入庫管理表單設(shè)計(jì)在表單的PageFrame控件單擊鼠標(biāo)右鍵,在彈出的菜單中選取Edit命令,使其處于編輯狀態(tài)。切換到Page1頁面,添加所需控件并設(shè)置其相應(yīng)屬性,界面如圖211所示。圖211入庫管理表單在Page1上添加的控件類型有Label、Text、Command Button、Conta

34、iner和Edit Box。Edit Box控件和Text Box控件類似,不同之處在于Edit Box控件可以對多行字符串進(jìn)行編輯,并且有垂直滾動(dòng)條,通常用來顯示或設(shè)置備注字段。下面首先介紹Edit Box控件特有的屬性。如表3所示:表3 Edit Box控件的常用屬性Edit Box控件具有的與Text Box控件一樣的屬性,這里不再贅述。(2)添加響應(yīng)代碼“確定” 按鈕的Click事件代碼如下:select材料編號(hào);from project倉庫管理系統(tǒng)data材料信息.dbf; where 材料編號(hào)=alltrim(thisform.pageframe1.page1.text1.valu

35、e);into cursor tempcursor&根據(jù)材料編號(hào)在材料信息表中查找記錄 temp 材料編號(hào)=tempcursor.材料編號(hào) if empty(temp 材料編號(hào)) then messagebox(“你要添加的材料在材料庫中”+chr(13)+chr(10)+”沒有找到,請先到材料庫中”+chr(13)+chr(10)+”登記新材料 ”+temp材料編號(hào),0+64,”材料檢測”) thisform.pageframe1.page1.text2.readonly=.t.thisform.pageframe1.page1.text3.readonly=.t.thisform.page

36、frame1.page1.text4.readonly=.t.thisform.pageframe1.page1.text5.readonly=.t.thisform.pageframe1.page1.edit1.readonly=.t.&材料信息表中沒有該編號(hào)的材料,提示用戶更新材料信息表,并設(shè)置各Text控件為只讀。elsemessagebox(“繼續(xù)下面的入庫信息填寫”,0+64,”材料檢測”)thisform.pageframe1.page1.text2.readonly=.f.thisform.pageframe1.page1.text3.readonly=.f.thisform.p

37、ageframe1.page1.text4.readonly=.f.thisform.pageframe1.page1.text5.readonly=.f.thisform.pageframe1.page1.edit1.readonly=.f.endif&材料編號(hào)正確,允許用戶繼續(xù)輸入。Close tablesthisform.pageframe1.page1.refresh當(dāng)進(jìn)行入庫登記時(shí),用戶首先輸入“入庫材料編號(hào)”。如果材料信息表中有該材料的信息,且“Txt出入庫編號(hào)”、“Txt出入庫日期”、“Txt經(jīng)手人”、“Txt數(shù)量”、“Txt備注”的ReadOnly屬性為.F.,用戶才可以繼續(xù)輸

38、入。如果該材料不在材料信息表中,將提示用戶首先檢查材料信息表。如圖212所示,當(dāng)輸入的“入庫材料編號(hào)”不在材料表中時(shí),提示用戶檢查材料表。圖212材料編號(hào)不在材料表中時(shí)的運(yùn)行結(jié)果如果材料編號(hào)正確,用戶可以進(jìn)行“入庫”操作。單擊“入庫”按鈕時(shí),根據(jù)用戶的輸入完成入庫操作并更新入庫信息表?!叭霂臁卑粹o的Click事件代碼如下:dimension bbb(7)&定義數(shù)組temp 數(shù)量=val(alltrim(thisform.pageframe1.page1.text4.value)bbb(1)= alltrim(thisform.pageframe1.page1.text2.value)bbb(2

39、)= “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)bbb(6)= alltrim(thisform.pageframe1.page1.text5.value)bbb(7)= alltrim(thisform.pageframe1.page1.editt1.value)&將入庫信息存儲(chǔ)在數(shù)組中replace 出入庫

40、信息.出入庫編號(hào) with bbb(1)replace 出入庫信息.類型 with bbb(2)replace 出入庫信息.材料編號(hào) with bbb(3)replace 出入庫信息.出入庫日期 with bbb(4)replace 出入庫信息.數(shù)量 with bbb(5)replace 出入庫信息.經(jīng)手人 with bbb(6)replace 出入庫信息.備注 with bbb(7)&將記錄插入出入庫信息表中select *;from “project倉庫管理系統(tǒng)data材料信息.dbf”; where 材料編號(hào)=alltrim(thisform.pageframe1.page1.text1

41、.value);into cursor tempcursornum1= tempcursor.數(shù)量在材料信息表中按“材料編號(hào)”查找記錄update project倉庫管理系統(tǒng)data材料信息.dbf set;數(shù)量=num1+temp數(shù)量;where 材料編號(hào)=alltrim(thisform.pageframe1.page1.text1.value);&修改材料信息表thisform.pageframe1.page1.text1.value=”thisform.pageframe1.page1.text2.value=”thisform.pageframe1.page1.text3.value

42、=”thisform.pageframe1.page1.text4.value=”thisform.pageframe1.page1.text5.value=”thisform.pageframe1.page1.text6.value=”thisform.pageframe1.page1.edit1.value=”&重置Text Box控件和Edit值thisform.pageframe1.page1.text2.readonly=.t.thisform.pageframe1.page1.text3.readonly=.t.thisform.pageframe1.page1.text4.rea

43、donly=.t.thisform.pageframe1.page1.text5.readonly=.t.thisform.pageframe1.page1.edit1.readonly=.t.&重置控件的ReadOnly屬性thisform.refresh單擊“取消”按鈕時(shí),取消用戶的前一次操作,表單恢復(fù)為初始狀態(tài)。“取消”按鈕的Click事件代碼如下:thisform.pageframe1.page1.text1.value=”thisform.pageframe1.page1.text2.value=”thisform.pageframe1.page1.text3.value=”this

44、form.pageframe1.page1.text4.value=”thisform.pageframe1.page1.text5.value=”thisform.pageframe1.page1.text6.value=”thisform.pageframe1.page1.edit1.value=”&重置Text Box控件和Edit值thisform.pageframe1.page1.text2.readonly=.t.thisform.pageframe1.page1.text3.readonly=.t.thisform.pageframe1.page1.text4.readonly=

45、.t.thisform.pageframe1.page1.text5.readonly=.t.thisform.pageframe1.page1.edit1.readonly=.t.&重置控件的ReadOnly屬性thisform. pageframe1.page1.refresh“退出”按鈕的功能是返回主控界面。該按鈕的Click事件代碼如下:do form project倉庫管理系統(tǒng)forms主表單.scxthisform.release3、出庫管理(1)出庫管理表單設(shè)計(jì)出庫管理的頁面設(shè)計(jì)與入庫管理的頁面相似,如圖213所示:圖213出庫管理表進(jìn)行出庫管理時(shí),用戶必須先輸入“出庫材料編號(hào)”

46、,然后單擊“確定”按鈕。如果該材料編號(hào)在材料信息表中,允許用戶繼續(xù)完成出入庫信息輸入,否則提示錯(cuò)誤,要求用戶重新輸入材料編號(hào)。(2)添加響應(yīng)代碼“確定” 按鈕的Click事件代碼如下:select材料編號(hào);from project倉庫管理系統(tǒng)data材料信息.dbf; where 材料編號(hào)=alltrim(thisform.pageframe1.page2.text1.value);into cursor tempcursor&根據(jù)材料編號(hào)在材料信息表中查找記錄 temp 材料編號(hào)=tempcursor.材料編號(hào) if empty(temp 材料編號(hào)) then messagebox(“你要添

47、加的材料在材料庫中”+chr(13)+chr(10)+”沒有找到,請先到材料庫中”+chr(13)+chr(10)+”登記新材料 ”+temp材料編號(hào),0+64,”材料檢測”)&提示錯(cuò)誤elsethisform.pageframe1.page2.text2.readonly=.f.thisform.pageframe1.page2.text3.readonly=.f.thisform.pageframe1.page2.text4.readonly=.f.thisform.pageframe1.page2.text5.readonly=.f.thisform.pageframe1.page2.e

48、dit1.readonly=.f.endif&材料編號(hào)正確,允許用戶繼續(xù)輸入。thisform.pageframe1.page2.refresh出庫信息輸完后,單擊“出庫”按鈕,將完成材料的出庫操作。如果庫存材料足夠,將出庫信息加入出入庫信息表中,并更新相應(yīng)的材料信息表中的記錄。如果庫存材料不足,提示用戶出錯(cuò)。要求用戶重新輸入?!俺鰩臁卑粹o的Click事件代碼如下:dimension ccc(7)&定義數(shù)組temp 數(shù)量=val(alltrim(thisform.pageframe1.page2.text5.value)&記錄需要出庫的材料數(shù)量select *;from “project倉庫管

49、理系統(tǒng)data材料信息.dbf”; where 材料編號(hào)=alltrim(thisform.pageframe1.page2.text1.value);into cursor tempcursornum1= tempcursor.數(shù)量&記錄原有材料的數(shù)量if (num1-temp數(shù)量)0 thenmessagebox(“出庫數(shù)量大于庫存數(shù)量!”,0+64,”入庫”)thisform.pageframe1.page2.text5.value=&庫存不足,提示用戶出錯(cuò)elseupdate project倉庫管理系統(tǒng)data材料信息.dbf set;數(shù)量=num1-temp數(shù)量;where 材料編號(hào)

50、=alltrim(thisform.pageframe1.page2.text1.value);&修改材料數(shù)量信息ccc(1)= alltrim(thisform.pageframe1.page2.text2.value)ccc(2)= “0”ccc(3)= alltrim(thisform.pageframe1.page2.text1.value)ccc(4)= alltrim(thisform.pageframe1.page2.text3.value)ccc(5)= alltrim(thisform.pageframe1.page2.text4.value)ccc(6)= alltrim(

51、thisform.pageframe1.page2.text5.value)ccc(7)= alltrim(thisform.pageframe1.page2.edit1.value)&將記錄插入出入庫信息表insert into project倉庫管理系統(tǒng)data出入庫信息.dbffrom array ccc;thisform.pageframe1.page2.text1.value=”thisform.pageframe1.page2.text2.value=”thisform.pageframe1.page2.text3.value=”thisform.pageframe1.page2.

52、text4.value=”thisform.pageframe1.page2.text5.value=”thisform.pageframe1.page2.edit1.value=”&重置Text Box控件和Edit值thisform.pageframe1.page2.text2.readonly=.t.thisform.pageframe1.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&表單刷新“取消”按鈕和“退出”按鈕的功能和實(shí)現(xiàn)方法與入庫頁面中基本相同,不再贅述。2 3.4用戶向?qū)е谱鲌?bào)表首先利用向?qū)Э焖偕蓤?bào)表,然后對生成的報(bào)表進(jìn)一步編輯和修改。材料信息報(bào)表的內(nèi)容包括材料信息表的各字段記錄,并在表頭打印日期信息,統(tǒng)計(jì)材料總數(shù),在表尾進(jìn)行顯示。生成報(bào)表的步驟為:1、選取ToolsWizardReports菜單命令,彈出如圖214所示對話框,選中Report Wizard,單擊ok按鈕,進(jìn)入報(bào)表設(shè)計(jì)

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論