VisualFoxPro程序設(shè)計案例教程建立用戶使用界面實用教案_第1頁
VisualFoxPro程序設(shè)計案例教程建立用戶使用界面實用教案_第2頁
VisualFoxPro程序設(shè)計案例教程建立用戶使用界面實用教案_第3頁
VisualFoxPro程序設(shè)計案例教程建立用戶使用界面實用教案_第4頁
VisualFoxPro程序設(shè)計案例教程建立用戶使用界面實用教案_第5頁
已閱讀5頁,還剩113頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第一章本章目的簡單了解有關(guān)(yugun)面向?qū)ο缶幊痰奶攸c和基礎(chǔ)知識掌握程序設(shè)計的基本概念和常用命令掌握窗體的運行和關(guān)閉熟悉窗體的常用事件掌握窗體中的控件屬性及代碼編寫本章任務(wù)任務(wù)一:錄入超市管理系統(tǒng)數(shù)據(jù)任務(wù)二:設(shè)計用戶主界面任務(wù)三:程序設(shè)計初步任務(wù)四:用戶登錄任務(wù)五:退出窗口任務(wù)六:商品信息瀏覽任務(wù)七:表單的綜合應(yīng)用第1頁/共117頁第一頁,共118頁。5.1 基礎(chǔ)知識 面向?qū)ο蟮某绦蛟O(shè)計(OOP)(Object-Oriented Programming,OOP)立意于創(chuàng)建軟件重用代碼,具備更好地模擬現(xiàn)實世界環(huán)境的能力,這使它被公認為是自上而下(z shn r xi)編程的優(yōu)勝者。 面向?qū)ο?/p>

2、的編程語言使復(fù)雜的工作條理清晰,編寫容易,它是一場編程技術(shù)方面的革命。 Visual FoxPro是一種混合型語言,可以使用面向?qū)ο缶幊?,也可以使用傳統(tǒng)的過程化編程。第2頁/共117頁第二頁,共118頁。5.1.1 抽象(chuxing)在面向?qū)ο笾械淖饔?1抽象的概念(ginin)一般來講,抽象是通過從特定的實例中抽取共同的性質(zhì)以形成一般化的概念(ginin)的過程。抽象是對某個系統(tǒng)的簡化的描述,即強調(diào)該系統(tǒng)中的某些特征,而忽略一部分細節(jié)。簡單地說,抽象是人們在理解復(fù)雜現(xiàn)象和求解復(fù)雜問題中處理復(fù)雜事物的主要工具。2面向?qū)ο蟪橄蟮膶崿F(xiàn)面向?qū)ο蟮脑碛?個,分別是數(shù)據(jù)抽象、行為共享、進化和確定性

3、。(1)數(shù)據(jù)抽象:它為程序員提供了一種對數(shù)據(jù)和為操作這些數(shù)據(jù)所需要的算法的抽象。數(shù)據(jù)抽象包含兩個概念(ginin):模塊化和信息隱藏。模塊化的優(yōu)點是便于修改或維護,系統(tǒng)發(fā)現(xiàn)問題后,可以確定問題出在哪個模塊上。在支持信息隱藏的系統(tǒng)中,錯誤的影響也通常被限制在一個模塊內(nèi),增強了系統(tǒng)的可靠性。(2)行為共享:行為是數(shù)據(jù)抽象引進的概念(ginin),行為是由實體的外部接口進行定義的。行為共享是指許多實體具有相同的接口,這將增加系統(tǒng)的靈活性。(3)進化:進化是考慮到實際中的需求會很快發(fā)生變化。面向?qū)ο蟮姆椒ㄒС诌M化過程就是要適應(yīng)可能發(fā)生的不斷變化。(4)確定性:這里確定性是指用于描述一個系統(tǒng)確定的行為

4、。一個確定的系統(tǒng)應(yīng)該確保其中每個行為項都有一個確切的解釋,系統(tǒng)不會因不能響應(yīng)某一行為而失敗。 第3頁/共117頁第三頁,共118頁。5.1.2 面向?qū)ο蟮幕咎卣?面向?qū)ο蟮南到y(tǒng)包含3個要素:對象、類和繼承。1對象在不同領(lǐng)域中對對象有不同的理解。一般認為,對象就是一種事物,一個實體。從概念上講,對象是代表正在創(chuàng)建的系統(tǒng)中的一個實體。例如,一個商品銷售系統(tǒng),像顧客、商品、柜臺、廠家等都是對象。從實現(xiàn)形式上講,對象是一個狀態(tài)和操作(方法)的封裝體。狀態(tài)是由對象的數(shù)據(jù)結(jié)構(gòu)的內(nèi)容和值定義的,方法是一系列的實現(xiàn)步驟,它是由若干操作構(gòu)成的。2類類是創(chuàng)建對象的樣板,它包含著所創(chuàng)建對象的狀態(tài)描述和方法的定義。

5、一個類的所有對象都有相同的數(shù)據(jù)結(jié)構(gòu),并且共享相同的實現(xiàn)操作的代碼,而各個對象有著各自不同的狀態(tài)。類是所有對象的共同行為和不同狀態(tài)的集合體。3繼承繼承提供了創(chuàng)建新類的一種方法,這種方法就是一個新類可以通過對已有的類進行修改或擴充來滿足新類的需求(xqi)。新類共享已有類的行為,而自己還具有修改或額外添加的行為。從一個類繼承定義的新類,將繼承已有類的所有方法和屬性,并且可以添加所需要的新的方法和屬性。新類被稱為已有類的子類,而已有類稱為父類,又叫基類。新類又叫派生類。第4頁/共117頁第四頁,共118頁。5.2 任務(wù)一 錄入(l r)超市管理系統(tǒng)數(shù)據(jù) 5.2.1 相關(guān)知識 數(shù)據(jù)庫的對話框在Visu

6、al FoxPro中稱為“窗體”,一般還稱為表單。窗體也是Visual FoxPro 中的一種對象,它使用計算機屏幕將數(shù)據(jù)庫中的表或查詢中的數(shù)據(jù)顯示出來。由于數(shù)據(jù)庫軟件是給用戶使用的,所以要為使用的用戶提供一個友好的使用界面。這是建立一個窗體的基本目標。 一個設(shè)計優(yōu)秀的窗體是非常必要的。不管數(shù)據(jù)庫中表或查詢設(shè)計得有多好,如果窗體設(shè)計得十分雜亂,而且沒有任何提示,就會令使用者感覺到迷惑,甚至增加(zngji)失誤的概率。這樣的窗體就不利于數(shù)據(jù)庫軟件的應(yīng)用和推廣。 本任務(wù)將介紹如何使用Visual FoxPro編寫一個簡單的程序。在此之前先介紹Visual FoxPro的各個部分的功能,包括工具箱

7、、項目管理器、“屬性”窗體設(shè)計器等,下面分別介紹這幾部分的功能。第5頁/共117頁第五頁,共118頁。1工具箱 當(dāng)建立一個新的表單時,或者打開表單設(shè)計器時,一般會默認顯示工具箱,上面提供了Visual FoxPro 表單中常用的各個控件。選中控件,然后在窗體設(shè)計器中拖動鼠標,即可在其中繪制控件。初始狀態(tài)的工具箱只有一個“常用”選項卡,在工具箱上右擊,在彈出的快捷菜單中選擇“添加選項卡”命令,可以(ky)為工具箱添加選項卡;右擊,選擇相關(guān)選項,可以(ky)打開其他選項卡。 第6頁/共117頁第六頁,共118頁。常用(chn yn)表單控件名稱 第7頁/共117頁第七頁,共118頁。2項目(xin

8、gm)管理器 項目是Visual FoxPro的組織應(yīng)用程序的方式,一般而言,一個工程包含開發(fā)一個應(yīng)用程序所需要的所有文件(wnjin),包括窗體文件(wnjin)、程序文件(wnjin)、數(shù)據(jù)庫文件(wnjin)、表文件(wnjin)、報表文件(wnjin)、菜單文件(wnjin)、索引文件(wnjin)等。 第8頁/共117頁第八頁,共118頁。5.2.2 任務(wù)(rn wu)實現(xiàn) 本小節(jié)主要技能點如下(rxi): (1)創(chuàng)建最基本表單。 (2)用表單向?qū)?chuàng)建表單。 (3)一對多表單向?qū)?第9頁/共117頁第九頁,共118頁。1創(chuàng)建(chungjin)最基本的表單 在的“項目管理器”中,選擇

9、“文檔”選項卡,選擇下面列表框中的“表單”選項,在右側(cè)(yu c)操作區(qū)單擊“新建”按鈕。 在“新建表單”對話框中單擊“新建表單”按鈕。 第10頁/共117頁第十頁,共118頁。 選擇“文件”菜單中的“保存”命令(mng lng),選擇相關(guān)的文件夾并輸入正確的表單名即完成第一個表單的制作,如圖所示。 第11頁/共117頁第十一頁,共118頁。 選擇要保存(bocn)表單的位置 第12頁/共117頁第十二頁,共118頁。 也可以(ky)重新命名該表單,然后單擊“保存”按鈕,該表單就會出現(xiàn)在當(dāng)前項目中,如圖所示。關(guān)閉設(shè)計器,選擇第一個表單,在右側(cè)的功能區(qū)單擊“運行”按鈕。 第13頁/共117頁第十

10、三頁,共118頁。 表單運行(ynxng)結(jié)果如圖5-9所示。 單擊Form1右上角的關(guān)閉(gunb)按鈕,可以關(guān)閉(gunb)Form1。再次選擇第一個表單,單擊“修改”按鈕,可以對Form1(第一個表單)進行修改。 第14頁/共117頁第十四頁,共118頁。 選擇菜單(ci dn)中的“顯示”“表單控件工具欄”命令,可以控制表單控件工具欄的顯示。 單擊工具欄中的按鈕,并在第一個表單(Form1)上再次單擊,則會在Form1中創(chuàng)建(chungjin)一個新的按鈕。 第15頁/共117頁第十五頁,共118頁。雙擊Command1按鈕,會出現(xiàn)(chxin)該按鈕的代碼編輯器 在Command1的

11、click事件中輸入thisform.release,即運行表單后,單擊此按鈕就會退出表單。關(guān)閉(gunb)表單設(shè)計器,運行表單,測試按鈕Command1的效果。 第16頁/共117頁第十六頁,共118頁。 2用表單向?qū)?xingdo)創(chuàng)建簡單表單 (1)在“項目”菜單中,選擇(xunz)“新建”“表單向?qū)А泵睿霈F(xiàn)如圖所示的界面。 第17頁/共117頁第十七頁,共118頁。 (2)選擇“表單向?qū)?xingdo)”選項,單擊“確定”按鈕。 (3)選擇一個數(shù)據(jù)表,然后為該表建立一個表單,這里選擇的是“用戶”表,單擊按鈕可以把“用戶”表的所有字段全部選中,單擊按鈕可以選取單個字段。單擊“下一步”

12、按鈕。第18頁/共117頁第十八頁,共118頁。 (4)如圖5-15所示,在該對話框中選擇一個自己喜歡(x huan)的樣式,使表單更加美觀,單擊“下一步”按鈕繼續(xù)。 第19頁/共117頁第十九頁,共118頁。 (5)該對話框主要是對“用戶”表的數(shù)據(jù)進行排序的設(shè)置,這里(zhl)選擇“用戶編號”作為索引,單擊“添加”按鈕,再單擊“下一步”按鈕 第20頁/共117頁第二十頁,共118頁。 (6)根據(jù)(gnj)該對話框的提示,可以單擊“預(yù)覽”,觀看一下效果,也可以直接單擊“完成”按鈕,完成表單的制作 第21頁/共117頁第二十一頁,共118頁。 (7)單擊“預(yù)覽”按鈕,效果如圖5-18所示,返回向

13、導(dǎo),單擊“完成”按鈕,將表單命名為“用戶(yngh)”,選擇一個存放表單的位置,如D:superMarket 第22頁/共117頁第二十二頁,共118頁。3一對(y du)多表單向?qū)?選擇“項目”菜單中的“新建”命令,選擇“一對多表單向?qū)А?單擊“確定”按鈕,效果(xiogu)如圖5-20所示。 選擇“供貨商”表,然后將字段導(dǎo)入到“選定字段”列表框中。單擊“下一步”按鈕圖5 19 選擇“一對(y du)多表單向?qū)А边x項 圖5 20 父表選擇第23頁/共117頁第二十三頁,共118頁。 從子表中選擇(xunz)字段(這里選擇(xunz)“商品信息”表,導(dǎo)出所有字段,單擊“下一步”按鈕。 )第24

14、頁/共117頁第二十四頁,共118頁。 如圖5-22所示,是建立兩個(lin )表單的關(guān)系,以便聯(lián)動顯示。單擊“下一步”按鈕。 圖5 22 建立(jinl)表間關(guān)系第25頁/共117頁第二十五頁,共118頁。 如圖5-23所示,在“樣式”列表框中選擇自己喜歡的樣式,這里(zhl)選擇“陰影式”,單擊“下一步”按鈕。 圖5 23 選擇(xunz)表單樣式第26頁/共117頁第二十六頁,共118頁。 圖5-24是選擇排序次序的字段,這里選擇“供貨商編號(bin ho)”,單擊“下一步”按鈕 圖5 24 數(shù)據(jù)(shj)排序方式第27頁/共117頁第二十七頁,共118頁。 單擊“完成(wn chng)

15、”按鈕,保存為“供貨渠道” 圖5 25 完成(wn chng)及相關(guān)選項第28頁/共117頁第二十八頁,共118頁。 單擊“完成”按鈕,保存(bocn)為“供貨渠道”,運行表單 第29頁/共117頁第二十九頁,共118頁。課后練習(xí) 1利用向?qū)е谱饕粋€“入庫記錄( jl)”的表單,并用表單設(shè)計器修改和美化產(chǎn)生的表單,利用此表單瀏覽庫存商品信息,并通過此表單輸入相關(guān)的記錄( jl)。 入庫記錄 第30頁/共117頁第三十頁,共118頁。課后練習(xí) 2利用向?qū)Х謩e制作以下幾個數(shù)據(jù)表的表單,如“供貨商”表、“會員”表、“交易”表、“商品信息”表、“生產(chǎn)商”表、“銷售”表、“用戶”表,并通過表單為相關(guān)(x

16、inggun)的數(shù)據(jù)表添加數(shù)據(jù)和修改數(shù)據(jù)。第31頁/共117頁第三十一頁,共118頁。5.3 任務(wù)二 設(shè)計(shj)用戶主界面 設(shè)計用戶(yngh)主界面,并為主界面各項按鈕指定代碼,用以訪問相關(guān)表單。 第32頁/共117頁第三十二頁,共118頁。5.3.1 相關(guān)(xinggun)知識點 1容器和控件 2標簽控件 3“屬性”窗口 4和字體有關(guān)的屬性5命令按鈕控件 6和鼠標操作相關(guān)的常用事件 7設(shè)置訪問鍵 8設(shè)置控件的Tab鍵次序 9設(shè)置工具(gngj)提示文本 10.啟用和廢止控件 11.定義表單行為 12指定表單的圖標 第33頁/共117頁第三十三頁,共118頁。1容器(rngq)和控件 V

17、isual FoxPro 6.0的基類共分成兩個大類:容器類和非容器類。一般稱容器類基類為容器,而把非容器類基類稱為控件,有時(yush)也把所有基類都稱為控件。 (1)容器類。容器類可以(ky)包含其他對象,并且允許訪問這些對象。 (2)控件類??丶惖姆庋b比容器類更為嚴密,但也因此喪失了一些靈活性。 (3)容器中各對象的調(diào)用。在進行容器類“子類”或“對象”的設(shè)計時,往往要調(diào)用容器中某一特定對象,這就要掌握OOP方法中對象的標識方法。 例如,在圖5-12所示的代碼編輯器中輸入。mand1.caption=點擊事件,并刪除thisform.release。運行表單,單擊按鈕,可以看到最后的效果

18、。其中thisform是command1的父容器,command1是其中的一個控件,caption是command1的屬性。文字“點擊事件”是這個屬性的值。注:thisform在Visual FoxPro中用來代表當(dāng)前的表單。 第34頁/共117頁第三十四頁,共118頁。2標簽(bioqin)控件 在設(shè)計表單界面(jimin)時,幾乎都要有一些提示某個控件的作用的文字,比如在注冊時,就有用戶名、密碼等文字在某些表單控件之前進行顯示,提示用戶某控件可以做什么,如果不知道,用戶就會不了解這個界面(jimin),注冊也就無從下手,這就是標簽的作用。 標簽(bioqin)第35頁/共117頁第三十五頁

19、,共118頁。3“屬性(shxng)”窗口 “屬性”窗口用于修改窗體和控件的屬性,如圖5-30所示,其中上方的下拉列表框中列出當(dāng)前的窗體及其控件的名稱(mngchng),可以通過下拉列表來選擇窗體或某一個控件。在窗體設(shè)計器中選擇某一個對象之后,“屬性”窗口也會顯示該對象的屬性。 圖5-30 表單“屬性(shxng)”窗口在屬性列表中,caption屬性最為常用,用于顯示文本。而為了編程方便些,還要修改name屬性,即在代碼中引用對象時所用的名稱。 第36頁/共117頁第三十六頁,共118頁。 在設(shè)計表單時,為了讓界面更友好、更美觀,通常都要對界面進行一定的美化,其中(qzhng)很重要的一項就

20、是對字體屬性的設(shè)置,常用的控件如標簽和按鈕等都會有字體屬性,可以在“屬性”窗口中進行設(shè)置,圖5-31所示為與字體有關(guān)的屬性。 4和字體(zt)有關(guān)的屬性 圖5-31 和字體(zt)有關(guān)的屬性FontBold、FontItalic、FontStrikethru、Fontunderline屬性:指定文本是否具有粗體、斜體、刪除線或下劃線等效果。 FontExtend的作用是指定文本是否可擴展。 FontName屬性:指定顯示文本的字體名,默認值為 Arial FontSize屬性:默認的設(shè)置是 9 磅 FontOutline屬性:作用是指定與控件相關(guān)聯(lián)的文字是否顯示為空心字 FontShadow屬

21、性:作用是指定與控件相關(guān)聯(lián)的文字是否帶有陰影 FontSize屬性:指定對象文本的字體大小,以磅為單位,默認值為10磅 ForeColor屬性:指定用于顯示對象中文本前景色 第37頁/共117頁第三十七頁,共118頁。5命令(mng lng)按鈕控件 命令按鈕通常用來啟動一個事件,如關(guān)閉一個表單、移動到不同記錄、打印報表等動作(dngzu)。 可使用Caption屬性指定在命令按鈕上顯示的文本。 命令按鈕常用的事件是Click事件,當(dāng)編輯代碼時,可以選擇執(zhí)行的事件,如圖5-33所示。 圖5-33 命令(mng lng)按鈕事件選擇第38頁/共117頁第三十八頁,共118頁。(1)Click:當(dāng)

22、在程序中包含(bohn)觸發(fā)此事件的代碼,或者將鼠標指針放在一個控件上按下并釋放鼠標左鍵,或者更改特定控件的值,或在表單空白區(qū)單擊時,此事件發(fā)生。Click 事件發(fā)生在用戶: 單擊復(fù)選框、命令按鈕、列表框或選項按鈕控件時。 使用箭頭鍵或按鼠標鍵在下拉列表框或列表框中選擇一項時。 在命令按鈕、選項按鈕或復(fù)選框有焦點時按SPACEBAR鍵時。 表單中有 Default 屬性設(shè)置為“真”(.T.) 的命令按鈕并且按回車鍵時。 按一個控件的訪問鍵。例如,若一個命令按鈕的標題為“Go”,則按ALT+G組合鍵可觸發(fā)Click事件。 單擊表單空白區(qū)。當(dāng)指針位于標題欄、控制菜單框或窗口邊界上時,不發(fā)生表單的

23、Click 事件。 單擊微調(diào)控件的文本輸入?yún)^(qū)。 單擊廢止的控件時,廢止控件所在的表單發(fā)生Click事件。 6和鼠標操作相關(guān)(xinggun)的常用事件 第39頁/共117頁第三十九頁,共118頁。(2)DblClick:當(dāng)連續(xù)兩次快速按下鼠標左鍵(主鍵)并釋放時,此事件發(fā)生。當(dāng)從列表框或組合框中選擇一個選項并按回車鍵時,也發(fā)生 DblClick 事件。如果在系統(tǒng)指定的雙擊時間間隔內(nèi)不發(fā)生 DblClick 事件,對象認為這種操作是一個 Click 事件。因此(ync),當(dāng)向這些相關(guān)事件中添加過程時,必須確認這些事件不沖突。另外,不響應(yīng) DblClick 事件的控件可能會將一個雙擊事件確認為兩個

24、單擊事件。 6和鼠標操作相關(guān)(xinggun)的常用事件 第40頁/共117頁第四十頁,共118頁。7設(shè)置(shzh)訪問鍵 代表訪問鍵的字符在菜單上或?qū)υ捒蛑屑佑邢聞澗€或突出顯示。同時按下 Alt 鍵和訪問鍵可以(ky)激活菜單或?qū)υ捒颉S袝r用來指代熱鍵。 設(shè)置訪問鍵的方式是在設(shè)置Caption屬性時,在訪問鍵的相關(guān)字母前加/Close則顯示的結(jié)果為Close,設(shè)置的訪問鍵為Alt+C。第41頁/共117頁第四十一頁,共118頁。8設(shè)置(shzh)控件的Tab鍵次序 按鍵盤上的Tab鍵時,焦點從一個字段或?qū)ο笠葡蛄硪粋€字段或?qū)ο蟮拇涡颉Ρ韱沃械目丶碚f,按照控件添加的次序指定Tab鍵次序,

25、每個新建控件都位于Tab鍵次序的末尾(mwi)。一個良好的Tab鍵次序,對于用戶的使用以及提高用戶的工作效率是至關(guān)重要的。可以通過“屬性”窗口來調(diào)整個別控件的Tab鍵值也可以通過菜單“顯示”“Tab鍵次序”命令來依次指定。 第42頁/共117頁第四十二頁,共118頁。9設(shè)置工具提示(tsh)文本 ToolTipText:指定控件工具的提示文本。當(dāng)在運行狀態(tài)時,鼠標懸停在相關(guān)控件上方(shn fn),系統(tǒng)會給出相關(guān)的提示。 第43頁/共117頁第四十三頁,共118頁。10啟用(qyng)和廢止控件 在某給定情況下,如果禁止(jnzh)使用某個控件,可以將該控件的Enabled屬性設(shè)置為“假”(.

26、F.)。 將每個按鈕的Enabled屬性設(shè)置為“真”(.T.)或“假”(.F.),可以啟用或廢止組中單個選項按鈕或命令按鈕;也可通過設(shè)置組的Enabled屬性來啟用或廢止組中的全部按鈕。 如下面一行代碼所示: Tmand1.Enabled = .F. 當(dāng)控件的Enabled屬性設(shè)置為“假”(.F.)時,控件的所有事件都將廢止,但會顯示出禁用的前景色和背景色。 第44頁/共117頁第四十四頁,共118頁。11.定義(dngy)表單屬性 表5-3 表單行為(xngwi)屬性(一)屬性說明默認值A(chǔ)lwaysOnTop控制表單是否總是處在其他打開窗口之上“假”(.F.)AutoCenter控制表單初始

27、化時是否讓表單自動在Visual FoxPro主窗口中居中“假”(.F.)BackColor決定表單窗口的顏色255、255、255BorderStyle決定表單是否沒有邊框,還是具有單線邊框、雙線邊框或系統(tǒng)邊框。如果BorderStyle為3可調(diào)邊框,用戶能重新改變表單大小3Caption決定表單標題欄顯示的文本Form1Closable控制用戶是否能通過雙擊“關(guān)閉”框來關(guān)閉表單“真”(.T.)DataSession控制表單或表單集里的表是否能在可全局訪問的工作區(qū)中打開,或僅能在表單或表單集所屬的私有工作區(qū)內(nèi)打開1MaxButton控制表單是否具有最大化按鈕真(.T.)第45頁/共117頁第

28、四十五頁,共118頁。11.定義(dngy)表單屬性 表5-3 表單行為(xngwi)屬性(二)屬性說明默認值MinButton控制表單是否具有最小化按鈕真(.T.)Movable控制表單是否能移動到屏幕的新位置真(.T.)ScaleMode控制對象的尺寸和位置屬性的度量單位是pixels還是像素。由“選項”對話框中的設(shè)置決定由“選項”對話框中的設(shè)置決定Scrollbars控制表單所具有的滾動條類型0 - 無TitleBar控制標題欄是否顯示在表單的頂部1 - 打開ShowWindow控制表單是否在屏幕中、懸浮在頂層表單中或作為頂層表單出現(xiàn)0 - 在屏幕中WindowState控制表單是最小化

29、、最大化還是正常狀態(tài)0 - 普通WindowType控制表單是非模式表單(默認)還是模式表單。如果表單是模式表單,用戶在訪問應(yīng)用程序用戶界面中任何其他單元前必須關(guān)閉這個表單0 - 無模式第46頁/共117頁第四十六頁,共118頁。12指定(zhdng)表單的圖標 在Visual FoxPro for Windows 中,可指定表單的圖標;當(dāng)該表單在 Windows NT 窗口中最小化或位于 Windows 95 的標題欄上時顯示為這個圖標。如果要指定表單的圖標,將表單的 Icon 屬性(shxng)設(shè)置為一個 .ico 文件的文件名。 若要指定表單的圖標,打開表單,再打開“屬性(shxng)”

30、窗口,將 Icon 屬性(shxng)設(shè)置為希望顯示的 .ico 文件。 第47頁/共117頁第四十七頁,共118頁。5.3.2 任務(wù)(rn wu)實現(xiàn) (1)效果如圖5-34所示,添加按鈕和圖片,設(shè)置按鈕的名稱。 各按鈕的Click事件的代碼分別(fnbi)如下: “采購商品”按鈕Click事件:do form 商品信息 “生產(chǎn)商”按鈕Click事件:do form生產(chǎn)商 “供貨商”按鈕Click事件:do form 供貨商 “會員注冊”按鈕Click事件:do form 會員注冊 “用戶注冊”按鈕Click事件:do form 用戶注冊 “采購商信息”按鈕Click事件:report fo

31、rm 采購商信息報表 preview “生產(chǎn)商信息”按鈕Click事件:report form 生產(chǎn)商信息報表 preview第48頁/共117頁第四十八頁,共118頁。5.4 任務(wù)三 利用程序(chngx)瀏覽數(shù)據(jù) 5.4.1 相關(guān)(xinggun)知識 1程序設(shè)計的基本概念程序設(shè)計(Programming)是指設(shè)計、編制、調(diào)試程序的方法和過程(程序設(shè)計=數(shù)據(jù)結(jié)構(gòu)+算法(sun f))。它是目標明確的智力活動。由于程序是軟件的本體,軟件的質(zhì)量主要通過程序的質(zhì)量來體現(xiàn),在軟件研究中,程序設(shè)計的工作非常重要,內(nèi)容涉及有關(guān)的基本概念、工具、方法及方法學(xué)等。 按照結(jié)構(gòu)性質(zhì),有結(jié)構(gòu)化程序設(shè)計與非結(jié)構(gòu)化

32、程序設(shè)計之分。前者是指具有結(jié)構(gòu)性的程序設(shè)計方法與過程。它具有由基本結(jié)構(gòu)構(gòu)成復(fù)雜結(jié)構(gòu)的層次性;后者反之。按照用戶的要求,有過程式程序設(shè)計與非過程式程序設(shè)計之分。 第49頁/共117頁第四十九頁,共118頁。2程序設(shè)計的過程軟件設(shè)計思路和方法的一般過程,包括設(shè)計軟件的功能和實現(xiàn)的算法及方法、軟件的總體結(jié)構(gòu)設(shè)計和模塊設(shè)計、編程和調(diào)試、程序聯(lián)調(diào)和測試以及編寫、提交程序。 (1)系統(tǒng)分析員通過和用戶的溝通初步了解需求,列出系統(tǒng)的主要功能模塊,每個主要功能模塊可能會有哪些小功能模塊,對于有些需求比較明確相關(guān)的界面時,在這一步里可以初步定義好少量的界面。 (2)系統(tǒng)分析員深入地了解和分析需求,根據(jù)自己的經(jīng)驗

33、和需求做出一份系統(tǒng)的功能需求文檔。文檔會清楚列出系統(tǒng)大致的主要功能模塊,主要功能模塊有哪些小功能模塊,并且會列出相關(guān)的界面和界面功能。 (3)系統(tǒng)分析員和用戶再次確認(qurn)需求。 (4)系統(tǒng)分析員根據(jù)確認(qurn)的需求文檔所列出的界面和功能需求,用迭代的方式對每個界面或功能做系統(tǒng)的概要設(shè)計。 (5)系統(tǒng)分析員把寫好的概要設(shè)計文檔提交給程序員,程序員根據(jù)所列出的功能進行設(shè)計和編寫代碼。 (6)測試編寫好的系統(tǒng),交給用戶使用,用戶使用后逐一確認(qurn)每個功能,然后驗收。第50頁/共117頁第五十頁,共118頁。3程序設(shè)計基礎(chǔ)(1)變量。變量是在程序設(shè)計中最重要的一個要素,幾乎任何一

34、個程序設(shè)計語言中都要有變量存在。操作過程中可以改變其取值或數(shù)據(jù)類型的數(shù)據(jù)項。在Visual FoxPro系統(tǒng)中,變量分為字段變量、內(nèi)存變量、數(shù)組變量和系統(tǒng)變量4類。此外(cwi),作為面向?qū)ο蟮某绦蛘Z言,Visual FoxPro系統(tǒng)在進行面向?qū)ο蟮某绦蛟O(shè)計中引入了對象的概念,對象實質(zhì)上也是一類變量。 確定一個變量,需要確定其3個要素:變量名、數(shù)據(jù)類型和變量值。命名約定:在Visual FoxPro系統(tǒng)中,將表示、存儲數(shù)據(jù)的常量、變量、數(shù)組、字段、記錄、對象、表、數(shù)據(jù)庫等,都稱為數(shù)據(jù)容器(rngq)。所有數(shù)據(jù)容器(rngq)均需命名以相互區(qū)別,為規(guī)范各類對象的命名,Visual FoxPro系

35、統(tǒng)推薦若干“命名約定”供用戶參考,以提高操作命令與程序的可讀性和規(guī)范性。使用字母、下劃線和數(shù)字命名。一般建議不采用漢字命名。命名以字母或下劃線開頭;除自由表中字段名、索引的TAG標識名最多只能有10個字符外,其他的命名可使用1128個字符。避免使用 Visual FoxPro的保留字。第51頁/共117頁第五十一頁,共118頁。 字段變量。在Visual FoxPro系統(tǒng)中,表由若干記錄構(gòu)成,每個記錄包含若干數(shù)量相同的字段,而同一字段在不同記錄中對應(yīng)不同的值。所以字段是變量。字段變量與其他變量不同,是定義在表中的變量,隨表的存取而存取,是永久性變量。字段變量的變量名即字段名,數(shù)據(jù)類型為Visu

36、al FoxPro系統(tǒng)中的任意數(shù)據(jù)類型,變量值即字段值。 內(nèi)存變量。內(nèi)存變量是用戶在內(nèi)存中定義的,用來存放程序運行的中間結(jié)果和最終結(jié)果,是進行數(shù)據(jù)的傳遞和運算的變量。有一種內(nèi)存變量在全部程序、過程和自定義函數(shù),以及它調(diào)用的程序、過程和自定義函數(shù)中都有效,這就是全局型內(nèi)存變量。全局型內(nèi)存變量使用Public定義,在后面的實例中會(zhn hu)有它的應(yīng)用。 系統(tǒng)變量。系統(tǒng)變量是Visual FoxPro系統(tǒng)特有的內(nèi)存變量,由Visual FoxPro系統(tǒng)定義、維護。系統(tǒng)變量的變量名均以下劃線“_”開始,如_WINDOWS、_CLIPTEXT等。因此在定義內(nèi)存變量和數(shù)組變量名時,不要以下劃線開始,

37、以免與系統(tǒng)變量名沖突。系統(tǒng)變量設(shè)置、保存了很多系統(tǒng)的狀態(tài)、特性,了解、熟悉并充分地運用系統(tǒng)變量,會給數(shù)據(jù)庫系統(tǒng)的操作和管理帶來很多方便,特別是開發(fā)應(yīng)用程序時更為突出。 第52頁/共117頁第五十二頁,共118頁。a變量的保存。Visual FoxPro提供相應(yīng)命令(mng lng),可用文件形式將某些變量保存起來,以便重復(fù)使用。格式:SAVE TO ALL LIKE | ALL EXCEPT 功能:將指定變量的信息保存到指定的變量文件(*.MEM)中。ALL LIKE :只保存符合通配符條件的所有變量。ALL EXCEPT :只保存不符合通配符條件的所有變量。b變量的恢復(fù)。需要保存在文件中的變

38、量信息時,必須先恢復(fù)到內(nèi)存后方可使用。格式:RESTORE FROM ADDITIVE功能:將指定變量文件(*.MEM)中的變量信息恢復(fù)到內(nèi)存中。ADDITIVE:省略此項,清除內(nèi)存所有變量后再恢復(fù)文件中變量的信息;加選此項,將變量文件中的變量信息追加到內(nèi)存現(xiàn)有變量信息中。c變量的清除。Visual FoxPro系統(tǒng)對定義內(nèi)存變量的數(shù)量是有限制的,應(yīng)及時清理,盡量減少內(nèi)存的占用,以定義其他變量。格式:RELEASE RELEASE ALL LIKE | EXCEPT 第53頁/共117頁第五十三頁,共118頁。(2)分支結(jié)構(gòu)。 簡單(jindn)的條件語句。格式:IF ENDIF說明:條件表達

39、式可以是各種表達式的組合,其值必須是邏輯“真”或“假”。當(dāng)條件表達式的值為“真”時,先執(zhí)行IF與ENDIF間的語句,然后執(zhí)行ENDIF后面的語句;當(dāng)條件表達式的值為“假”時,直接執(zhí)行ENDIF后面的語句。例1:從鍵盤輸入(shr)一個數(shù),若小于0,則顯示“輸入(shr)的是負數(shù)”。*liti1clearinput 輸入(shr)一個數(shù): to xif x0 ?輸入(shr)的是負數(shù)endif第54頁/共117頁第五十四頁,共118頁。帶ELSE的條件語句。格式:IF ELSE ENDIF說明:當(dāng)條件表達式的值為“真”時,先執(zhí)行(zhxng)命令序列1,然后轉(zhuǎn)去執(zhí)行(zhxng)ENDIF后面的

40、語句;當(dāng)條件表達式的值為“假”時,先執(zhí)行(zhxng)命令序列2,然后轉(zhuǎn)去執(zhí)行(zhxng)ENDIF后面的語句。例2:從鍵盤輸入一個數(shù),若小于0,顯示(xinsh)“輸入的是負數(shù)”;否則顯示(xinsh)“輸入的是非負數(shù)”。*liti2clearinput 輸入一個數(shù): to xif x0 ?輸入的是負數(shù)else ?輸入是的非負數(shù)endif第55頁/共117頁第五十五頁,共118頁。 IF條件語句的嵌套。格式1:IF IF ELSE ENDIFELSE ENDIF當(dāng)“條件1”為“真”,同時(tngsh)“條件2”為“真”時,執(zhí)行“命令序列1”。當(dāng)“條件1”為“真”,同時(tngsh)“條件2

41、”為“假”時,執(zhí)行“命令序列2”。當(dāng)“條件1”為“假”,執(zhí)行“命令序列3”。第56頁/共117頁第五十六頁,共118頁。格式2:IF ELSE IF ELSE ENDIFENDIF當(dāng)“條件1”為“真”,執(zhí)行“命令(mng lng)序列1”。當(dāng)“條件1”為“假”,同時“條件2”為“真”時,執(zhí)行“命令(mng lng)序列2”。當(dāng)“條件1”為“假”,同時“條件2”為“假”時,執(zhí)行“命令(mng lng)序列3”。第57頁/共117頁第五十七頁,共118頁。例3:從鍵盤輸入一個數(shù),若小于0,顯示“輸入的是負數(shù)”;若等于0,顯示“輸入的是零”;若大于0,則顯示“輸入的是正數(shù)”。 *liti3clear

42、input 輸入一個數(shù): to xif x0 ?輸入的是負數(shù)else if x=0 ?輸入的是零 else ?輸入的是正數(shù) endifendif實現(xiàn)過程(guchng)與例2一樣,都是在命令窗口中執(zhí)行,只是新建的文件名要另起一個,以免重復(fù),這里使用liti4作為文件名,讀者也可以自己起一個名字。第58頁/共117頁第五十八頁,共118頁。 DOCASE條件語句的嵌套。 DO CASE CASE條件表達式1 命令序列1 CASE 條件表達式2 命令序列2 . CASE 條件表達式N 命令序列N OTHERWISE 命令序列N+1 ENDCASE 在執(zhí)行DO CASE命令時,依次(yc)判斷各條件

43、,若為.T.,就執(zhí)行對應(yīng)的,然后轉(zhuǎn)去執(zhí)行ENDCASE后面的語句。若為.F.,不執(zhí)行,繼續(xù)判斷下一個條件。若沒有一個條件為T,則執(zhí)行OTHERWISE后面的。若沒有OTHERWISE語句,則不作任何操作就轉(zhuǎn)去執(zhí)行ENDCASE之后的語句。第59頁/共117頁第五十九頁,共118頁。例4:利用do case判斷今天是星期幾。*liti4 input 輸入一個1-7的數(shù): to x do case case x=1 ?星期一 case x=2 ? 星期二 case x=3 ? 星期三 case x=4 ? 星期四 case x=5 ? 星期五 case x=6 ? 星期六 case x=7 ? 星

44、期日otherwise ? 請輸入要求(yoqi)輸入的數(shù)字!endcase第60頁/共117頁第六十頁,共118頁。(3)循環(huán)結(jié)構(gòu). 條件循環(huán)(“當(dāng)”型循環(huán)控制語句)。a語句格式:DO WHILE ENDDOb執(zhí)行過程:當(dāng)執(zhí)行到DO WHILE 語句時,首先判斷條件表達式的值是否為真,若為真則執(zhí)行下面的命令序列,遇到ENDDO即返回到循環(huán)頭,再檢查條件是否為真,如果條件仍為真,則再執(zhí)行序列;如此反復(fù)檢查和執(zhí)行,直到的值為假,即退出循環(huán),轉(zhuǎn)去執(zhí)行ENDDO后面的語句。c說明。循環(huán)體:被重復(fù)執(zhí)行的命令序列。DO WHILE 與ENDDO必須配對使用。循環(huán)條件的改變(gibin)、死循環(huán)、循環(huán)的退

45、出。d循環(huán)輔助語句格式:EXIT功能:用于終止本層循環(huán),無條件轉(zhuǎn)移到本層ENDDO后面的語句去執(zhí)行。格式:LOOP功能:終止本次循環(huán),返回到循環(huán)頭,進行本層次的下一次循環(huán)。第61頁/共117頁第六十一頁,共118頁。例5:循環(huán)輸出1+2+3+100的和。*liti5CLEAR&清除屏幕顯示信息S=0&設(shè)置變量S初始值為0,用于保存和N=1&設(shè)置變量N初始值為1,用于計數(shù)( j sh)DO WHILE N=100&當(dāng)N100時,執(zhí)行DO 和ENDDO之間的代碼 S=S+N &將S+N的值賦給S N=N+1 &N的值增加1ENDDO?S=,S實現(xiàn)過程

46、與例2一樣,都是在命令窗口中執(zhí)行,只是新建的文件名要另起一個,免得重復(fù),這里使用liti6作為文件名,讀者也可以自己起一個名字。第62頁/共117頁第六十二頁,共118頁。 步長循環(huán) (“計數(shù)”型循環(huán)控制語句)。 格式:FOR = TO STEP ENDFOR 功能:根據(jù)給定的次數(shù)重復(fù)執(zhí)行命令序列,實現(xiàn)程序循環(huán)。 說明: STEP步長值:是循環(huán)控制變量遞增或遞減的步長。如果步長值為正,循環(huán)控制變量遞增;如果步長值為負,則循環(huán)控制變量遞減。如果缺省STEP子句,循環(huán)控制變量每次的增量為1。第63頁/共117頁第六十三頁,共118頁。例6:求1+2+3+99+100的值。* liti6s=0for

47、 x=1 to 100 &循環(huán)遞增X的值,每次增長1 s=s+xendfor?s=,s實現(xiàn)過程與例2一樣,都是在命令窗口中執(zhí)行,只是新建的文件名要另起一個,免得(min de)重復(fù),這里使用liti7作為文件名,讀者也可以自己起一個名字。第64頁/共117頁第六十四頁,共118頁。5.4.2 任務(wù)(rn wu)實現(xiàn) (1)在“項目”選項卡中,建立一個自定義表單,命名為“程序結(jié)果”,用來(yn li)輸出分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和統(tǒng)計用戶數(shù)量的結(jié)果,如圖5-36所示。 注:Label1為標簽。圖5-36 程序運行及結(jié)果顯示第65頁/共117頁第六十五頁,共118頁。(2)編寫“分支結(jié)構(gòu)”按鈕的

48、代碼。a=5If a 3&如果a3thisform.label1.caption=比3大&在標簽上顯示最終結(jié)果else&如果a3,則在標簽中顯示比3小,否則顯示比3大。上面的標簽中,主要利用的就是caption屬性,而按鈕的事件就是Click事件,如圖5-37所示。圖5-37 按鈕事件(shjin)選擇第66頁/共117頁第六十六頁,共118頁。(3)編寫“循環(huán)結(jié)構(gòu)”按鈕的代碼。S=0N=1DO WHILE N0,enabled為.T.,則當(dāng)表單啟動時計時器便開始計時。若enabled為.F.,則計時器不啟動,調(diào)用reset方法可使計時器重新從0開始計時。圖5-42 計

49、時器屬性(shxng)注計時器控件在運行(ynxng)時是不可見的,所以在設(shè)計時可把它放置在表單的任意位置。 第80頁/共117頁第八十頁,共118頁。 4CHR函數(shù) CHR函數(shù),根據(jù)指定的ASCII數(shù)值代碼返回其對應(yīng)的字符。 5Time函數(shù) 該函數(shù)主要是對時間進行操作,該類操作主要應(yīng)用(yngyng)有:在注冊用戶時,希望用戶在一定時間范圍內(nèi)讀取一些協(xié)議;可以在某些頁面進行時間的顯示;可以做一些退出的設(shè)置,如在退出某些系統(tǒng)時,為了避免某些錯誤操作,導(dǎo)致退出系統(tǒng)而尚未保存信息,可以用倒計時來提醒用戶,這種方式也用到了一些大型的網(wǎng)絡(luò)游戲,利用這種方式來存儲人物數(shù)據(jù)。與日期相關(guān)的函數(shù)如表5-5所列

50、。 表5-5 日期相關(guān)(xinggun)的函數(shù)函數(shù)名操作例結(jié)果DATE()求當(dāng)前日期DATE()2001/11/12DATETIME()求當(dāng)前日期和時間DATETIME()2001/11/12/0:22:33amYEAR(D)求年份YEAR(DATE()2001MONTH(D)求月份(數(shù)值)MONTH(DATETIME()11CMONTH(D)求月份字符)CMONTH(DATETIME()NovemberDAY(D)求日期DAY(DATE()12DOW(D)求星期幾(數(shù)值)DOW(DATE()1CDOW(D)求星期幾(英文)CDOW(DATE()sundayTIME(D)求當(dāng)前時間TIME(D

51、ATE()10:20:38am第81頁/共117頁第八十一頁,共118頁。5.6.2 任務(wù)實現(xiàn)(shxin):退出窗體 在程序設(shè)計和軟件開發(fā)中,經(jīng)常需要設(shè)計計時器,如秒表、正計時器、倒計時器等。這些(zhxi)計時器的設(shè)計方法大同小異,本文以倒計時器設(shè)計為例介紹兩種設(shè)計倒計時器的方法。 Visual FoxPro中的計時器控件有一個Timer事件,每經(jīng)過Interval(單位為毫秒)屬性指定的時間就執(zhí)行該事件一次。利用該控件的這一特點再配合一些程序,可設(shè)計各種計時器,包括倒計時器。本程序通過計時器控件和時間函數(shù)seconds()來設(shè)計倒計時器。seconds()函數(shù)可以以秒為單位返回自午夜以來

52、經(jīng)過的時間。在“開始”按鈕的Click事件中加入代碼:t0seconds()。在計時器控件的Timer事件代碼中加入:t1seconds()、t210t0、t3t2t1。t0為單擊“開始”按鈕時離午夜的時間,t1為計時器每次觸發(fā)(chf)時距午夜的時間,t2為定時結(jié)束時距午夜的時間,t3為剩余時間。第82頁/共117頁第八十二頁,共118頁。 (1)打開超市管理系統(tǒng)工程,新建立一個(y )窗體退出系統(tǒng)。 (2)在窗體設(shè)計器中添加如圖5-43所示的控件。圖5-43 退出(tuch)表單(3)程序清單如下。表單Form1的Init事件代碼:public t0&聲明變量t0t0=second

53、s()&設(shè)置(shzh)t0為表單運行的當(dāng)前時間thisform.timer1.enabled=.t.&可以直接在屬性中設(shè)置(shzh)標簽Label1的屬性Caption:退出系統(tǒng)標簽Label2的屬性Caption:10秒鐘第83頁/共117頁第八十三頁,共118頁。 計時器Timer1的屬性 Interval:500&時間間隔 計時器Timer1的timer事件代碼: t1seconds()&設(shè)置t1為表單運行后每次計時器響應(yīng)(xingyng)的時間 if t1-t0 =10&判斷當(dāng)前時間與表單運行時的時間差 messagebox(定時時間到!)

54、else thisform.label5.captionint(10-(t1-t0) endif 命令按鈕Command1的屬性 Caption:退出 命令按鈕Command1的Click事件代碼: Quit 命令按鈕Command2的屬性 Caption:取消 命令按鈕Command2的Click事件代碼: release thisform 說明:在上面的程序中,只是對倒計時的代碼作一些修改,只要適當(dāng)對上面的代碼進行修改,就可以改變出很多的實用功能。 第84頁/共117頁第八十四頁,共118頁。課后練習(xí) 利用計時器制作一個表單,要求用戶閱讀(yud)注冊協(xié)議,在30秒后才可以進行下一步操作。

55、要求只有剩余時間為0時按鈕才可以使用,如圖5-44所示。圖5 44 退出(tuch)提示第85頁/共117頁第八十五頁,共118頁。5.7 任務(wù)(rn wu)六 商品信息瀏覽 5.7.1 相關(guān)(xinggun)知識 類是面向?qū)ο蟪绦蛟O(shè)計中非常重要的一個知識點,正是類的存在,使得面向?qū)ο蟪绦蛟O(shè)計變得豐富多彩。恰當(dāng)?shù)厥褂?shyng)類不僅可以使程序更加美觀,更可以減輕大量的重復(fù)性工作。 利用向?qū)崿F(xiàn)表單可以很快速地生成數(shù)據(jù)表單。但這并不是萬能的方法,對于一些有特殊功能的表單并不能完全利用這種方法來生成。在這種情況下必須手工生成表單,并對所生成的表單添加一些功能按鈕和一些導(dǎo)航按鈕。這些功能按鈕和導(dǎo)

56、航按鈕可以用類的方式來生成。如果程序中并不涉及太多的代碼的重用問題,也可以不用類的方法。第86頁/共117頁第八十六頁,共118頁。 1創(chuàng)建(chungjin)類在創(chuàng)建過程中,選擇“類”,單擊“新建文件(wnjin)”命令,彈出窗體,如圖5-45所示。圖5-45 “新建類”對話框為新建類添加“類名”myc,選擇“派生于”為CommandGroup,該選項是選擇新建的類將繼承于哪種類。在“存儲于”中選擇存儲的位置,設(shè)置好相關(guān)目錄(ml),單擊“確定”按鈕。第87頁/共117頁第八十七頁,共118頁。 2將新屬性(shxng)添加到類在新建的類中添加(tin ji)4個按鈕,做成導(dǎo)航菜單,如圖5-

57、46所示。 圖5-46 新建類3在類中編輯方法(fngf)編輯類中的命令按鈕和編輯表單中的命令按鈕是一樣的,雙擊即可添加程序代碼。4將類添加到表單中建立完一個類后,可以重復(fù)使用,非常方便,就像使用自帶的控件一樣。使用時只要單擊添加圖標,選擇“添加”命令,找到剛才新建的類,就可以使用了。第88頁/共117頁第八十八頁,共118頁。 5注冊(zhc)一個類庫. 從“工具”菜單中選擇“選項”命令,在彈出的“選項”對話框中選擇“控件”選項卡,選擇“可視類庫”并單擊“添加”按鈕,在“打開”對話框中選擇要注冊(zhc)的類庫并單擊“打開”按鈕,單擊“確定”按鈕。第89頁/共117頁第八十九頁,共118頁。

58、5.7.2 任務(wù)(rn wu)實現(xiàn):類的實現(xiàn) (1)新建類。名稱為myc,該類起數(shù)據(jù)導(dǎo)航的作用,4個命令按鈕的名稱分別是首記錄、上一條(y tio)、下一條(y tio)和末記錄。代碼如下:首記錄: GO TOP &指針指到第一條(y tio)記錄THISFORM.Refresh &刷新上一條(y tio):SKIP -1 &指針指向上一條(y tio)記錄IF BOF() &判斷是否到達首記錄 GO TOPENDIFTHISFORM.Refresh&更新表單數(shù)據(jù)下一條(y tio):SKIP 1 &指針指向下一條(y tio)記錄IF EOF(

59、) &判斷是否到達末記錄 GO BOTTOM &指向最后一條(y tio)記錄ENDIFTHISFORM.Refresh&更新表單數(shù)據(jù)末記錄:GO BOTTOMTHISFORM.Refresh第90頁/共117頁第九十頁,共118頁。(2)新建一個表單“商品信息2”,右擊表單,為表單添加數(shù)據(jù)環(huán)境,在數(shù)據(jù)環(huán)境中引入“商品信息”表,利用手工拖動的方式,把相關(guān)字段拖動到此表單中。并適當(dāng)調(diào)整各控件的位置,在表單下留出空白,以便添加上面所生成的類。(3)添加上面所生成的類,通過生成器和類來實現(xiàn)(shxin)瀏覽商品信息的功能,如圖5-47所示。圖5-47 手工(shugng)制作

60、“商品信息”表單第91頁/共117頁第九十一頁,共118頁。 4添加組合框,調(diào)整表單界面( jimin)的布局。最終效果如圖5-48所示。圖5-48 為表單添加(tin ji)自定義類第92頁/共117頁第九十二頁,共118頁。 (5)設(shè)置組合框,表單中的組合框主要起到瀏覽廠商和供貨商信息的作用。這里(zhl)以廠商編號為例。右擊組合框combo1,在快捷菜單中選擇“生成器”命令,設(shè)置如圖5-49所示。圖5-49 為組合(zh)框設(shè)定字段第93頁/共117頁第九十三頁,共118頁。 首先選擇數(shù)據(jù)表,然后選擇要顯示的字段,單擊“確定”按鈕就可以實現(xiàn)要求的功能,還可以進行其他的設(shè)置: RowSourceType設(shè)定(sh dn)為字段 RowSource設(shè)定(sh dn)為“供貨商.供貨商名稱,供貨商.供貨商編號” ControlSource設(shè)定(sh dn)為“商品信息.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論