版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 題 目:藥品庫(kù)房管理系統(tǒng)</p><p><b> 摘 要</b></p><p> 在藥店里,藥品庫(kù)房管理是一項(xiàng)非常重要的工作,使用人工方式管理各項(xiàng)品信息不僅效率低下,而且容易出錯(cuò)、安全性很差。并且在實(shí)際操作中,數(shù)據(jù)的查找和維護(hù)都不容易實(shí)現(xiàn)。藥品庫(kù)房管理系統(tǒng),就是為了解決這些問題而設(shè)計(jì)的。其目的是實(shí)現(xiàn)藥品信息管理和出入庫(kù)記錄的快速高
2、效檢索,使操作簡(jiǎn)單安全,提高工作效率和質(zhì)量。本系統(tǒng)的主要功能是完成品庫(kù)房管理的日常工作,包括材料的入庫(kù)、出庫(kù)以及庫(kù)存材料信息的管理維護(hù)等。</p><p><b> 目 錄</b></p><p> 第一章 技術(shù)背景和分析……………………………………………………….1</p><p> 第二章 系統(tǒng)實(shí)施……………………...…………
3、….……………………………..1</p><p> 2.1 系統(tǒng)設(shè)計(jì)……………………………………………………………………….1</p><p> 2.1.1系統(tǒng)分析……….………………….…….…………………………………2</p><p> 2.1.1.1用戶需求分析…………………………………………………………..2</p><p>
4、 2.1.1.2系統(tǒng)可行性分析……………………………………………………….2</p><p> 2.1.2系統(tǒng)功能模塊劃分………………………………………………………..3</p><p> 2.2數(shù)據(jù)庫(kù)設(shè)計(jì)…………………………………………………………………….4</p><p> 2.2.1數(shù)據(jù)庫(kù)需求分析………………………………………………………….4<
5、/p><p> 2.2.2數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)………………………………………………………….4</p><p> 2.2.3數(shù)據(jù)庫(kù)實(shí)現(xiàn)……………………………………………………………….5</p><p> 2.3表單設(shè)計(jì)……………………………………………………………………….7</p><p> 2.3.1材料信息維護(hù)表單……………………………
6、………………………….7</p><p> 2.3.2材料信息查詢表單…………………………………………….………..14</p><p> 2.3.3出入庫(kù)管理表單…………………………………………….…………..15</p><p> 2.3.4用戶向?qū)е谱鲌?bào)表…………………………………………….…………23</p><p> 2.3
7、.5主表單設(shè)計(jì)…………………………………………….…………………25</p><p> 2.4主控程序設(shè)計(jì)…………………………………………….……………………26</p><p> 第三章 問題討論……………………………..…………….………………….….27</p><p> 3.1系統(tǒng)功能設(shè)計(jì)的不完善……………………………………………….………27<
8、/p><p> 3.2代碼維護(hù)…………………………………………….…………………………27</p><p> 3.3數(shù)據(jù)維護(hù)…………………………………………….…………………………27</p><p> 3.3.1數(shù)據(jù)庫(kù)的安全問題…………………………………………….………….27</p><p> 3.3.2數(shù)據(jù)的安全問題……………………
9、……………………….…………….27</p><p> 第四章 總結(jié)………………………………………………………………………..28</p><p> 4.1論文總結(jié) ………………………………………………………………………28</p><p> 4.2工作展望 ………………………………………………………………………28</p><p>
10、 參考文獻(xiàn) ……………………………………………………………………………29 </p><p> 致謝……………………………………………………………………………………30</p><p> 第一章 技術(shù)背景和分析</p><p> Visual FoxPro是為數(shù)據(jù)庫(kù)結(jié)構(gòu)和應(yīng)用程序開發(fā)而設(shè)計(jì)的功能強(qiáng)大的面向?qū)ο蟮能浖o論是組織信息、運(yùn)行查詢、創(chuàng)建集成的關(guān)系
11、型數(shù)據(jù)庫(kù)系統(tǒng),還是為最終用戶編寫功能全面的數(shù)據(jù)管理應(yīng)用程序,Visual FoxPro都可以提管理數(shù)據(jù)所需的工具,可以在應(yīng)用程序或數(shù)據(jù)庫(kù)開發(fā)的任何一個(gè)領(lǐng)域中提供幫助。本系統(tǒng)使用Visual FoxPro來設(shè)計(jì)開發(fā)的原因是Visual FoxPro具有三大特點(diǎn)。</p><p><b> 一、強(qiáng)大的管理功能</b></p><p> VFP提了一種稱為“項(xiàng)目管理器”
12、(program manager)的管理工具,可供用戶對(duì)所開發(fā)項(xiàng)目中的數(shù)據(jù)、文檔、源代碼和類庫(kù)(class library)等資源進(jìn)行集中高效的管理,開發(fā)與維護(hù)均更加方便。</p><p> 二、大量使用可視化的界面操作工具</p><p> VFP 6.0提供向?qū)?wizard)、 設(shè)計(jì)器(designer)、生成器(builder)等3類界面操作工具,達(dá)40種之多。它們普遍采用圖形
13、界面,能幫助用戶簡(jiǎn)便快捷地完成各種查詢和設(shè)計(jì)任務(wù)。VFP的設(shè)計(jì)器普遍配有工具欄和彈出式的快捷菜單。每個(gè)工具按鈕對(duì)應(yīng)一項(xiàng)功能;用戶可通過它們方便地完成操作或設(shè)計(jì)控件,不必編程或很少編程即可實(shí)現(xiàn)美觀實(shí)用的應(yīng)用程序界面。大多數(shù)設(shè)計(jì)器還提快捷菜單,內(nèi)含最常用的菜單選項(xiàng),供用戶隨時(shí)調(diào)用。</p><p> 三、支持面向?qū)ο蟮某绦蛟O(shè)計(jì)</p><p> VFP除繼續(xù)使用傳統(tǒng)的面向過程的程序設(shè)計(jì)外,
14、還支持面向?qū)ο蟮某绦蛟O(shè)計(jì)。允許用戶對(duì)“對(duì)象”(object)和“類”(class)進(jìn)行定義,并編寫相應(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í)為用戶的編程帶來了很大的方便。</p><p&
15、gt;<b> 第二章 系統(tǒng)實(shí)施</b></p><p><b> 2.1系統(tǒng)設(shè)計(jì)</b></p><p> 本系統(tǒng)設(shè)計(jì)包括兩個(gè)部分:系統(tǒng)分析和系統(tǒng)功能模塊設(shè)計(jì)。</p><p><b> 2.1.1系統(tǒng)分析</b></p><p> 2.1.1.1用戶需求分析<
16、;/p><p> 某藥店根據(jù)業(yè)務(wù)發(fā)展的要求,選定建立一個(gè)“藥品庫(kù)房管理系統(tǒng)”,以取代人工管理。開發(fā)目的如下:</p><p> l、必須要指定的專門人員才能對(duì)藥品倉(cāng)庫(kù)的日常事務(wù)進(jìn)行管理。</p><p> 2、能夠?qū)λ幤穾?kù)房?jī)?nèi)的有關(guān)各種藥品材料的數(shù)據(jù)進(jìn)行輸入、修改與查詢。</p><p> 3、當(dāng)有藥品入庫(kù)或出庫(kù)時(shí),能夠更新藥品的數(shù)據(jù)進(jìn)行
17、輸入、修改與查詢。</p><p> 4、要求有專門的報(bào)表存儲(chǔ)藥品材料的出入庫(kù)信息,能夠打印報(bào)表。</p><p> 2.1.1.2 系統(tǒng)可行性分析</p><p> 1、四項(xiàng)基本內(nèi)容的實(shí)現(xiàn)</p><p> 用戶在該藥品庫(kù)房管理系統(tǒng)中需要的四項(xiàng)基本內(nèi)容完全可以利用VFP進(jìn)行的相關(guān)設(shè)置(主要是表單設(shè)置)來加以實(shí)現(xiàn)。例如可以用VFP進(jìn)行
18、登錄界面設(shè)計(jì),在表單上添加命令按鈕以實(shí)現(xiàn)對(duì)用戶身份的驗(yàn)證,達(dá)到用戶要求的“必須要指定的專門人才對(duì)藥品倉(cāng)庫(kù)的日常事務(wù)進(jìn)行管理”的目的。</p><p><b> 2、數(shù)據(jù)庫(kù)分析</b></p><p> 藥店中所有藥品材料的信息都可以在VFP項(xiàng)目管理器的數(shù)據(jù)庫(kù)中建立與維護(hù)。該藥品倉(cāng)庫(kù)管理系統(tǒng)查詢藥品信息只需要兩張數(shù)據(jù)表(即材料信息表和出入庫(kù)信息表)就可以滿足需求。&
19、lt;/p><p> 3、系統(tǒng)的發(fā)布及其運(yùn)行環(huán)境。</p><p> ?。?)系統(tǒng)的發(fā)布:VFP項(xiàng)目管理器提供了一個(gè)管理應(yīng)用系統(tǒng)的集成環(huán)境,而且VFP提供的安裝向?qū)?,支持用戶為所開發(fā)的項(xiàng)目創(chuàng)建一套“安裝(磁)盤”,供系統(tǒng)發(fā)布使用。</p><p> ?。?)系統(tǒng)的運(yùn)行環(huán)境:操作系統(tǒng)Windows9x系列、用戶自定義安裝需要85MB硬盤空間,完全安裝需要90MB硬盤空間
20、,內(nèi)存要求16MB以上。推薦使用VGA或更高分辨率的顯示器。</p><p> 2.1.2 系統(tǒng)功能模塊劃分</p><p> 根據(jù)以上分析,可以進(jìn)行系統(tǒng)的功能模塊劃分,如圖2—1所示: </p><p> 圖2—1系統(tǒng)功能模塊</p><p> 功能模塊劃分圖中各個(gè)模塊的功能如下:</p><p><b
21、> 1、登錄界面</b></p><p> 通過輸入管理員的用戶名和密碼進(jìn)入系統(tǒng)。</p><p><b> 2、主表單</b></p><p> 用戶可以在主表單上根據(jù)需要進(jìn)行選擇以實(shí)現(xiàn)各種不同的操作。</p><p> 3、庫(kù)存材料信息的維護(hù)</p><p> 新
22、材料入庫(kù)時(shí),系統(tǒng)允許管理員添加新材料的記錄。材料出庫(kù)或產(chǎn)品過期需要清除時(shí),管理員可以刪除產(chǎn)品信息。記錄有誤時(shí)管理員可以修改數(shù)據(jù)表中的記錄。</p><p> 4、庫(kù)存材料信息的查詢</p><p> 信息查詢是倉(cāng)庫(kù)管理系統(tǒng)的重要組成部分。用戶可以按照材料編號(hào)和材料名稱等查詢條件查詢倉(cāng)庫(kù)中的材料信息。</p><p> 5、材料的入庫(kù)、出庫(kù)</p>
23、<p> 新產(chǎn)品或材料需要出入庫(kù)時(shí),管理員可以直接進(jìn)行出入庫(kù)操作;出入庫(kù)操作后,程序自動(dòng)修改庫(kù)存材料的信息。</p><p><b> 6、報(bào)表打印功能</b></p><p> 可以打印庫(kù)存表,出入庫(kù)記錄的報(bào)表。</p><p><b> 2.2 數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p&
24、gt; 2.2.1數(shù)據(jù)庫(kù)需求分析</p><p> 根據(jù)上一節(jié)的系統(tǒng)分析,本系統(tǒng)主要是實(shí)現(xiàn)倉(cāng)庫(kù)藥品信息和出入庫(kù)信息的管理。因此,該藥品倉(cāng)庫(kù)管理系統(tǒng)的數(shù)據(jù)關(guān)系比較簡(jiǎn)單,只需要兩張數(shù)據(jù)表:材料信息表和出入庫(kù)記錄信息表。</p><p> 2.2.2 數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)</p><p> 本系統(tǒng)中需要兩個(gè)數(shù)據(jù)表:材料信息表和出入庫(kù)信息表,數(shù)據(jù)表的字段和結(jié)構(gòu)如表1和表2
25、所示:</p><p><b> 表1材料信息表</b></p><p><b> 表2出入庫(kù)信息表</b></p><p> 2.2.3 數(shù)據(jù)庫(kù)實(shí)現(xiàn)</p><p> 本系統(tǒng)開發(fā)中,首先創(chuàng)建庫(kù)房管理系統(tǒng)的數(shù)據(jù)庫(kù),然后在數(shù)據(jù)庫(kù)中創(chuàng)建需要的數(shù)據(jù)表,為數(shù)據(jù)表添加記錄。如果需要,還可以設(shè)計(jì)視圖和存
26、儲(chǔ)過程以及觸發(fā)器等。下面設(shè)計(jì)本系統(tǒng)數(shù)據(jù)庫(kù),詳細(xì)步驟如下:</p><p> 1、創(chuàng)建項(xiàng)目文件“庫(kù)房管理.pjx”,保存路徑為project\庫(kù)房管理系統(tǒng)。</p><p> 2、在該項(xiàng)目中新建數(shù)據(jù)庫(kù)“倉(cāng)庫(kù)管理”,保存路徑為project\倉(cāng)庫(kù)管理系統(tǒng)\data。</p><p> 3、在數(shù)據(jù)庫(kù)中新建材料信息表,保存路徑為project\倉(cāng)庫(kù)管理系統(tǒng)\data\
27、材料信息.dbf。</p><p> 在Table Designer的Fields選項(xiàng)卡中根據(jù)表1的內(nèi)容設(shè)置數(shù)據(jù)表的字段及其屬性,如2—2圖所示:</p><p> 圖2—2 “材料信息”表的字段設(shè)置</p><p> 切換到Indexes選項(xiàng)卡,設(shè)置表索引。如圖2—3所示。將“材料編號(hào)”設(shè)置為主索引,索引類型為Primary。將“材料名稱”設(shè)置為普通索引,索
28、引類型為Regular。</p><p> 圖2—3 “材料信息”表的索引設(shè)置</p><p> 關(guān)閉Table Designer,在“材料信息”表中添加記錄。具體做法是:在Project Designer中選中材料信息表,單擊Browse按鈕,瀏覽數(shù)據(jù)表。然后在Visual FoxPro 6.0的主窗口中選取Table | Append New Record菜單命令,在數(shù)據(jù)表中添加新
29、的記錄。</p><p> 出入庫(kù)信息的創(chuàng)建方法與材料信息表相似,保存路徑也與材料信息表相同。表的字段設(shè)置和索引分別如圖2—4、圖2—5所示:</p><p> 圖2—4 “出入庫(kù)信息”表的字段設(shè)置</p><p> 圖2—5 “出入庫(kù)信息”表的索引設(shè)置</p><p> 表建立完成后,打開Database Designer,創(chuàng)建數(shù)據(jù)
30、表之間的關(guān)聯(lián)關(guān)系。其結(jié)果如圖2—6所示。其中,材料信息表和出入庫(kù)信息表之間通過索引“材料編號(hào)”相關(guān)聯(lián)。</p><p> 圖2—6 數(shù)據(jù)表的關(guān)聯(lián)關(guān)系</p><p> 至此,數(shù)據(jù)庫(kù)和數(shù)據(jù)表的設(shè)計(jì)完成。下面進(jìn)入庫(kù)房管理系統(tǒng)的表單設(shè)計(jì)。</p><p><b> 2.3 表單設(shè)計(jì)</b></p><p> 本系統(tǒng)主要
31、功能模塊的實(shí)現(xiàn)由4個(gè)表單完成,分別是:材料信息維護(hù)表單、材料信息查詢表單、出入庫(kù)管理表單和用于選擇操作類型的主界面。</p><p> 2.3.1 材料信息維護(hù)表單</p><p> 材料信息維護(hù)表單的功能主要是完成材料信息的添加、修改和刪除等操作。</p><p> 1、材料信息維護(hù)表單設(shè)計(jì)</p><p> 在項(xiàng)目中新建表單,保存
32、路徑為“project\倉(cāng)庫(kù)管理系統(tǒng)\forms\材料信息.scx”,在表單的Data Environment中添加“材料信息”表。在表單上添加控件并設(shè)置控件的屬性,得到如圖2—7所示的表單。</p><p> 圖2—7材料信息維護(hù)表單</p><p> 整個(gè)“材料信息維護(hù)”表單分為3部分,最上面的一部分是在一個(gè)Container控件中顯示當(dāng)前材料記錄的信息,如材料編號(hào)、材料名稱、規(guī)格
33、、單位和單價(jià)等。中間是4個(gè)命令按鈕分別表示第一條記錄、上一條記錄、下一條記錄、和最后一條記錄。下面是維護(hù)操作功能按鈕,包括添加、修改、刪除、保存和退出5種功能按鈕。</p><p><b> 2、添加響應(yīng)代碼</b></p><p> 下面為表單添加響應(yīng)代碼,實(shí)現(xiàn)上述各項(xiàng)功能。</p><p> “首記錄”按鈕。單擊按鈕時(shí),顯示“材料信息
34、”表的第一記錄。即表中第一條記錄被設(shè)為當(dāng)前記錄。該按鈕的Click事件代碼如下:</p><p><b> Go top</b></p><p> Thisform.Refresh</p><p> “末記錄”按鈕。單擊按鈕時(shí),顯示“材料信息”表的最后一條記錄,即表中最后一條記錄被設(shè)置為當(dāng)前記錄。該按鈕的Click事件代碼如下:</
35、p><p><b> Go bottom</b></p><p> Thisform.Refresh</p><p> “上一條”按鈕。單擊按鈕時(shí),顯示當(dāng)前記錄上一條記錄。該按鈕的Click事件代碼如下:</p><p> thisform.text1.readonly=.t.</p><p>
36、; thisform.text2.readonly=.t.</p><p> thisform.text3.readonly=.t.</p><p> thisform.text4.readonly=.t.</p><p> thisform.text5.readonly=.t. </p><p> thisform.text6.r
37、eadonly=.t. </p><p> thisform.text7.readonly=.t.</p><p> thisform.text8.readonly=.t.</p><p> thisform.edit1.readonly=.t.</p><p> &&設(shè)置各Text Box和Edit的ReadOnly
38、屬性</p><p><b> if eof()</b></p><p><b> go bottom</b></p><p><b> else</b></p><p><b> skip –1</b></p><p>&
39、lt;b> endif</b></p><p> thisform.refresh</p><p> “下一條”按鈕。單擊按鈕時(shí),顯示當(dāng)前記錄的下一條記錄。該按鈕的Click事件代碼如下:</p><p> thisform.text1.readonly=.t.</p><p> thisform.text2.re
40、adonly=.t.</p><p> thisform.text3.readonly=.t.</p><p> thisform.text4.readonly=.t.</p><p> thisform.text5.readonly=.t.</p><p> thisform.text6.readonly=.t.</p>
41、<p> thisform.text7.readonly=.t.</p><p> thisform.text8.readonly=.t.</p><p> thisform.edit1.readonly=.t.</p><p> &&設(shè)置各Text Box控件的屬性</p><p><b>
42、 if eof()</b></p><p><b> go top</b></p><p><b> else</b></p><p><b> skip 1</b></p><p><b> endif</b></p>
43、<p> thisform.refresh</p><p> “添加”按鈕。單擊按鈕時(shí),完成材料添加功能,在材料信息表中加入一條新記錄。該按鈕的Click事件代碼如下:</p><p><b> go bottom</b></p><p> tempnum=val(材料信息.材料編號(hào))</p><p>
44、 &&獲取最后一條記錄的材料編號(hào)字段</p><p> append blank</p><p><b> go bottom</b></p><p> replace 材料信息.材料編號(hào) with alltrim(str(tempnum+1))</p><p> &&在表尾添加
45、一條新記錄</p><p> thisform.command1.enabled=.f.</p><p> thisform.command2.enabled=.f.</p><p> thisform.command3.enabled=.f.</p><p> thisform.command4.enabled=.f.</p&
46、gt;<p> thisform.command5.enabled=.f.</p><p> thisform.command6.enabled=.f.</p><p> thisform.command7.enabled=.f.</p><p> thisform.command8.enabled=.f.</p><p&g
47、t; thisform.command9.enabled=.f.</p><p> &&設(shè)置各按鈕的有效狀態(tài),在添加新記錄的過程中,為防止出錯(cuò),應(yīng)設(shè)置除“保存”按鈕之外的其他按鈕為無效。這樣,在輸入完成后,只能使用“保存”按鈕來保存記錄。</p><p> thisform.text1.readonly=.f.</p><p> thisfo
48、rm.text2.readonly=.f.</p><p> thisform.text3.readonly=.f.</p><p> thisform.text4.readonly=.f.</p><p> thisform.text5.readonly=.f.</p><p> thisform.text6.readonly=.f
49、.</p><p> thisform.text7.readonly=.f.</p><p> thisform.text8.readonly=.f.</p><p> thisform.edit1.readonly=.f.</p><p> &&設(shè)置各TextBox控件的屬性</p><p>
50、 thisform.refresh</p><p> “修改”按鈕。單擊按鈕時(shí),修改當(dāng)前記錄。該按鈕的Click事件代碼如下:</p><p> thisform.command1.enabled=.f.</p><p> thisform.command2.enabled=.f.</p><p> thisform.command
51、3.enabled=.f.</p><p> thisform.command4.enabled=.f.</p><p> thisform.command5.enabled=.f.</p><p> thisform.command6.enabled=.f.</p><p> thisform.command7.enabled=.f
52、.</p><p> thisform.command8.enabled=.f.</p><p> thisform.command9.enabled=.f.</p><p> thisform.text1.readonly=.f.</p><p> thisform.text2.readonly=.f.</p><
53、;p> thisform.text3.readonly=.f.</p><p> thisform.text4.readonly=.f.</p><p> thisform.text5.readonly=.f.</p><p> thisform.text6.readonly=.f.</p><p> thisform.tex
54、t7.readonly=.f.</p><p> thisform.text8.readonly=.f.</p><p> thisform.edit1.readonly=.f.</p><p> thisform.refresh</p><p> &&本段代碼主要功能是設(shè)置表單上各控件的可讀寫狀態(tài)。</p>
55、;<p> “刪除”按鈕。單擊按鈕時(shí),刪除表中當(dāng)前記錄。該按鈕的Click事件代碼如下:</p><p> tempstr=messagebox(“是否刪除記錄?”,4+32+256,”刪除對(duì)話框”)</p><p> if tempstr=6</p><p> set exclusive on</p><p><
56、b> delete</b></p><p><b> pack</b></p><p> set exclusive off</p><p> thisform.refresh</p><p><b> endif</b></p><p> &a
57、mp;&在刪除記錄之前,首先設(shè)置表的操作方式為Exclusive(獨(dú)占方式),然后用Delete語句為當(dāng)前記錄加上刪除標(biāo)記,最后使用Pack語句刪除有標(biāo)記的記錄。</p><p> “保存”按鈕。單擊按鈕時(shí),將表單中用戶輸入的信息保存到“材料信息”表。該按鈕的Click事件代碼如下:</p><p> dimension aaa(9)</p><p>&
58、lt;b> &&定義數(shù)組</b></p><p> aaa(1)=thisform.text1.value</p><p> aaa(2)=thisform.text2.value</p><p> aaa(3)=thisform.text3.value</p><p> aaa(4)=thisfo
59、rm.text4.value</p><p> aaa(5)=thisform.text5.value</p><p> aaa(6)=thisform.text6.value</p><p> aaa(7)=thisform.text7.value</p><p> aaa(8)=thisform.text8.value</p
60、><p> aaa(9)=thisform.text9.value</p><p> &&將表單中的輸入值存儲(chǔ)到數(shù)組中</p><p> replace 材料信息.材料編號(hào) with aaa(1)</p><p> replace 材料信息.規(guī)格 with aaa(2)</p><p> repl
61、ace 材料信息.單價(jià) with aaa(3)</p><p> replace 材料信息.產(chǎn)地 with aaa(4)</p><p> replace 材料信息.生產(chǎn)廠家 with aaa(5)</p><p> replace 材料信息.材料名稱 with aaa(6)</p><p> replace 材料信息.單位 with
62、 aaa(7)</p><p> replace 材料信息.數(shù)量 with aaa(8)</p><p> replace 材料信息.備注 with aaa(9)</p><p> &&用數(shù)組修改表記錄的各字段</p><p> thisform.command1.enabled=.t.</p><
63、p> thisform.command2.enabled=.t.</p><p> thisform.command3.enabled=.t.</p><p> thisform.command4.enabled=.t.</p><p> thisform.command5.enabled=.t.</p><p> thisf
64、orm.command6.enabled=.t.</p><p> thisform.command7.enabled=.t.</p><p> thisform.command8.enabled=.t.</p><p> thisform.command9.enabled=.t.</p><p> &&設(shè)置各按鈕的有
65、效狀態(tài)</p><p> thisform.text1.readonly=.t.</p><p> thisform.text2.readonly=.t.</p><p> thisform.text3.readonly=.t.</p><p> thisform.text4.readonly=.t.</p><p
66、> thisform.text5.readonly=.t.</p><p> thisform.text6.readonly=.t.</p><p> thisform.text7.readonly=.t.</p><p> thisform.text8.readonly=.t.</p><p> thisform.edit1
67、.readonly=.t.</p><p> thisform.refresh</p><p> &&設(shè)置TextBox控件為只讀</p><p> “退出”按鈕。單擊該按鈕,退出表單。該按鈕的Click事件代碼如下:</p><p> Thisform.Release</p><p> 另外
68、表單初始化時(shí)“保存”按鈕應(yīng)該為不可用,且顯示的內(nèi)容應(yīng)該處于只讀狀態(tài),因此為表單的Init事件添加如下代碼:</p><p> thisform.text1.readonly=.t.</p><p> thisform.text2.readonly=.t.</p><p> thisform.text3.readonly=.t.</p><p
69、> thisform.text4.readonly=.t.</p><p> thisform.text5.readonly=.t.</p><p> thisform.text6.readonly=.t.</p><p> thisform.text7.readonly=.t.</p><p> thisform.text8
70、.readonly=.t.</p><p> thisform.edit1.readonly=.t.</p><p> thisform.command8.enabled=.f.</p><p> 設(shè)計(jì)完成后,運(yùn)行表單。如圖2—8所示:</p><p> 圖2—8材料信息維護(hù)表單的運(yùn)行結(jié)果</p><p>
71、2.3.2材料信息查詢表單</p><p> 材料信息查詢表單的功能是實(shí)現(xiàn)材料信息的快速檢索。當(dāng)用戶輸入材料編號(hào)或名稱后,可快速檢索出所有符合條件的材料記錄。</p><p> 1、材料信息查詢表單設(shè)計(jì)</p><p> 新建表單“材料信息查詢”,保存路徑為“\project\庫(kù)房管理系統(tǒng)\forms\材料信息查詢.scx”,在表單的Data Environm
72、ent中添加“材料信息表”。在表單上添加控件并設(shè)置相應(yīng)的屬性,得到如圖2—9所示的表單。</p><p> 圖2—9材料信息查詢表單</p><p> 在表單上添加了一個(gè)Grid控件,用來顯示查詢的結(jié)果,將Grid的Readonly屬性設(shè)置為.t.。并且通過一個(gè)Combo下拉框控件來實(shí)現(xiàn)多依據(jù)的查詢,本系統(tǒng)中根據(jù)材料編號(hào)和材料名稱實(shí)現(xiàn)名稱查詢,將Combo的Readonly屬性設(shè)置為.
73、t.。</p><p><b> 2、添加響應(yīng)代碼</b></p><p> Combo用于選擇查詢依據(jù)。此處用戶分別選擇“材料編號(hào)”或“材料名稱”進(jìn)行查詢。因此,在表單初始化時(shí),要為Combo Box控件輸入初始值。為存儲(chǔ)查詢結(jié)果,還要定義一個(gè)在表單運(yùn)行過程中有效的Cursor公共變量。因此,為表單的Init事件添加如下代碼:</p><p&
74、gt; Public tempcursor</p><p> Thisform.Combo1.additem(“材料編號(hào)”)</p><p> Thisform.Combo1.additem(“材料名稱”)</p><p> Thisform.refresh</p><p> “查詢”按鈕完成材料信息的查詢。根據(jù)用戶選擇的查詢依據(jù)和
75、輸入的查詢數(shù)據(jù)的值,在表中查找符合條件的記錄,顯示在表格中。</p><p> “查詢”按鈕的Click事件代碼如下:</p><p> if thisform.Combo1.text=”材料編號(hào)”</p><p><b> select *;</b></p><p> from \project\庫(kù)房管理系統(tǒng)\
76、data\材料信息.dbf;</p><p> where 材料編號(hào)=alltrim(thisform.text1.value);</p><p> into cursor tempcursor;</p><p> thisform.grid1.recordsource=tempcursor;</p><p><b> en
77、dif</b></p><p> thisform.refresh</p><p> &&按照材料編號(hào)查詢</p><p> if thisform.Combol,text=“材料名稱”</p><p><b> select *;</b></p><p>
78、from \project\倉(cāng)庫(kù)管理系統(tǒng)\data\材料信息.dbf;</p><p> where 材料名稱=alltrim(thisform.text1.value);</p><p> into cursor tempcursor;</p><p> thisform.grid1.recordsource=tempcursor;</p>&
79、lt;p><b> endif</b></p><p> thisform.refresh</p><p> &&按照材料名稱查詢</p><p><b> 3、運(yùn)行表單</b></p><p> 設(shè)計(jì)完成后,運(yùn)行表單,結(jié)果如圖2—10所示:</p>&
80、lt;p> 圖2—10材料信息查詢表單的運(yùn)行結(jié)果</p><p> 2.3.3出入庫(kù)管理表單</p><p> 出入庫(kù)管理表單實(shí)現(xiàn)的功能是記錄材料的出入庫(kù)信息,并修改相應(yīng)材料信息表。</p><p> 1、出入庫(kù)管理表單設(shè)計(jì)</p><p> 出庫(kù)和入庫(kù)的功能、結(jié)構(gòu)都比較相似,因而這里用一個(gè)表單來實(shí)現(xiàn)它們。表單中使用PageF
81、rame控件,分兩個(gè)頁面分別實(shí)現(xiàn)入庫(kù)和出庫(kù)的功能。</p><p> 新建表單“出入庫(kù)管理”,保存路徑為“\project\倉(cāng)庫(kù)管理系統(tǒng)\forms\出入庫(kù)管理.scx”。</p><p> 在表單的Data Environment中添加“出入庫(kù)信息”數(shù)據(jù)表。</p><p> 該表單使用了一個(gè)PageFrame控件Pageframe1,將Pageframe的
82、PageCount屬性值設(shè)置為2,即PageFrame設(shè)置為兩頁,分別用于“入庫(kù)”管理和“出庫(kù)”管理。將Page1的標(biāo)題設(shè)為“入庫(kù)管理”;將Page2的標(biāo)題設(shè)為“出庫(kù)管理”。</p><p><b> 2、入庫(kù)管理</b></p><p> (1)入庫(kù)管理表單設(shè)計(jì)</p><p> 在表單的PageFrame控件單擊鼠標(biāo)右鍵,在彈出的菜單
83、中選取Edit命令,使其處于編輯狀態(tài)。切換到Page1頁面,添加所需控件并設(shè)置其相應(yīng)屬性,界面如圖2—11所示。</p><p> 圖2—11入庫(kù)管理表單</p><p> 在Page1上添加的控件類型有Label、Text、Command Button、Container和Edit Box。</p><p> Edit Box控件和Text Box控件類似,
84、不同之處在于Edit Box控件可以對(duì)多行字符串進(jìn)行編輯,并且有垂直滾動(dòng)條,通常用來顯示或設(shè)置備注字段。下面首先介紹Edit Box控件特有的屬性。如表3所示:</p><p> 表3 Edit Box控件的常用屬性</p><p> Edit Box控件具有的與Text Box控件一樣的屬性,這里不再贅述。</p><p><b> (2)添加響應(yīng)
85、代碼</b></p><p> “確定” 按鈕的Click事件代碼如下:</p><p> select材料編號(hào);</p><p> from project\倉(cāng)庫(kù)管理系統(tǒng)\data\材料信息.dbf;</p><p> where 材料編號(hào)=alltrim(thisform.pageframe1.page1.text1.
86、value);</p><p> into cursor tempcursor</p><p> &&根據(jù)材料編號(hào)在材料信息表中查找記錄</p><p> temp 材料編號(hào)=tempcursor.材料編號(hào)</p><p> if empty(temp 材料編號(hào)) then</p><p>
87、messagebox(“你要添加的材料在材料庫(kù)中”+chr(13)+chr(10)+”沒有找到,請(qǐng)先到材料庫(kù)中”+chr(13)+chr(10)+”登記新材料 ”+temp材料編號(hào),0+64,”材料檢測(cè)”)</p><p> thisform.pageframe1.page1.text2.readonly=.t.</p><p> thisform.pageframe1.page1.t
88、ext3.readonly=.t.</p><p> thisform.pageframe1.page1.text4.readonly=.t.</p><p> thisform.pageframe1.page1.text5.readonly=.t.</p><p> thisform.pageframe1.page1.edit1.readonly=.t.&l
89、t;/p><p> &&材料信息表中沒有該編號(hào)的材料,提示用戶更新材料信息表,并設(shè)置各Text控件為只讀。</p><p><b> else</b></p><p> messagebox(“繼續(xù)下面的入庫(kù)信息填寫”,0+64,”材料檢測(cè)”)</p><p> thisform.pageframe1
90、.page1.text2.readonly=.f.</p><p> thisform.pageframe1.page1.text3.readonly=.f.</p><p> thisform.pageframe1.page1.text4.readonly=.f.</p><p> thisform.pageframe1.page1.text5.readon
91、ly=.f.</p><p> thisform.pageframe1.page1.edit1.readonly=.f.</p><p><b> endif</b></p><p> &&材料編號(hào)正確,允許用戶繼續(xù)輸入。</p><p> Close tables</p><
92、p> thisform.pageframe1.page1.refresh</p><p> 當(dāng)進(jìn)行入庫(kù)登記時(shí),用戶首先輸入“入庫(kù)材料編號(hào)”。如果材料信息表中有該材料的信息,且“Txt出入庫(kù)編號(hào)”、“Txt出入庫(kù)日期”、“Txt經(jīng)手人”、“Txt數(shù)量”、“Txt備注”的ReadOnly屬性為.F.,用戶才可以繼續(xù)輸入。如果該材料不在材料信息表中,將提示用戶首先檢查材料信息表。如圖2—12所示,當(dāng)輸入的“入
93、庫(kù)材料編號(hào)”不在材料表中時(shí),提示用戶檢查材料表。</p><p> 圖2—12材料編號(hào)不在材料表中時(shí)的運(yùn)行結(jié)果</p><p> 如果材料編號(hào)正確,用戶可以進(jìn)行“入庫(kù)”操作。</p><p> 單擊“入庫(kù)”按鈕時(shí),根據(jù)用戶的輸入完成入庫(kù)操作并更新入庫(kù)信息表?!叭霂?kù)”按鈕的Click事件代碼如下:</p><p> dimension
94、bbb(7)</p><p><b> &&定義數(shù)組</b></p><p> temp 數(shù)量=val(alltrim(thisform.pageframe1.page1.text4.value))</p><p> bbb(1)= alltrim(thisform.pageframe1.page1.text2.value
95、)</p><p> bbb(2)= “i”</p><p> bbb(3)= alltrim(thisform.pageframe1.page1.text1.value)</p><p> bbb(4)= alltrim(thisform.pageframe1.page1.text3.value)</p><p> bbb(5)=
96、alltrim(thisform.pageframe1.page1.text4.value)</p><p> bbb(6)= alltrim(thisform.pageframe1.page1.text5.value)</p><p> bbb(7)= alltrim(thisform.pageframe1.page1.editt1.value)</p><p&g
97、t; &&將入庫(kù)信息存儲(chǔ)在數(shù)組中</p><p> replace 出入庫(kù)信息.出入庫(kù)編號(hào) with bbb(1)</p><p> replace 出入庫(kù)信息.類型 with bbb(2)</p><p> replace 出入庫(kù)信息.材料編號(hào) with bbb(3)</p><p> replace 出入庫(kù)信息.
98、出入庫(kù)日期 with bbb(4)</p><p> replace 出入庫(kù)信息.數(shù)量 with bbb(5)</p><p> replace 出入庫(kù)信息.經(jīng)手人 with bbb(6)</p><p> replace 出入庫(kù)信息.備注 with bbb(7)</p><p> &&將記錄插入出入庫(kù)信息表中<
99、/p><p><b> select *;</b></p><p> from “project\倉(cāng)庫(kù)管理系統(tǒng)\data\材料信息.dbf”;</p><p> where 材料編號(hào)=alltrim(thisform.pageframe1.page1.text1.value);</p><p> into curso
100、r tempcursor</p><p> num1= tempcursor.數(shù)量</p><p> 在材料信息表中按“材料編號(hào)”查找記錄</p><p> update project\倉(cāng)庫(kù)管理系統(tǒng)\data\材料信息.dbf set;</p><p> 數(shù)量=num1+temp數(shù)量;</p><p> w
101、here 材料編號(hào)=alltrim(thisform.pageframe1.page1.text1.value);</p><p><b> &&修改材料信息表</b></p><p> thisform.pageframe1.page1.text1.value=””</p><p> thisform.pageframe
102、1.page1.text2.value=””</p><p> thisform.pageframe1.page1.text3.value=””</p><p> thisform.pageframe1.page1.text4.value=””</p><p> thisform.pageframe1.page1.text5.value=””</p>
103、;<p> thisform.pageframe1.page1.text6.value=””</p><p> thisform.pageframe1.page1.edit1.value=””</p><p> &&重置Text Box控件和Edit值</p><p> thisform.pageframe1.page1.tex
104、t2.readonly=.t.</p><p> thisform.pageframe1.page1.text3.readonly=.t.</p><p> thisform.pageframe1.page1.text4.readonly=.t.</p><p> thisform.pageframe1.page1.text5.readonly=.t.<
105、/p><p> thisform.pageframe1.page1.edit1.readonly=.t.</p><p> &&重置控件的ReadOnly屬性</p><p> thisform.refresh</p><p> 單擊“取消”按鈕時(shí),取消用戶的前一次操作,表單恢復(fù)為初始狀態(tài)?!叭∠卑粹o的Click事件代碼
106、如下:</p><p> thisform.pageframe1.page1.text1.value=””</p><p> thisform.pageframe1.page1.text2.value=””</p><p> thisform.pageframe1.page1.text3.value=””</p><p> thisf
107、orm.pageframe1.page1.text4.value=””</p><p> thisform.pageframe1.page1.text5.value=””</p><p> thisform.pageframe1.page1.text6.value=””</p><p> thisform.pageframe1.page1.edit1.valu
108、e=””</p><p> &&重置Text Box控件和Edit值</p><p> thisform.pageframe1.page1.text2.readonly=.t.</p><p> thisform.pageframe1.page1.text3.readonly=.t.</p><p> thisform
109、.pageframe1.page1.text4.readonly=.t.</p><p> thisform.pageframe1.page1.text5.readonly=.t.</p><p> thisform.pageframe1.page1.edit1.readonly=.t.</p><p> &&重置控件的ReadOnly屬性&l
110、t;/p><p> thisform. pageframe1.page1.refresh</p><p> “退出”按鈕的功能是返回主控界面。該按鈕的Click事件代碼如下:</p><p> do form project\倉(cāng)庫(kù)管理系統(tǒng)\forms\主表單.scx</p><p> thisform.release</p>
111、<p><b> 3、出庫(kù)管理</b></p><p> ?。?)出庫(kù)管理表單設(shè)計(jì)</p><p> 出庫(kù)管理的頁面設(shè)計(jì)與入庫(kù)管理的頁面相似,如圖2—13所示:</p><p> 圖2—13出庫(kù)管理表</p><p> 進(jìn)行出庫(kù)管理時(shí),用戶必須先輸入“出庫(kù)材料編號(hào)”,然后單擊“確定”按鈕。如果該材料編
112、號(hào)在材料信息表中,允許用戶繼續(xù)完成出入庫(kù)信息輸入,否則提示錯(cuò)誤,要求用戶重新輸入材料編號(hào)。</p><p><b> (2)添加響應(yīng)代碼</b></p><p> “確定” 按鈕的Click事件代碼如下:</p><p> select材料編號(hào);</p><p> from project\倉(cāng)庫(kù)管理系統(tǒng)\data
113、\材料信息.dbf;</p><p> where 材料編號(hào)=alltrim(thisform.pageframe1.page2.text1.value);</p><p> into cursor tempcursor</p><p> &&根據(jù)材料編號(hào)在材料信息表中查找記錄</p><p> temp 材料編號(hào)=t
114、empcursor.材料編號(hào)</p><p> if empty(temp 材料編號(hào)) then</p><p> messagebox(“你要添加的材料在材料庫(kù)中”+chr(13)+chr(10)+”沒有找到,請(qǐng)先到材料庫(kù)中”+chr(13)+chr(10)+”登記新材料 ”+temp材料編號(hào),0+64,”材料檢測(cè)”)</p><p><b> &
115、amp;&提示錯(cuò)誤</b></p><p><b> else</b></p><p> thisform.pageframe1.page2.text2.readonly=.f.</p><p> thisform.pageframe1.page2.text3.readonly=.f.</p><p
116、> thisform.pageframe1.page2.text4.readonly=.f.</p><p> thisform.pageframe1.page2.text5.readonly=.f.</p><p> thisform.pageframe1.page2.edit1.readonly=.f.</p><p><b> endi
117、f</b></p><p> &&材料編號(hào)正確,允許用戶繼續(xù)輸入。</p><p> thisform.pageframe1.page2.refresh</p><p> 出庫(kù)信息輸完后,單擊“出庫(kù)”按鈕,將完成材料的出庫(kù)操作。如果庫(kù)存材料足夠,將出庫(kù)信息加入出入庫(kù)信息表中,并更新相應(yīng)的材料信息表中的記錄。</p>&
118、lt;p> 如果庫(kù)存材料不足,提示用戶出錯(cuò)。要求用戶重新輸入。</p><p> “出庫(kù)”按鈕的Click事件代碼如下:</p><p> dimension ccc(7)</p><p><b> &&定義數(shù)組</b></p><p> temp 數(shù)量=val(alltrim(thisf
119、orm.pageframe1.page2.text5.value))</p><p> &&記錄需要出庫(kù)的材料數(shù)量</p><p><b> select *;</b></p><p> from “project\倉(cāng)庫(kù)管理系統(tǒng)\data\材料信息.dbf”;</p><p> where 材料編
120、號(hào)=alltrim(thisform.pageframe1.page2.text1.value);</p><p> into cursor tempcursor</p><p> num1= tempcursor.數(shù)量</p><p> &&記錄原有材料的數(shù)量</p><p> if (num1-temp數(shù)量)<
121、;0 then</p><p> messagebox(“出庫(kù)數(shù)量大于庫(kù)存數(shù)量!”,0+64,”入庫(kù)”)</p><p> thisform.pageframe1.page2.text5.value=’’</p><p> &&庫(kù)存不足,提示用戶出錯(cuò)</p><p><b> else</b>&l
122、t;/p><p> update project\庫(kù)房管理系統(tǒng)\data\材料信息.dbf set;</p><p> 數(shù)量=num1-temp數(shù)量;</p><p> where 材料編號(hào)=alltrim(thisform.pageframe1.page2.text1.value);</p><p> &&修改材料數(shù)量信
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 庫(kù)房管理系統(tǒng)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----藥品庫(kù)房管理系統(tǒng)
- 畢業(yè)設(shè)計(jì)(論文)-vfp庫(kù)房管理信息系統(tǒng)的設(shè)計(jì)
- 藥品庫(kù)房管理系統(tǒng).doc
- 藥品庫(kù)房管理系統(tǒng).pdf
- 機(jī)房管理系統(tǒng)畢業(yè)設(shè)計(jì)
- 庫(kù)房管理規(guī)定
- 醫(yī)院藥品庫(kù)房管理系統(tǒng).doc
- 庫(kù)房管理制度 庫(kù)房管理制度樣本
- 畢業(yè)設(shè)計(jì)---賓館客房管理系統(tǒng)
- 畢業(yè)設(shè)計(jì)--賓館客房管理系統(tǒng)
- 客房管理系統(tǒng)畢業(yè)設(shè)計(jì) (2)
- 畢業(yè)設(shè)計(jì)---vb藥房管理系統(tǒng)設(shè)計(jì)
- 庫(kù)房管理辦法
- 庫(kù)房管理辦法
- 消防庫(kù)房管理流程
- 畢業(yè)設(shè)計(jì)---賓館客房管理系統(tǒng)的設(shè)計(jì)
- 庫(kù)房管理制度
- 庫(kù)房管理制度
- 產(chǎn)品庫(kù)房管理規(guī)定
評(píng)論
0/150
提交評(píng)論