倉(cāng)庫(kù)管理手冊(cè)系統(tǒng)37182589_第1頁(yè)
倉(cāng)庫(kù)管理手冊(cè)系統(tǒng)37182589_第2頁(yè)
倉(cāng)庫(kù)管理手冊(cè)系統(tǒng)37182589_第3頁(yè)
倉(cāng)庫(kù)管理手冊(cè)系統(tǒng)37182589_第4頁(yè)
倉(cāng)庫(kù)管理手冊(cè)系統(tǒng)37182589_第5頁(yè)
已閱讀5頁(yè),還剩40頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡(jiǎn)介

1、數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)的結(jié)構(gòu)設(shè)計(jì)是一個(gè)非常重要的問(wèn)題,數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)的好壞將直接對(duì)應(yīng)用系統(tǒng)的效率以及實(shí)現(xiàn)的效果產(chǎn)生影響,好的數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)會(huì)減少數(shù)據(jù)庫(kù)的存儲(chǔ)量,數(shù)據(jù)的完整性和一致性比較高,系統(tǒng)具有較快的響應(yīng)速度。在數(shù)據(jù)庫(kù)系統(tǒng)開發(fā)設(shè)計(jì)的時(shí)候應(yīng)該盡量考慮全面,尤其應(yīng)該仔細(xì)考慮用戶的各種需求,避免在設(shè)計(jì)中浪費(fèi)不必要的人力和物力。4.2.1 數(shù)據(jù)庫(kù)需求分析數(shù)據(jù)庫(kù)需求分析是數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)的第一階段,是非常重要的一個(gè)階段。在這個(gè)階段主要是手機(jī)基本數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)以及確定數(shù)據(jù)處理的流程,為以后進(jìn)一步設(shè)計(jì)打下基礎(chǔ)。在仔細(xì)調(diào)查企業(yè)倉(cāng)庫(kù)物資設(shè)備管理過(guò)程的基礎(chǔ)上,我們得到本系統(tǒng)所處理的數(shù)據(jù)流程,如圖4-2所示。 倉(cāng)庫(kù)現(xiàn)有庫(kù)

2、存 各部門需求 企業(yè)總體生產(chǎn)計(jì)劃匯總 處理設(shè)備 采購(gòu) 設(shè)備 出庫(kù)設(shè)備 入庫(kù) 設(shè)備 還庫(kù)圖4-2 數(shù)據(jù)流程圖針對(duì)本實(shí)例,通過(guò)對(duì)企業(yè)倉(cāng)庫(kù)管理的內(nèi)容和流程分析,設(shè)計(jì)的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)如下。設(shè)備代碼信息包括的數(shù)據(jù)項(xiàng)有設(shè)備號(hào)、設(shè)備名稱現(xiàn)有庫(kù)存信息包括的數(shù)據(jù)項(xiàng)有現(xiàn)有設(shè)備、現(xiàn)有數(shù)目、總數(shù)目、最大庫(kù)存、最小庫(kù)存等。設(shè)備入庫(kù)信息包括的數(shù)據(jù)項(xiàng)有設(shè)備號(hào)、入庫(kù)時(shí)間、供應(yīng)商、供應(yīng)商電話、入庫(kù)數(shù)量、價(jià)格、采購(gòu)員等。設(shè)備出庫(kù)信息包括的數(shù)據(jù)項(xiàng)有設(shè)備號(hào)、使用部門、出庫(kù)時(shí)間、出庫(kù)狀況、經(jīng)手人、出庫(kù)數(shù)量、領(lǐng)取人、用途等。設(shè)備采購(gòu)信息包括的數(shù)據(jù)項(xiàng)有采購(gòu)的設(shè)備、采購(gòu)員、供應(yīng)商、采購(gòu)數(shù)目、采購(gòu)時(shí)間等。設(shè)備歸還信息包括的數(shù)據(jù)項(xiàng)有歸還設(shè)備、

3、歸還部門、歸還數(shù)目、歸還時(shí)間、經(jīng)手人等。設(shè)備需求信息包括的數(shù)據(jù)項(xiàng)有需求的部門、需求設(shè)備、需求數(shù)目、需求時(shí)間等。日志信息包括操作員、操作人員、操作內(nèi)容。有了上面的數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)項(xiàng)和數(shù)據(jù)流程,就能進(jìn)行下面的數(shù)據(jù)庫(kù)設(shè)計(jì)。4.2.2 數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)這一設(shè)計(jì)階段是在需求分析的基礎(chǔ)上,設(shè)計(jì)出能夠滿足用戶需求的各種實(shí)體,以及它們之間的關(guān)系,為后面的邏輯結(jié)構(gòu)設(shè)計(jì)打下基礎(chǔ)。本實(shí)例根據(jù)上面的設(shè)計(jì)規(guī)劃出的實(shí)體有庫(kù)存實(shí)體、入庫(kù)實(shí)體、出庫(kù)實(shí)體、采購(gòu)實(shí)體、還庫(kù)實(shí)體、需求實(shí)體。實(shí)體和實(shí)體之間的關(guān)系E-R圖如圖4-34-8所示。 現(xiàn)有庫(kù)存設(shè)備號(hào) 現(xiàn)有庫(kù)存 警戒庫(kù)存 總數(shù)圖4-3 庫(kù)存實(shí)體E-R圖 入庫(kù)設(shè)備號(hào) 供應(yīng)商信息

4、采購(gòu)價(jià)格信息 采購(gòu)員圖4-4 入庫(kù)實(shí)體E-R圖 出庫(kù)設(shè)備號(hào) 使用部門 數(shù)量 時(shí)間 經(jīng)手人圖4-5 出庫(kù)實(shí)體E-R圖 計(jì)劃采購(gòu)設(shè)備號(hào) 庫(kù)存信息 供應(yīng)信息 時(shí)間圖4-6 設(shè)備采購(gòu)實(shí)體E-R圖 設(shè)備還庫(kù) 設(shè)備號(hào) 還庫(kù)時(shí)間 人 還庫(kù)數(shù)量 經(jīng)手人圖4-7 還庫(kù)實(shí)體E-R圖 部門需求 設(shè)備號(hào) 需求部門 需求數(shù)量 需求時(shí)間圖4-8 部門需求實(shí)體E-R圖 實(shí)體和實(shí)體之間的關(guān)系圖如圖4-9所示。 入庫(kù) 現(xiàn)有庫(kù)存 出庫(kù) 還庫(kù) 部門需求 設(shè)備采購(gòu)圖4-9 實(shí)體關(guān)系圖4.2.3 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)需要將上面的數(shù)據(jù)庫(kù)概念結(jié)構(gòu)轉(zhuǎn)化為Visual FoxPro 60.數(shù)據(jù)庫(kù)系統(tǒng)所支持的實(shí)際數(shù)據(jù)模型,也就是數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)。

5、在上面的實(shí)體以及實(shí)體之間關(guān)系的基礎(chǔ)上,形成數(shù)據(jù)庫(kù)中表以及各個(gè)表之間的關(guān)系。倉(cāng)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)中各個(gè)表的設(shè)計(jì)結(jié)果如下面的幾個(gè)表格所示,每個(gè)表格表示在數(shù)據(jù)庫(kù)中的一個(gè)表。表4-1 為設(shè)備代碼表表4-1列名數(shù)據(jù)類型可否為空設(shè)備號(hào)(主鍵)數(shù)值型(20)不能為空設(shè)備名稱字符型(50)可為空表4-2 為設(shè)備入庫(kù)表表4-2列名數(shù)據(jù)類型可否為空設(shè)備號(hào)數(shù)值型(20)不能為空入庫(kù)時(shí)間(主鍵)日期型(8)可為空供應(yīng)商字符型(50)可為空供應(yīng)商電話字符型(15)可為空入庫(kù)數(shù)量數(shù)值型(20)可為空價(jià)格字符型(10)可為空采購(gòu)員字符型(20)可為空表4-3 為設(shè)備出庫(kù)表表4-3列名數(shù)據(jù)類型可否為空設(shè)備號(hào)數(shù)值型(20)不能為

6、空出庫(kù)時(shí)間(主鍵)日期型(8)可為空使用部門字符型(50)可為空出庫(kù)狀況數(shù)值型(20)可為空經(jīng)手人字符型(20)可為空出庫(kù)數(shù)量數(shù)值型(10)不能為空領(lǐng)取人字符型(50)可為空用途字符型(50)可為空表4-4 為現(xiàn)有庫(kù)存表表4-4列名數(shù)據(jù)類型可否為空設(shè)備號(hào)(主鍵)數(shù)值型(20)不能為空現(xiàn)有庫(kù)存數(shù)值型(20)可為空最大庫(kù)存數(shù)值型(20)可為空最小庫(kù)存數(shù)值型(20)可為空總數(shù)數(shù)值型(20)可為空表4-5 為部門需求表表4-5列名數(shù)據(jù)類型可否為空設(shè)備號(hào)(主鍵)數(shù)值型(20)不能為空部門名稱字符型(20)不能為空需要數(shù)量數(shù)值型(20)可為空需求開始時(shí)間日期型(8)可為空需求結(jié)束時(shí)間日期型(8)可為空表4

7、-6 為設(shè)備還庫(kù)表表4-6列名數(shù)據(jù)類型可否為空設(shè)備號(hào)(主鍵)數(shù)值型(20)不能為空還庫(kù)時(shí)間日期型(8)不能為空倉(cāng)庫(kù)管理員數(shù)值型(20)可為空歸還數(shù)量數(shù)值型(20)可為空歸還人字符型(10)可為空表4-7 為操作日志表表4-7列名數(shù)據(jù)類型可否為空操作員字符型(50)不能為空操作內(nèi)容字符型(50)不能為空操作時(shí)間日期型(8)可為空表4-8 為設(shè)備采購(gòu)計(jì)劃表表4-8列名數(shù)據(jù)類型可否為空設(shè)備號(hào)數(shù)值型(20)不能為空現(xiàn)有庫(kù)存數(shù)值型(20)可為空總庫(kù)存數(shù)值型(20)可為空最大庫(kù)存數(shù)值型(20)可為空購(gòu)買數(shù)量數(shù)值型(20)可為空供應(yīng)商字符型(20)不能為空價(jià)格字符型(10)可為空計(jì)劃采購(gòu)時(shí)間(主鍵)日期型(

8、8)可為空 數(shù)據(jù)庫(kù)結(jié)構(gòu)的實(shí)現(xiàn)在需求分析、概念結(jié)構(gòu)設(shè)計(jì)的基礎(chǔ)上得到數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)之后,我們就可以在Visual FoxPro 60.數(shù)據(jù)庫(kù)系統(tǒng)中實(shí)現(xiàn)該邏輯結(jié)構(gòu)。圖4-10 新建數(shù)據(jù)庫(kù)打開如圖4-10所示的“倉(cāng)庫(kù)管理”項(xiàng)目后,在項(xiàng)目管理器中展開數(shù)據(jù)文件夾,用鼠標(biāo)選中數(shù)據(jù)庫(kù),單擊右側(cè)的“新建”按鈕,在彈出的對(duì)話框中將該數(shù)據(jù)庫(kù)文件儲(chǔ)存為C:倉(cāng)庫(kù)管理倉(cāng)庫(kù)管理.dbc。在彈出的如圖4-11所示的數(shù)據(jù)庫(kù)設(shè)計(jì)器中單擊鼠標(biāo)右鍵,選擇“新建表”,為數(shù)據(jù)庫(kù)添加數(shù)據(jù)表(表的內(nèi)容如表4-1至表4-8所示)。下面以表4-1為例來(lái)介紹表的建立過(guò)程。選擇“新建表”,在彈出的對(duì)話框中將表存儲(chǔ)為C:倉(cāng)庫(kù)管理設(shè)備代碼.dbf。在

9、彈出的如圖4-12所示的表設(shè)計(jì)器中填寫表的內(nèi)容。請(qǐng)讀者將其與表4-1比較,可以發(fā)現(xiàn)表的字段名就是列名。由于在以后編寫的程序中對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的操作通常是應(yīng)用表的字段,因此讀者在設(shè)計(jì)字段名時(shí)要挑選容易理解的名稱。字段設(shè)置完成后,單擊“確定”按鈕后為表輸入數(shù)據(jù),如不想現(xiàn)在輸入,可以先“取消”,以后再輸入。具體方法如下: 圖4-13 為表輸入數(shù)據(jù)如圖4-13所示,選中要輸入的數(shù)據(jù)的表,單擊“瀏覽”按鈕。此時(shí)彈出的無(wú)數(shù)據(jù)的表,在Visual FoxPro的主窗口中選擇“表”,選擇“追加薪記錄”后,就可以在表中輸入數(shù)據(jù)了,如圖4-14所示。不過(guò)這種方法只能一次輸入一條記錄,要輸入第二條記錄時(shí),需要再次追加新

10、記錄。如果有一個(gè)已有的數(shù)據(jù)的表,可以使用“使用追加記錄”將這個(gè)有數(shù)據(jù)的表追加到當(dāng)前表中,不過(guò)執(zhí)行那個(gè)該操作要求這兩個(gè)表的結(jié)構(gòu)完全相同。 各個(gè)功能模塊的創(chuàng)建按照前面的分析,我們將管理系統(tǒng)的邏輯模塊統(tǒng)一到6個(gè)實(shí)際功能模塊中,如圖4-15所示。切換面板用于切換不同的操作,每項(xiàng)具體操作結(jié)束后,都會(huì)返回到切換面板。下面對(duì)各模塊的作用進(jìn)行說(shuō)明:設(shè)備入庫(kù)模塊 添加設(shè)備到庫(kù)存中。設(shè)備出庫(kù)模塊 將設(shè)備從庫(kù)從中取出并記錄。設(shè)備還原模塊 將歸還待庫(kù)存的設(shè)備保存到數(shù)據(jù)庫(kù)。設(shè)備需求模塊 記錄各部門的設(shè)備要求。設(shè)備采購(gòu)模塊 記錄要采購(gòu)的設(shè)備。切換面板 用于切換到不同的操作,如設(shè)備入庫(kù)、設(shè)備出庫(kù)等。顯示報(bào)表 顯示庫(kù)存過(guò)多、

11、庫(kù)存不足等信息。下面就按照功能模塊圖來(lái)設(shè)計(jì)該倉(cāng)庫(kù)管理系統(tǒng)。首先在Visual FoxPro 中建立一個(gè)項(xiàng)目管理器,以便管理本系統(tǒng)中所有數(shù)據(jù),命名為倉(cāng)庫(kù)管理。一下操作均在該項(xiàng)目管理器中進(jìn)行。以下所有表單的“Desktop”屬性全部為“.真”。4.4.1功能選擇界面的設(shè)計(jì)這一模塊的主要功能是作為系統(tǒng)主界面為進(jìn)入本系統(tǒng)不同功能界面選擇提供一個(gè)接口,使用一個(gè)窗口來(lái)實(shí)現(xiàn)這一功能。首先建立一個(gè)表單,設(shè)其“Caption”屬性分別為“倉(cāng)庫(kù)管理”。在該表單上添加6個(gè)“按鈕”控件,它們的“Caption”屬性分別為“設(shè)備入庫(kù)”、“設(shè)備出庫(kù)”、“設(shè)備還庫(kù)”、“部門需求”、“設(shè)備采購(gòu)”和“顯示報(bào)表”。然后在表單上添

12、加“圖像”控件,并設(shè)其“Stretch”屬性為“2- Stretch(擴(kuò)展)”,“Picture”屬性為圖片所在位置,本例中為“C:倉(cāng)庫(kù)管理”。在“command1”(“Caption”屬性為“設(shè)備入庫(kù)”)控件的“Click”do form 設(shè)備入庫(kù)表 在“command2”(“Caption”屬性為“設(shè)備出庫(kù)”)控件的“Click”do form 設(shè)備出庫(kù)表 在“command3”(“Caption”屬性為“設(shè)備還庫(kù)”)控件的“Click”do form 設(shè)備還庫(kù)表 在“command4”(“Caption”屬性為“部門需求”)控件的“Click”do form 部門需求表在“command

13、5”(“Caption”屬性為“設(shè)備采購(gòu)”)控件的“Click”do form 設(shè)備采購(gòu)表在“command6”(“Caption”屬性為“顯示報(bào)表”)控件的“Click”do form 顯示報(bào)表在“form1”的屬性里選擇“autocenter”設(shè)置為“.真”,同時(shí)將“backcolor”設(shè)置為“255,255,255”,“windowstate”設(shè)置為“0-普通”添加“form1”的“Init”事件的代碼如下:set directory to c:倉(cāng)庫(kù)管理*將程序的默認(rèn)的路徑指向資源所在的文件夾該表單設(shè)計(jì)結(jié)果如圖4-16所示:4.4.2設(shè)備入庫(kù)模塊的設(shè)計(jì)在設(shè)備入庫(kù)模塊中將實(shí)現(xiàn)設(shè)備數(shù)據(jù)的添加

14、和入庫(kù)等功能。在前面的幾章的例子中已經(jīng)詳細(xì)介紹了關(guān)于如何制定具有標(biāo)準(zhǔn)查詢并修改功能的表單,其實(shí)Visual FoxPro 本身也具有生成具有上述功能表單的功能。下面就介紹如何通過(guò)表單導(dǎo)向完成設(shè)備入庫(kù)表單的設(shè)計(jì)。首先在項(xiàng)目管理器的文檔視圖下單擊“新建”按鈕,如圖4-17所示。然后選擇“表單導(dǎo)向”,如圖4-18、圖4-19所示。 圖4-18 圖4-19在接下來(lái)的向?qū)е?,“?shù)據(jù)庫(kù)和表”選擇“倉(cāng)庫(kù)管理”以及“設(shè)備入庫(kù)表”,這是前面定義好的數(shù)據(jù)庫(kù)和表。由于設(shè)備入庫(kù)需要顯示所有的字段,因此我們將可用字段全部移至選定字段,如圖所示,單擊“下一步”按鈕,在表單樣式中,選擇“陰影式”以及“圖片按鈕”,如圖所示。

15、左上角的窗口提供了表單樣式的預(yù)覽功能,圖片按鈕和文本按鈕的區(qū)別在于顯示的時(shí)候是以圖片來(lái)表達(dá)功能還是文字來(lái)表達(dá),實(shí)現(xiàn)功能的函數(shù)沒有區(qū)別。選擇“上一步”按鈕可以跳回上一個(gè)界面對(duì)表單中顯示的字段進(jìn)行修改。單擊“下一步”按鈕后,向?qū)нM(jìn)行到“步驟3-排序次序”,如圖所示,選擇“設(shè)備號(hào)”為索引,并選擇升序排列。最后預(yù)覽表單,核對(duì)每項(xiàng)的設(shè)置,完成表單向?qū)?,如圖4-23所示。值得注意的是,在結(jié)束表單向?qū)埃蛇x擇“保存表單以備將來(lái)使用”,“保存并運(yùn)行表單”,或者“保存表單并用表單設(shè)計(jì)器修改表單”。由于Visual 向?qū)傻谋韱沃痪哂衅毡樾裕瑢?duì)于當(dāng)前設(shè)計(jì)的倉(cāng)庫(kù)管理系統(tǒng)還需要一定的改變,因此以我們選擇“保存表單

16、并用表設(shè)計(jì)器修改表單”。單擊“完成”按鈕系統(tǒng)提示保存表單,將表單保存為“設(shè)備入庫(kù)表.scx”,存于C:倉(cāng)庫(kù)管理目錄下。然后打開表單修改器生成的表單,如圖所示。在修改BUTTONSET時(shí),可以通過(guò)屬性窗口的下拉列表選定單個(gè)按鈕,調(diào)整其位置和其它屬性。如圖4-25所示。根據(jù)功能需求,把“cmdPrint”、“”cmdExit、“cmdDelete”和“cmdEdit”的Visible屬性都設(shè)為“.假”。添加2個(gè)命令按鈕,Caption屬性分別設(shè)為“修改庫(kù)存”和“回主界面”。在“回主界面”命令按鈕的Click事件中添加代碼如下:do form 倉(cāng)庫(kù)管理在修改庫(kù)存命令按鈕的Click事件中添加代碼如下

17、:select 現(xiàn)有庫(kù)存表 again*先在該表單的數(shù)據(jù)環(huán)境中添加現(xiàn)有庫(kù)存表,如圖4-26所示getid=thisform.設(shè)備號(hào) order to 設(shè)備號(hào)seek getid&庫(kù)存表中查找設(shè)備號(hào)等于getid的記錄if found() getnum=thisform.入庫(kù)數(shù)量 update 現(xiàn)有庫(kù)存表; set 現(xiàn)有庫(kù)存=(現(xiàn)有庫(kù)存+getnum) where (設(shè)備號(hào)=getid)*如果庫(kù)存表中有該項(xiàng)設(shè)備,則更新庫(kù)存表else insert into 現(xiàn)有庫(kù)存表 (設(shè)備號(hào),現(xiàn)有庫(kù)存); value (thisform.設(shè)備號(hào)入庫(kù)數(shù)量 into 操作日志表(操作員,操作內(nèi)容,操作時(shí)間);va

18、lues (thisform.采購(gòu)員設(shè)備入庫(kù),date()*如果庫(kù)存表中沒有該項(xiàng)設(shè)備,則添加設(shè)備到庫(kù)存表保存后運(yùn)行表單,界面如圖4-27所示:4.4.3設(shè)備出庫(kù)模塊的設(shè)計(jì)在設(shè)備出庫(kù)模塊中將實(shí)現(xiàn)設(shè)備出庫(kù)數(shù)據(jù)的添加和修改庫(kù)存等功能。該模塊的功能和設(shè)備入庫(kù)的功能相似。具體操作可以參考設(shè)備入庫(kù)模塊的設(shè)計(jì),設(shè)計(jì)最終的界面如圖4-28所示。在表單的左上角加上了顯示當(dāng)前時(shí)間的功能,添加標(biāo)簽label2的caption屬性設(shè)為“當(dāng)前時(shí)間”;添加label3的caption屬性設(shè)為空;為當(dāng)前表單的label3init事件添加如下代碼:=dtoc(date()&date()用來(lái)獲取當(dāng)前的系統(tǒng)時(shí)間&Init事件在每

19、次表單被初始化時(shí)被調(diào)用該模塊具體實(shí)現(xiàn)留給讀者自行完成,表4-9、4-10列出了表單中所用到控件的屬性值。下面時(shí)設(shè)備出庫(kù)表單中“修改庫(kù)存”命令按鈕的Click事件的代碼:set directory to c:倉(cāng)庫(kù)管理use現(xiàn)有庫(kù)存表again*先在該表單的數(shù)據(jù)環(huán)境中添加現(xiàn)有庫(kù)存表getid=thisform.設(shè)備號(hào) order to 設(shè)備號(hào)seek getid *在現(xiàn)有庫(kù)存表中查找設(shè)備號(hào)等于getid的紀(jì)錄if found() getnum=thisform.出庫(kù)數(shù)量 update 現(xiàn)有庫(kù)存表; set 現(xiàn)有庫(kù)存=(現(xiàn)有庫(kù)存-getnum) where (設(shè)備號(hào)=getid)insert int

20、o 操作日志表(操作員,操作內(nèi)容,操作時(shí)間);values(thisform.領(lǐng)取人設(shè)備出庫(kù),date() *如果庫(kù)存表中有該項(xiàng)設(shè)備,則更新庫(kù)存表 insert into 操作日志表(操作員,操作內(nèi)容,操作時(shí)間); values (thisform.領(lǐng)取人設(shè)備出庫(kù),date()elsemessagebox(出錯(cuò),1,錯(cuò)誤的設(shè)備號(hào))*如果沒有該設(shè)備號(hào)則報(bào)告出錯(cuò)信息endif4.4.4設(shè)備還庫(kù)模塊的設(shè)計(jì)在設(shè)備還庫(kù)模塊中將實(shí)現(xiàn)設(shè)備還庫(kù)數(shù)據(jù)的添加和修改庫(kù)存等功能,按照上文介紹的步驟設(shè)計(jì)設(shè)備還庫(kù)表。設(shè)備還庫(kù)表所可能用到的控件的屬性如表4-11、4-12所示.下面是設(shè)備還庫(kù)表中“修改庫(kù)存”命令按鈕的cli

21、ck事件的代碼:set directory to c:倉(cāng)庫(kù)管理use現(xiàn)有庫(kù)存表again*先在該表單的數(shù)據(jù)環(huán)境中添加現(xiàn)有庫(kù)存表 getid=thisform.設(shè)備號(hào) order to 設(shè)備號(hào)seek getid *在現(xiàn)有庫(kù)存表中查找設(shè)備號(hào)等于getid的紀(jì)錄if found() getnum=thisform.歸還數(shù)量 update 現(xiàn)有庫(kù)存表; set 現(xiàn)有庫(kù)存=(現(xiàn)有庫(kù)存-getnum) where (設(shè)備號(hào)=getid) insert into 操作日志表(操作員,操作內(nèi)容,操作時(shí)間); values (thisform.歸還人設(shè)備還庫(kù),date() *如果庫(kù)存表中有該項(xiàng)設(shè)備,則更新庫(kù)存

22、表,同時(shí)更新操作日志else messagebox(出錯(cuò),1,錯(cuò)誤的設(shè)備號(hào))*如果沒有該設(shè)備號(hào)則報(bào)告出錯(cuò)信息 endif保存后運(yùn)行表單,可得到如圖4-29所示的設(shè)備還庫(kù)表。4.4.5 設(shè)備需求模塊的設(shè)計(jì)在設(shè)備需求模塊中將實(shí)現(xiàn)設(shè)備需求數(shù)據(jù)的添加和保存日志等功能。首先通過(guò)Visual Foxpro的表單向?qū)伤璧脑O(shè)備需求表單,選擇部門需求表的所有可用字段,然后為保持程序風(fēng)格的一致,繼續(xù)采用表單的陰影式和圖片按鈕的風(fēng)格。在“步驟3-排序次序”時(shí)。選擇設(shè)備號(hào)的升序排列。最后單擊“完成”按鈕,把表單保存在“c:倉(cāng)庫(kù)管理”目錄下,名為“設(shè)備需求.scx”。重要步驟參照?qǐng)D4-30到圖4-33。通過(guò)表單向

23、導(dǎo)生成的表單如圖4-33所示,用戶可以調(diào)節(jié)控件的位置,修改表單中控件的屬性,最后結(jié)果如圖4-34所示。相關(guān)的屬性設(shè)置如表4-13、表4-14所示。在表單設(shè)計(jì)器中,雙擊“保存日志”命令按鈕。添加click事件代碼如下:insert into 操作日志表 (操作員,操作內(nèi)容,操作時(shí)間) values (username,設(shè)備需求,date()*把設(shè)備需求寫入操作日志表中雙擊回主界面命令按鈕,添加click事件代碼如下:do form 倉(cāng)庫(kù)管理*運(yùn)行倉(cāng)庫(kù)管理界面保存對(duì)表單所作的修改。4.4.6 設(shè)備采購(gòu)模塊的設(shè)計(jì)在設(shè)備采購(gòu)模塊中將實(shí)現(xiàn)設(shè)備采購(gòu)數(shù)據(jù)的添加和保存日志等功能。(1)由數(shù)據(jù)表生成表單通過(guò)Vi

24、sual Foxpro的表單向?qū)?,生成設(shè)備采購(gòu)計(jì)劃表單。在選擇數(shù)據(jù)庫(kù)和表時(shí),選擇倉(cāng)庫(kù)管理數(shù)據(jù)庫(kù)和設(shè)備采購(gòu)計(jì)劃表。在選擇字段時(shí),選擇所有可用字段,選擇陰影式和圖片按鈕作為設(shè)備采購(gòu)計(jì)劃表的樣式。選擇計(jì)劃采購(gòu)時(shí)間的升序排列作為設(shè)備采購(gòu)計(jì)劃表的索引。(2)為窗體修改和添加命令按鈕添加2個(gè)命令按鈕“保存日志”和“回主界面”。設(shè)置表單中控件的屬性。下面的表列出了需要修改的控件的名稱以及屬性值。表4-15 Form1控件的主要屬性 屬性名稱屬性值Caption設(shè)備采購(gòu)表Autocenter.真BackColor表4-16 ButtonSet1控件的主要屬性:控件名屬性名稱屬性值cmdExitVisible.

25、假cmdDeleteVisible.假cmdPrintVisible.假cmdEditVisible.假Command1Caption保存日志Command2Caption回主界面3. 為按鈕添加click事件代碼:在表單設(shè)計(jì)器中,雙擊保存日志命令按鈕。添加click事件代碼如下:insert into 操作日志表 (操作員,操作內(nèi)容,操作時(shí)間) values (username,設(shè)備需求,date()*把設(shè)備需求寫入操作日志表中雙擊回主界面按鈕,添加click事件代碼如下:*釋放本表單do form 倉(cāng)庫(kù)管理*運(yùn)行倉(cāng)庫(kù)管理界面保存對(duì)表單所作的修改,表單運(yùn)行效果如圖4-35所示:4.4.7 顯

26、示報(bào)表模塊的設(shè)計(jì)在該模塊中,一共要顯示3個(gè)報(bào)表,分別提供庫(kù)存不足,庫(kù)存過(guò)多和操作日志等信息。1 設(shè)計(jì)顯示報(bào)表表單在項(xiàng)目管理器的文檔視圖下選擇“新建”,然后選擇新建表單,如圖4-36所示。4-36在如圖4-37所示的空白表單中添加一個(gè)頁(yè)框控件,并按照下表4-17設(shè)置頁(yè)框的屬性,同時(shí)在數(shù)據(jù)環(huán)境里添加現(xiàn)有庫(kù)存表和操作日志表。 “pageframe1”控件名屬性名稱屬性值Form1Caption顯示報(bào)表Pageframe1Caption3Caption庫(kù)存不足表Caption庫(kù)存過(guò)多表Caption操作日志分別為每個(gè)page添加一個(gè)表格grid1,如圖4-38所示:分別為每個(gè)page添加一個(gè)表格gri

27、d1,如圖所示: 庫(kù)存過(guò)多表 庫(kù)存不足表 操作日志表設(shè)置表格控件的屬性,如表4-18所示:控件名屬性名稱屬性值真別名真別名真別名 代碼設(shè)計(jì)定義的init事件運(yùn)行“顯示報(bào)表”表單,界面所圖所示:local Custs1select 設(shè)備號(hào),最大庫(kù)存,現(xiàn)有庫(kù)存 from 現(xiàn)有庫(kù)存表 where (現(xiàn)有庫(kù)存最大庫(kù)存) into cursor Custs1thisform.頁(yè)框.庫(kù)存過(guò)多.庫(kù)存過(guò)多表.recordsource=Custs1定義的init事件local Custs2select 設(shè)備號(hào),最小庫(kù)存,現(xiàn)有庫(kù)存 from 現(xiàn)有庫(kù)存表 where (現(xiàn)有庫(kù)存最小庫(kù)存) into cursor C

28、usts2thisform.頁(yè)框.庫(kù)存不足.庫(kù)存不足表.recordsource=Custs2定義的init事件local Custs3select * from 操作日志表 into cursor Custs3thisform.頁(yè)框.操作日志.操作日志表=Custs3運(yùn)行“顯示報(bào)表”表單,界面如圖4-39所示。 開發(fā)中的難點(diǎn)和解決技巧Visual FoxPro 中向?qū)Оū硐驅(qū)А?shù)據(jù)庫(kù)向?qū)?、查詢向?qū)А?bào)表向?qū)А?biāo)簽向?qū)?、郵件合并向?qū)А?shù)據(jù)透視表向?qū)?、?dǎo)入向?qū)А⑽臋n向?qū)?、安裝向?qū)?、升遷向?qū)А?yīng)用程序向?qū)?、web發(fā)布向?qū)У取T谶@里我們?cè)俳榻B查詢向?qū)?、?bào)表向?qū)А?biāo)簽向?qū)А?.5.1 查詢向?qū)М?dāng)建立

29、的表中只有幾個(gè)、十幾條記錄時(shí),利用“瀏覽”窗口可以較快的查找符合一定條件的記錄,但當(dāng)表較大,例如有幾百、上千甚至上萬(wàn)條記錄時(shí),用瀏覽的方式就相當(dāng)困難了。這樣的效率和不建表幾乎沒有什么兩樣。建立數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)不是目的。真正的目的是利用數(shù)據(jù)庫(kù)管理技術(shù)來(lái)操作這些數(shù)據(jù)信息。表的查詢時(shí)數(shù)據(jù)處理工作中的重要工作之一,它能在大量的記錄中找出符合一定條件的記錄。 從“工具”菜單中選取“向?qū)А保瑔螕羝渲械摹安樵儭保蜁?huì)進(jìn)入“向?qū)нx取”,這里有5個(gè)向?qū)нx項(xiàng),鼠標(biāo)點(diǎn)取哪個(gè)向?qū)r(shí),就會(huì)在“說(shuō)明”中出現(xiàn)有關(guān)向?qū)в猛镜恼f(shuō)明。這里選取“查詢向?qū)А?。在查詢向?qū)У拿恳徊襟E中,都有一些文字說(shuō)明,它幫助理解這一步驟的用法。下面是“

30、查詢向?qū)А钡摹安襟E1-字段選取”,如圖4-40所示,單擊“下一步”按鈕。接下來(lái)創(chuàng)建查詢表達(dá)式。這些表達(dá)式是符合Visual Foxpro 規(guī)則的,即它能讀懂并執(zhí)行的。設(shè)置查詢條件:設(shè)備入庫(kù)表設(shè)備號(hào)小于10的所有設(shè)備,如圖441所示。當(dāng)不知道某種數(shù)據(jù)類型“值”,單擊“預(yù)覽”按鈕,如果格式正確將顯示符合條件的記錄,否則將會(huì)出現(xiàn)錯(cuò)誤提示,有時(shí)會(huì)提示正確格式。為了表達(dá)兩個(gè)條件同時(shí)具備,我們選取“與”單選按鈕。單擊 “下一步”按鈕,進(jìn)入“步驟4排序記錄”,如圖442所示。從“可用字段”中選取“設(shè)備入庫(kù)表.設(shè)備號(hào)”作為排序字段,并按升序排列。單擊“下一步”按鈕。進(jìn)入步驟4a-限制記錄,如圖4-43所示。這

31、里有兩組單選按鈕,用來(lái)設(shè)置在瀏覽查詢結(jié)果窗口顯示記錄的限制。取默認(rèn)值“所有記錄”。單擊“下一步”按鈕,進(jìn)入“步驟5完成”,如圖444所示。選擇“保存并運(yùn)行查詢”,單擊“完成”按鈕,即進(jìn)入保存對(duì)話框,命名為“設(shè)備號(hào)小于2”此外也可以在完成查詢?cè)O(shè)計(jì)后,在命令窗口中輸入“DO設(shè)備號(hào)小于”,來(lái)執(zhí)行這個(gè)查詢。4.5.2 報(bào)表向?qū)?shù)據(jù)庫(kù)管理系統(tǒng)中使用報(bào)表是日常工作中最常用的查看數(shù)據(jù)的手段之一。生成報(bào)表就是把輸入的數(shù)據(jù)按照一定的條件和格式又以報(bào)表的形式顯示。這里的表格和原始表格具有完全不同的含義,是更深入地反映原始數(shù)據(jù)之間關(guān)系、實(shí)質(zhì)的經(jīng)過(guò)提煉和篩選的表格。打開“工具”菜單中的“向?qū)?,選擇“報(bào)表”,出現(xiàn)“”向

32、導(dǎo)選取對(duì)話框,選擇“報(bào)表向?qū)А?。單擊“確定”按鈕,進(jìn)入步驟1字段選取,如圖4-45所示。在這個(gè)窗口中,選擇設(shè)備入庫(kù)表,并選定“可用字段”中的所有字段。單擊“下一步“按鈕進(jìn)入步驟2分組記錄,如圖446所示。在這個(gè)窗口中,選擇設(shè)備入庫(kù)表,并選定”可用字段”中的所有字段。單擊“下一步”按鈕進(jìn)入步驟2-分組記錄,如圖4-46所示。根據(jù)報(bào)表的需要,這一步可以選擇也可以不選擇。單擊“下一步”按鈕進(jìn)入“步驟3-選擇報(bào)表樣式”,如圖4-47所示。單擊樣式名稱,在左上角框內(nèi)即時(shí)顯示該樣式的效果,這里選擇比較符合中國(guó)人習(xí)慣的賬務(wù)式。單擊“下一步”按鈕進(jìn)入“步驟4-定義報(bào)表布局”,如圖4-48所示。這一步驟可通過(guò)微

33、調(diào)按鈕分別設(shè)置報(bào)表的列數(shù)、方向和字段布局。選擇布局方向的默認(rèn)值“縱向”。單擊“下一步”按鈕進(jìn)入“步驟5-排序記錄”,如圖4-49所示。這一步驟可以選擇一個(gè)至三個(gè)字段作為報(bào)表的排序字段,并可設(shè)置是升序還是降序。也可以不選排序手段。“選定字段”的第一行為主排序字段,一下依次為各個(gè)次排序字段。這里選取設(shè)備標(biāo)號(hào)字段為排序字段。單擊“下一步”按鈕進(jìn)入 “步驟6-完成”,如圖4-50所示。在“報(bào)表標(biāo)題“中輸入標(biāo)題中輸入標(biāo)題“設(shè)備入庫(kù)表”,選擇“保存報(bào)表以備將來(lái)使用”。去除“對(duì)不能容納的字段進(jìn)行拆行處理”(即使屏幕顯示不開,也不折到下一行)。單擊“預(yù)覽”按鈕,進(jìn)入預(yù)覽窗口,在屏幕上查看生成的報(bào)表,如圖4-5

34、1所示。如果對(duì)報(bào)表滿意,可以選擇“打印預(yù)覽”中的打印按鈕將該報(bào)表輸出到打印機(jī)。如果不滿意,則可以單擊“上一步”按鈕,返回到前面步驟進(jìn)行相應(yīng)修改。修改完畢,單擊“完成”按鈕,在保存窗口中鍵入報(bào)表名“設(shè)備入庫(kù)表”,報(bào)表保存在以.FRX和.FRT為擴(kuò)展名的文件中.以后要打印該報(bào)表時(shí),可在命令窗口中輸入:REPORT FORM 設(shè)備入庫(kù)表TO PRINT。4.5.3標(biāo)簽向?qū)?biāo)簽是什么,它與報(bào)表有何不同呢報(bào)表是以表為單位按一個(gè)格式生成一個(gè)報(bào)表,標(biāo)簽則是以表中的記錄為單位,一條記錄生成一個(gè)標(biāo)簽。它們有許多相似之處,標(biāo)簽可以看作是一種特殊的報(bào)表?;蛘邠Q一種不很貼切的說(shuō)法:符合某種條件的花名冊(cè)就是一種報(bào)表,每

35、個(gè)人的名片就是一個(gè)標(biāo)簽。和使用其他向?qū)б粯?,先在“工具”菜單中選取“向?qū)А保賳螕簟皹?biāo)簽”進(jìn)入標(biāo)簽向?qū)У摹安襟E1-選擇表”。打開設(shè)備入庫(kù)表。按“下一步”按鈕進(jìn)入 “步驟2-選擇標(biāo)簽類型”,如圖4-52所示。 圖4-52 標(biāo)簽向?qū)Вㄒ唬?biāo)簽向?qū)峁┝硕喾N標(biāo)簽尺寸,在單選按鈕中選擇“公制”,并選擇大小為33.87mm*99.06mm,列數(shù)為2的“Avery L7162”型號(hào)標(biāo)簽。單擊“下一步”按鈕,進(jìn)入步驟3-定義布局,如圖4-53所示。 圖4-53 標(biāo)簽向?qū)Вǘ┻@一步驟是標(biāo)簽向?qū)е胁僮髯疃嗟牟襟E。選擇按鈕的左邊是常見的6個(gè)健盤符號(hào)按鈕。我們以當(dāng)前亮條處字段為例來(lái)演示如何操作。先在“文本”框中輸

36、入“設(shè)備號(hào):”,單擊“選定”按鈕,則文本框中的內(nèi)容被選定到“選定的字段”框中,再在“可用字段”中將光標(biāo)移到設(shè)備號(hào)處,雙擊或按“選定”按鈕。則“選定字段”中就有“設(shè)備號(hào):設(shè)備號(hào)”行。完成以上操作后,單擊按鈕,則“選定字段”框中的亮條移到下一空行中,在此空行中重復(fù)以上操作,將所有需要的字段移動(dòng)到“選定字段”中。單擊“字體”按鈕,進(jìn)入下面的“字體”對(duì)話框,選擇“規(guī)則”、“小五”號(hào)字體,按“確定”按鈕進(jìn)入步驟4排序記錄,如圖4一54所示。我們選擇編號(hào)字段為排序字段,并選擇“升序”單選按鈕。單擊“下一步”進(jìn)入“步驟5-完成”,如圖4-55所示。 圖4-55 標(biāo)簽向?qū)Вㄋ模﹩螕簟邦A(yù)覽”按鈕,進(jìn)入預(yù)覽窗口,

37、在屏幕上查看標(biāo)簽。和報(bào)表一樣,也可以打印標(biāo)簽,可返回相應(yīng)的步驟進(jìn)行修改、保存。標(biāo)簽保存在以.LBX為擴(kuò)展名的文件中。以后在命令窗口中輸入命令:LABLE FORM設(shè)備入庫(kù)TO PRINT,就可打印標(biāo)簽了。 系統(tǒng)的編譯和發(fā)行4.6.1 設(shè)置主文件用主圖標(biāo)以黑體的文件表示)標(biāo)記的文件是用戶在啟動(dòng).app或者是.exe時(shí)被調(diào)用的文件。它可以是一個(gè)表單、菜單或程序,建議使用程序作為主文件。4.6.2 構(gòu)造主文件如果主文件是一個(gè)程序,它將調(diào)用應(yīng)用程序框架中的各個(gè)功能組件,然后由這些組件調(diào)用應(yīng)用程序的其余部分。如果要建立一個(gè)簡(jiǎn)單的主程序,可以按下列步驟進(jìn)行。現(xiàn)設(shè)置應(yīng)用環(huán)境界面。確定初始用戶界面。建立事件循

38、環(huán)?;謴?fù)環(huán)境,退出應(yīng)用程序。例如,可以建立下面的程序作為主程序:set directory to c:倉(cāng)庫(kù)管理*將資源路徑設(shè)為默認(rèn)路徑=-10000do form 倉(cāng)庫(kù)管理on shutdown quitread events為了避免無(wú)限循環(huán),必須在READ EVENTS命令之前安排CLEAR EVENTS命令??梢栽谥鞑藛位蛑鞅韱沃刑砑右粋€(gè)“退出”項(xiàng),該項(xiàng)發(fā)出CLEAR EVENTS命令。具體步驟詳見第l章中相關(guān)內(nèi)容。本系統(tǒng)的主程序?yàn)橹鞒绦?prg。4.6.3 在.app和.exe文件中包含和排除文件 如果在發(fā)布的應(yīng)用程序中不想再更改這些文件,可把它們放在項(xiàng)目中并設(shè)置為“包含”。那么這些文件

39、變成只讀的,不能修改。如果想修改這些文件,把它們放到項(xiàng)目中并設(shè)置為排除”,然后作為獨(dú)立文件隨著應(yīng)用程序一起發(fā)布。 在默認(rèn)情況下Visual FoxPro在嵌放的過(guò)程中排除了數(shù)據(jù)庫(kù)、表格、稱為.ff的c庫(kù)文件和.app文件。建議用戶除了一些特定的表格,最好不要包含這類文件。數(shù)據(jù)庫(kù)和表格需要變化和添加,而如果編譯后包含自.exe或者是.app文件中,由于這兩個(gè)文件被創(chuàng)建后都是靜態(tài)的,因此被包含的文件也是靜態(tài)的和只讀的。把數(shù)據(jù)庫(kù)和表格包含在這些文件中很明顯會(huì)帶來(lái)問(wèn)題。 因?yàn)檫@些文件不能被包含在文件.app和.exe中,所以要在發(fā)布一個(gè)應(yīng)用程序之前為這些文件做好準(zhǔn)備。若要排除可修改的文件,首先在項(xiàng)目管

40、理器中,選擇可修改的文件,然后從“項(xiàng)目菜單中選擇“排除”命令。在一個(gè)文件被排除后,則在文件的左方加入一個(gè)排除符號(hào)。 運(yùn)行結(jié)果倉(cāng)庫(kù)管理系統(tǒng)各模塊運(yùn)行結(jié)果如圖4一56、圖4一57、圖4一58、圖4一59所示,以下所列為幾個(gè)重要的表單的運(yùn)行結(jié)果,其他輔助表單未列出。相關(guān)代碼:1:主程序源代碼:SET TALK offset sysmenu off set cent on =2=icons =0=1=.f.modify window screen nocloseMODIFY WINDOW SCREEN TITLE 倉(cāng)庫(kù)管理信息系統(tǒng) ZOOM WINDOW SCREEN MAX set default to datado form 登錄表單read eventsclearclose

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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)論