|
5.2 設(shè)備入庫模塊的設(shè)計(jì) 在設(shè)備入庫模塊中將實(shí)現(xiàn)設(shè)備數(shù)據(jù)的添加和入庫等功能。本模塊設(shè)計(jì)采用先用向?qū)杀韱?,然后修改的方法?shí)現(xiàn)。 首先在項(xiàng)目管理器的文檔視圖下單擊“新建”按鈕,  圖5-3 項(xiàng)目管理器  圖5-4  圖5-5 在接下來的向?qū)е校皵?shù)據(jù)庫和表”選擇“倉儲(chǔ)管理”以及“設(shè)備入庫表”,這是前面定義好的數(shù)據(jù)庫和表。 由于設(shè)備入庫需要顯示所有的字段,因此我們將可用字段全部移至選定字段,如圖所示,單擊“下一步”按鈕,  圖5-6 在表單樣式中,選擇“陰影式”以及“圖片按鈕”,如圖所示。左上角的窗口提供了表單樣式的預(yù)覽功能,圖片按鈕和文本按鈕的區(qū)別在于顯示的時(shí)候是以圖片來表達(dá)功能還是文字來表達(dá),實(shí)現(xiàn)功能的函數(shù)沒有區(qū)別。選擇“上一步”按鈕可以跳回上一個(gè)界面對(duì)表單中顯示的字段進(jìn)行修改。  圖5-7 單擊“下一步”按鈕后,向?qū)нM(jìn)行到“步驟3-排序次序”,如圖所示,選擇“設(shè)備號(hào)”為索引,并選擇升序排列。最后預(yù)覽表單,核對(duì)每項(xiàng)的設(shè)置,完成表單向?qū)?,如圖所示。  圖5-8  圖5-9 值得注意的是,在結(jié)束表單向?qū)埃蛇x擇“保存表單以備將來使用”,“保存并運(yùn)行表單”,或者“保存表單并用表單設(shè)計(jì)器修改表單”。由于Visual FoxPro6.0向?qū)傻谋韱沃痪哂衅毡樾?,?duì)于當(dāng)前設(shè)計(jì)的倉儲(chǔ)管理系統(tǒng)還需要一定的改變,因此以我們選擇“保存表單并用表設(shè)計(jì)器修改表單”。 單擊“完成”按鈕系統(tǒng)提示保存表單,將表單保存為“設(shè)備入庫表.scx”,存于c:倉儲(chǔ)管理目錄下。然后打開表單修改器生成的表單,如圖所示。 在修改BUTTONSET時(shí),可以通過屬性窗口的下拉列表選定單個(gè)按鈕,調(diào)整其位置和其它屬性。如圖所示。  圖 5-10 25  圖 5-11 根據(jù)功能需求,把“cmdprint”、“”cmdexit、“cmdDelete”和“cmdedit”的Visible 屬性都設(shè)為“.F.-假”。添加2個(gè)命令按鈕,Caption屬性分別設(shè)為“修改庫存”和“回主界面”。 ※ 在“回主界面”命令按鈕的click事件中添加代碼如下: thisform.release do form 倉儲(chǔ)管理 ※ 在修改庫存命令按鈕的click事件中添加代碼如下: select 現(xiàn)有庫存表 getid=thisform.設(shè)備號(hào)1.text1.value set order to 設(shè)備號(hào) seek getid if found() getnum=thisform.入庫數(shù)量1.text1.value update 現(xiàn)有庫存表 set 現(xiàn)有庫存=(現(xiàn)有庫存+getnum) where (設(shè)備號(hào)=getid) else insert into 現(xiàn)有庫存表 (設(shè)備號(hào),現(xiàn)有庫存,最大庫存,最小庫存); value (thisform.設(shè)備號(hào)1.text1.value,thisform.入庫數(shù)量1.text1.value,1000,10) endif insert into 操作日志表(操作員,操作內(nèi)容,操作時(shí)間); values (thisform.采購員1.text1.value,'設(shè)備入庫',date()) 保存后運(yùn)行表單,界面如圖所示:  圖 5-12  圖5-13 5.3 設(shè)備出庫模塊的設(shè)計(jì): 在設(shè)備出庫模塊中將實(shí)現(xiàn)設(shè)備出庫數(shù)據(jù)的添加和修改庫存等功能。該模塊的功能和設(shè)備入庫的功能相似。具體操作可以參考設(shè)備入庫模塊的設(shè)計(jì),設(shè)計(jì)最終的界面如圖所示。  5-14 圖 在表單的左上角加上了顯示當(dāng)前時(shí)間的功能,添加標(biāo)簽label2的caption屬性設(shè)為“當(dāng)前時(shí)間”;添加label3的caption屬性設(shè)為空;為當(dāng)前表單的label3init事件添加如下代碼: this.caption=dtoc(date()) 該模塊具體實(shí)現(xiàn)過程不再一一詳細(xì)說明。下面列出了表單中所用到控件的屬性值。 (1) Form1控件的主要屬性: 表5-1 屬性名稱 屬性值 Caption 設(shè)備出庫表 Autocenter .T.-真 BackColor 255.255.255 (2) ButtonSet1控件的主要屬性: 表5-2 控件名 屬性名稱 屬性值 cmdExit Visible .F.-假 cmdDelete Visible .F.-假 cmdPrint Visible .F.-假 cmdEdit Visible .F.-假 Command1 Caption 修改庫存 Command2 Caption 回主界面 下面是設(shè)備出庫表單中“修改庫存”命令按鈕的click事件的代碼: select 現(xiàn)有庫存表 *先在該表單的數(shù)據(jù)環(huán)境中添加現(xiàn)有庫存表 getid=thisform.設(shè)備號(hào)1.text1.value set order to 設(shè)備號(hào) seek getid *在現(xiàn)有庫存表中查找設(shè)備號(hào)等于getid的紀(jì)錄 if found() getnum=thisform.出庫數(shù)量1.text1.value update 現(xiàn)有庫存表; set 現(xiàn)有庫存=(現(xiàn)有庫存-getnum) where (設(shè)備號(hào)=getid) *如果庫存表中有該項(xiàng)設(shè)備,則更新庫存表 insert into 操作日志表(操作員,操作內(nèi)容,操作時(shí)間); values (thisform.領(lǐng)取人1.text1.value,'設(shè)備出庫',date()) else messagebox("出錯(cuò)",1,"錯(cuò)誤的設(shè)備號(hào)") endif 5.4 設(shè)備還庫模塊的設(shè)計(jì) 在設(shè)備還庫模塊中將實(shí)現(xiàn)設(shè)備還庫數(shù)據(jù)的添加和修改庫存等功能,按照前面介紹的步驟設(shè)計(jì)設(shè)備還庫表。 設(shè)備還庫表所可能用到的控件的屬性如表所示: (1)Form1控件的主要屬性: 表5-3 屬性名稱 屬性值 Caption 設(shè)備還庫表 Autocenter .T.-真 BackColor 255.255.255 (2)ButtonSet1控件的主要屬性: 表5-4 控件名 屬性名稱 屬性值 cmdExit Visible .F.-假 cmdDelete Visible .F.-假 cmdPrint Visible .F.-假 cmdEdit Visible .F.-假 Command1 Caption 修改庫存 Command2 Caption 回主界面 下面是設(shè)備還庫表中“修改庫存”命令按鈕的click事件的代碼: select 現(xiàn)有庫存表 *先在該表單的數(shù)據(jù)環(huán)境中添加現(xiàn)有庫存表 getid=thisform.設(shè)備號(hào)1.text1.value set order to 設(shè)備號(hào) seek getid 在現(xiàn)有庫存表中查找設(shè)備號(hào)等于getid的紀(jì)錄 * if found() getnum=thisform.歸還數(shù)量1.text1.value update 現(xiàn)有庫存表; set 現(xiàn)有庫存=(現(xiàn)有庫存-getnum) where (設(shè)備號(hào)=getid) insert into 操作日志表(操作員,操作內(nèi)容,操作時(shí)間); values (thisform.歸還人1.text1.value,'設(shè)備還庫',date()) *如果庫存表中有該項(xiàng)設(shè)備,則更新庫存表,同時(shí)更新操作日志 else messagebox("出錯(cuò)",1,"錯(cuò)誤的設(shè)備號(hào)") *如果沒有該設(shè)備號(hào)則報(bào)告出錯(cuò)信息 endif 保存后運(yùn)行表單,可得到如圖所示的設(shè)備還庫表。  圖 5-15 5.5 設(shè)備需求模塊的設(shè)計(jì) 在設(shè)備需求模塊中將實(shí)現(xiàn)設(shè)備需求數(shù)據(jù)的添加和保存日志等功能。首先通過Visual Foxpro的表單向?qū)伤璧脑O(shè)備需求表單,選擇部門需求表的所有可用字段,然后為保持程序風(fēng)格的一致,繼續(xù)采用表單的陰影式和圖片按鈕的風(fēng)格。在“步驟3-排序次序”時(shí)。選擇設(shè)備號(hào)的升序排列。最后單擊“完成”按鈕,把表單保存在“c:倉儲(chǔ)管理”目錄下,名為“設(shè)備需求.scx”。 通過表單向?qū)傻谋韱稳鐖D所示,我們可以調(diào)節(jié)控件的位置,修改表單中控件的屬性,最后結(jié)果所下圖所示:  圖5-16 相關(guān)的屬性設(shè)置如下圖所示: (1)Form1控件的主要屬性: 表5-5 屬性名稱 屬性值 Caption 部門需求表 Autocenter .T.-真 BackColor 255.255.255 (2)ButtonSet1控件的主要屬性: 表5-6 控件名 屬性名稱 屬性值 cmdExit Visible .F.-假 cmdDelete Visible .F.-假 cmdPrint Visible .F.-假 cmdEdit Visible .F.-假 Command1 Caption 保存日志 Command2 Caption 回主界面 在表單設(shè)計(jì)器中,雙擊“保存日志”命令按鈕。添加click事件代碼如下: insert into 操作日志表 (操作員,操作內(nèi)容,操作時(shí)間) values (username,'設(shè)備需求',date()) 雙擊回主界面命令按鈕,添加click事件代碼如下: thisform.release do form 倉儲(chǔ)管理 保存對(duì)表單所作的修改。 5.6 設(shè)備采購模塊的設(shè)計(jì) 在設(shè)備采購模塊中將實(shí)現(xiàn)設(shè)備采購數(shù)據(jù)的添加和保存日志等功能。 (1)由數(shù)據(jù)表生成表單通過Visual Foxpro的表單向?qū)?,生成設(shè)備采購計(jì)劃表單。在選擇數(shù)據(jù)庫和表時(shí),選擇倉儲(chǔ)管理數(shù)據(jù)庫和設(shè)備采購計(jì)劃表。在選擇字段時(shí),選擇所有可用字段,選擇陰影式和圖片按鈕作為設(shè)備采購計(jì)劃表的樣式。選擇計(jì)劃采購時(shí)間的升序排列作為設(shè)備采購計(jì)劃表的索引。 (2)為窗體修改和添加命令按鈕 添加2個(gè)命令按鈕“保存日志”和“回主界面”。設(shè)置表單中控件的屬性。下面的表列出了需要修改的控件的名稱以及屬性值。 (1)Form1控件的主要屬性: 表5-7 屬性名稱 屬性值 Caption 設(shè)備采購表 Autocenter .T.-真 BackColor 255.255.255 (2)ButtonSet1控件的主要屬性: 表5-8 控件名 屬性名稱 屬性值 cmdExit Visible .F.-假 cmdDelete Visible .F.-假 cmdPrint Visible .F.-假 cmdEdit Visible .F.-假 Command1 Caption 保存日志 Command2 Caption 回主界面 (3)為按鈕添加click事件代碼: 在表單設(shè)計(jì)器中,雙擊保存日志命令按鈕。添加click事件代碼如下: insert into 操作日志表 (操作員,操作內(nèi)容,操作時(shí)間) values (username,"設(shè)備需求",date()) *把設(shè)備需求寫入操作日志表中 雙擊回主界面按鈕,添加click事件代碼如下: thisform.release *釋放本表單 do form 倉儲(chǔ)管理 *運(yùn)行倉儲(chǔ)管理界面 保存對(duì)表單所作的修改,表單運(yùn)行效果如圖所示:  圖 5-17 5.7 顯示報(bào)表模塊的設(shè)計(jì) 在該模塊中,一共要顯示3個(gè)報(bào)表,分別提供庫存不足,庫存過多和操作日志等信息。 1( 設(shè)計(jì)顯示報(bào)表表單 在項(xiàng)目管理器的文檔視圖下選擇“新建”,然后選擇新建表單,如圖所示。  圖5-18  -19 圖5 在如圖所示的空白表單中添加一個(gè)頁框控件,并按照下表設(shè)置頁框的屬性,同時(shí)在數(shù)據(jù)環(huán)境里添加現(xiàn)有庫存表和操作日志表 。 表5-9 控件名 屬性名稱 屬性值 Form1 Caption 顯示報(bào)表 Pageframe1 Caption 3 Pageframe1.Page1 Caption 庫存不足表 Pageframe1.Page2 Caption 庫存過多表 Pageframe1.Page3 Caption 操作日志 分別為每個(gè)page添加一個(gè)表格grid1,如圖所示:  圖 5-20 庫存過多表  圖5-21 庫存不足表  圖5-22 操作日志表 設(shè)置表格控件的屬性,如表所示: grid1控件的主要屬性表: 表5-10 控件名 屬性名稱 屬性值 Pageframe1.Page1.grid1 ReadOnly .T.-真 Pageframe1.Page1.grid1 RecordSourceType 1-別名 Pageframe1.Page1.grid1 ColumnCount -1 Pageframe1.Page2.grid1 ReadOnly .T.-真 Pageframe1.Page2.grid1 RecordSourceType 1-別名 Pageframe1.Page2.grid1 ColumnCount -1 Pageframe1.Page3.grid1 ReadOnly .T.-真 Pageframe1.Page3.grid1 RecordSourceType 1-別名 Pageframe1.Page3.grid1 ColumnCount -1 2( 代碼設(shè)計(jì) 定義Pageframe1.Page1.grid1的init事件 運(yùn)行“顯示報(bào)表”表單,界面所圖所示: local Custs1 select 設(shè)備號(hào),最大庫存,現(xiàn)有庫存 from 現(xiàn)有庫存表 where (現(xiàn)有庫存>最大庫存) into cursor Custs1 thisform.頁框.庫存過多.庫存過多表.recordsource="Custs1" 定義Pageframe1.Page2.grid1的init事件 local Custs2 select 設(shè)備號(hào),最小庫存,現(xiàn)有庫存 from 現(xiàn)有庫存表 where (現(xiàn)有庫存<最小庫存) into cursor Custs2 thisform.頁框.庫存不足.庫存不足表.recordsource="Custs2" 定義Pageframe1.Page3.grid1的init事件 local Custs3 select * from 操作日志表 into cursor Custs3 thisform.頁框.操作日志.操作日志表1.recordsource="Custs3" 運(yùn)行“顯示報(bào)表”表單,界面如圖所示。  圖5-23 5.8 開發(fā)中的難點(diǎn)和解決技巧 Visual FoxPro6.0中的向?qū)Оū硐驅(qū)?、?shù)據(jù)庫向?qū)?、表單向?qū)?、查詢向?qū)А?bào)表向?qū)?、?biāo)簽向?qū)А⑧]件合并向?qū)?、?shù)據(jù)透視表向?qū)А?dǎo)入向?qū)?、文檔向?qū)?、安裝向?qū)?、升遷向?qū)?、?yīng)用程序向?qū)?、WEB發(fā)表向?qū)У?、我們合理?yīng)用向?qū)Э梢栽诰幊讨刑岣咝省?/p> 為了快速開發(fā)高效的軟件,本設(shè)計(jì)中的多數(shù)表單的設(shè)計(jì)采用利用表單設(shè)計(jì)向?qū)?,然后在生成的表單的基礎(chǔ)上修改。 數(shù)據(jù)庫軟件用來管理數(shù)據(jù)的優(yōu)勢在于可以迅速從成千上萬的數(shù)據(jù)中找到我們需要的數(shù)據(jù),而查詢功能的設(shè)計(jì)也是數(shù)據(jù)庫應(yīng)用軟件設(shè)計(jì)過程中的重點(diǎn)也是難點(diǎn)。本設(shè)計(jì)過程中利用表單向?qū)?qiáng)大的功能,輕松完成了數(shù)據(jù)的查詢功能。而且表單向?qū)傻牟樵児δ芊浅?qiáng)大,完全可以滿足數(shù)據(jù)庫應(yīng)用軟件的需要。 第六章 性能測試與分析 軟件開發(fā)過程是一個(gè)自頂向下,逐步細(xì)化的過程,首先在軟件計(jì)劃階段定義了軟件的作用域,然后進(jìn)行軟件需求分析,建立軟件的數(shù)據(jù)域、功能和性能需求、約束和一些有效性準(zhǔn)則。接著進(jìn)入軟件開發(fā),首先是軟件設(shè)計(jì),然后在把設(shè)計(jì)用某種程序設(shè)計(jì)語言轉(zhuǎn)換成程序代碼。而測試過程則是依向反的順序安排的自頂向上,逐步集成的過程。低一級(jí)測試為上一級(jí)測試準(zhǔn)備條件。 任何工程產(chǎn)品都可以使用以下兩種方法之一進(jìn)行測試(黑盒、白盒): 1(已知產(chǎn)品的功能設(shè)計(jì)規(guī)格,可以進(jìn)行測試證明每個(gè)實(shí)現(xiàn)了的功能是否符合要求。 2(已知產(chǎn)品的內(nèi)部工作過程,可以通過測試證明每種內(nèi)部操作是否符合設(shè)計(jì)規(guī)格要求,所有內(nèi)部成分是否已通過檢查。 程序經(jīng)連編項(xiàng)目和連編可執(zhí)性文件,系統(tǒng)未發(fā)生報(bào)錯(cuò)信息,系統(tǒng)工作正常。運(yùn)行本倉儲(chǔ)管理系統(tǒng)的各個(gè)功能摸塊,各模塊的編、查、刪、改功能都具備,界面顯示正常。輸入一組數(shù)據(jù)在入庫模塊,出庫模塊,還庫模塊,需求模塊,采購模塊。檢查各個(gè)模塊間的關(guān)聯(lián)狀況,看是否在相應(yīng)模塊的數(shù)據(jù)表中有所體現(xiàn)。 由于在編寫程序時(shí),或者在數(shù)據(jù)庫的逐步更新擴(kuò)大中,難免會(huì)有一些手誤,這都在以后的系統(tǒng)運(yùn)行中才能體現(xiàn)出來。所以在后期的系統(tǒng)測試中才能不斷的發(fā)現(xiàn)問題所在,而且要不斷的測試,才能發(fā)現(xiàn)該系統(tǒng)是否穩(wěn)定可靠,而且在今后的運(yùn)行中逐步的進(jìn)行系統(tǒng)的維護(hù)以及測試,才能不斷的發(fā)現(xiàn)隱藏的新問題,才能將使這個(gè)倉儲(chǔ)管理系統(tǒng)成功。
信息發(fā)布:廣州名易軟件有限公司 http://www.jetlc.com
|