《數(shù)據(jù)庫》第五章表單_第1頁
《數(shù)據(jù)庫》第五章表單_第2頁
《數(shù)據(jù)庫》第五章表單_第3頁
《數(shù)據(jù)庫》第五章表單_第4頁
《數(shù)據(jù)庫》第五章表單_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第五章表單本章要點:掌握表單的多種創(chuàng)建方法掌握表單常用控件的屬性掌握表單常用控件的事件代碼方法的編寫掌握表單的修改和運(yùn)行方法第五章表單5.1 表單的創(chuàng)建

5.2面向?qū)ο蟪绦蛟O(shè)計

5.3表單中的常用控件

5.4

表單管理

5.5典型例題分析5.1表單的創(chuàng)建5.1.1表單向?qū)?.1.2表單設(shè)計器返回前面章節(jié)用過的對話框、向?qū)?、設(shè)計器等各類窗口,在VFP中統(tǒng)稱為表單。表單是最常見的界面。表單為數(shù)據(jù)庫信息的顯示、輸入及編輯提供了非常方便的方法,同時面向?qū)ο缶幊痰拇蠖鄶?shù)工作是在表單中進(jìn)行,設(shè)計表單的過程就是設(shè)計程序界面的過程,本章將全面闡述表單的創(chuàng)建、設(shè)計和運(yùn)行使用。5.1表單的創(chuàng)建可以通過表單向?qū)?、表單設(shè)計器來創(chuàng)建表單。5.1.1表單向?qū)П韱蜗驅(qū)荲isualFoxPro6.0提供的創(chuàng)建表單的快速、簡單的方法。表單向?qū)芤龑?dǎo)用戶選定表來產(chǎn)生需要的表單窗口,窗口中包含所選取的字段,還包含供用戶操作的各種按鈕,具有翻頁、編輯、查找、打印等功能。用表單向?qū)?chuàng)建表單

在【文件】菜單中選擇【新建】命令,再選定“表單”,再選擇【向?qū)А堪粹o。單擊圖5?1XSDA表單例5?1使用表單向?qū)?chuàng)建一個維護(hù)XSDA.dbf的表單。用“表單向?qū)А眲?chuàng)建一對多表單例5?2創(chuàng)建一個用于按學(xué)號、姓名顯示成績的基于XSDA.dbf和XSCJ.dbf

的表單。單擊用“表單向?qū)А眲?chuàng)建一對多表單例5?2創(chuàng)建一個用于按學(xué)號、姓名顯示成績的基于XSDA.dbf和XSCJ.dbf

的表單。圖5?2XHCJ表單返回用如下的三種方法之一新建一個表單:■在“項目管理器”中選定“表單”,并選擇【新建】按鈕?!鲈凇疚募坎藛沃羞x擇【新建】命令,再選定“表單”,再選擇【新建文件】按鈕?!鍪褂肅REATEFORM命令。5.1.2表單設(shè)計器

在VFP中創(chuàng)建表單除了可以利用向?qū)?,還可利用設(shè)計器。表單設(shè)計器集成了用于表單設(shè)計的各種對象和操作工具,不僅能創(chuàng)建表單還能修改表單,并給予可視化提示。1、選擇“文檔”選項卡2、選擇“表單”3、單擊【新建】單擊“表單設(shè)計器”窗口新表單在新表單(Form1)上可以可視化地添加控件并進(jìn)行屬性、方法程序設(shè)計通過項目管理器創(chuàng)建表單(1)包含表單設(shè)計工具的各種工具欄:例如表單控件工具欄、布局工具欄、表單設(shè)計器工具欄、調(diào)色板工具欄。(2)設(shè)置、編輯表單對象屬性的屬性窗口。(3)用于提供表的數(shù)據(jù)環(huán)境設(shè)計器窗口。(4)系統(tǒng)菜單中的表單菜單。

表單設(shè)計器打開后,系統(tǒng)自動新建的一個名Form1表單,用戶可以使用以下要素完成所需表單的設(shè)計。每一個表單都包括一個數(shù)據(jù)環(huán)境(DataEnvironment)。數(shù)據(jù)環(huán)境是一個對象,它包含與表單相互作用的表或視圖,以及表單所要求的表之間關(guān)系??梢栽凇皵?shù)據(jù)環(huán)境設(shè)計器”中直觀地設(shè)置數(shù)據(jù)環(huán)境,并與表單一起保存。在表單運(yùn)行時,數(shù)據(jù)環(huán)境可以自動打開、關(guān)閉表或視圖。1、在表單上右擊,彈出表單的快捷菜單2、在快捷菜單中單擊“數(shù)據(jù)環(huán)境”菜單項,打開“數(shù)據(jù)環(huán)境設(shè)計器”3、選擇要添加的表或視圖4、選XSDA表后單擊【添加】1、若要向數(shù)據(jù)環(huán)境中添加表或視圖,可以按如下步驟來進(jìn)行:2、從數(shù)據(jù)環(huán)境設(shè)計器中移去表當(dāng)將表從數(shù)據(jù)環(huán)境中移去時,與這個表有關(guān)的所有的關(guān)系也隨之移去。若要將表和視圖從數(shù)據(jù)環(huán)境設(shè)計器中移去,可以按如下步驟進(jìn)行:1、在“數(shù)據(jù)環(huán)境設(shè)計器”中右擊要移去的表或視圖,打開快捷菜單。2、選擇【移去】

3.在數(shù)據(jù)環(huán)境設(shè)計器中設(shè)置表間關(guān)系如果添加進(jìn)數(shù)據(jù)環(huán)境設(shè)計器的表具有在數(shù)據(jù)庫中設(shè)置的永久關(guān)系,這些關(guān)系將自動地加到數(shù)據(jù)環(huán)境中。如果表中沒有永久的關(guān)系,可以在數(shù)據(jù)環(huán)境設(shè)計器中設(shè)置這些關(guān)系。要在數(shù)據(jù)環(huán)境設(shè)計器中設(shè)置這些關(guān)系,可以將字段從主表拖到相關(guān)表中的相匹配的索引標(biāo)識上。也可以將字段從主表拖到相關(guān)表中的字段上。如果和主表中的字段對應(yīng)的相關(guān)表中沒有索引標(biāo)識,系統(tǒng)將提示是否創(chuàng)建索引標(biāo)識。以下演示如何在數(shù)據(jù)環(huán)境中設(shè)置XSDA表和XSCJ表之間的一朵關(guān)系1、將XSDA表和XSCJ表加入數(shù)據(jù)環(huán)境。2、將XSDA表的“學(xué)號”字段拖到XSCJ表的“學(xué)號”字段上。關(guān)系連線出現(xiàn)。3、右擊關(guān)系連線,在彈出的快捷菜單中選擇“屬性”項,4、在彈出的“屬性”窗口中,將“onetomany”屬性值改為.t.如果在建立關(guān)系前XSCJ表沒有按關(guān)聯(lián)字段(學(xué)號)建立索引,則在將“學(xué)號”從XSDA表中拖到XSCJ表時系統(tǒng)將提示按“學(xué)號”字段為XSCJ表建立索引。返回5.2面向?qū)ο蟪绦蛟O(shè)計5.2.1基本概念5.2.2對象的引用

返回5.2.1基本概念

VisualFoxPro6.0支持面向?qū)ο蟮某绦蛟O(shè)計(Object-OrientedProgramming)。面向?qū)ο蟮某绦蛟O(shè)計方法,將數(shù)據(jù)處理由面向過程轉(zhuǎn)向面向?qū)ο螅⒉捎檬录?qū)動其執(zhí)行過程。OOP是一種新的程序設(shè)計方法,要全面理解和掌握這個方法,首先從類與對象開始。1.類采用面向?qū)ο蟮某绦蛟O(shè)計方法設(shè)計應(yīng)用軟件,首要的任務(wù)就是創(chuàng)建所需要的對象。如何創(chuàng)建用戶所需的對象,就成為這種程序設(shè)計方法要解決的核心問題。VisualFoxPro為我們提供了生成各種所需對象的相應(yīng)模具,那就是類。用一種模具可以生產(chǎn)同種類的許多產(chǎn)品,使用某一個類也可以在不同的應(yīng)用程序中創(chuàng)建同種類的許多對象。類具有以下特點:(1)繼承性:也就是說可以從現(xiàn)有的類派生出新類。派生類具有父類的所有特性,它直接繼承了父類的所有方法和數(shù)據(jù),派生類的對象可以調(diào)用該類及父類的成員變量和成員函數(shù)。(2)封裝性:是將方法和數(shù)據(jù)存放于同一個對象中,并且對數(shù)據(jù)的存取只能通過對象本身的方法來進(jìn)行。其他的對象不能直接作用于該對象的數(shù)據(jù),對象的相互作用只能通過消息進(jìn)行。(3)多態(tài)性:指的是不同的對象接收到相同的消息時,可以做出完全不同的理解,進(jìn)而產(chǎn)生完全不同的動作。利用多態(tài)性,應(yīng)用程序可以發(fā)送一般形式的消息,而將所有實現(xiàn)的細(xì)節(jié)留給接收消息的對象自己來解決。3.屬性屬性用來表示對象的特征和狀態(tài)。比如,一個對象的外觀、大小和顏色等都可以由相應(yīng)的屬性表示。對象的屬性一般可在表單設(shè)計器的屬性窗口中設(shè)置,對于一些無法在屬性窗口中設(shè)置的屬性可以按以下語法格式進(jìn)行賦值:父對象名.對象名.屬性=屬性值關(guān)于對象名如何表示將在對象引用一節(jié)中介紹。2.對象對象就是具有具體屬性并指派了方法和事件的類的實例。在VFP中對象分為控件和容器兩種。

(1)控件類不允許包含其他對象的類稱作控件類,有復(fù)選框、組合框、命令按鈕、編輯框、列表框、文本框、標(biāo)簽、線條、微調(diào)器、選擇按鈕、圖像、表頭、計時器、OLE綁定型控件、OLE容器控件、自定義、分隔符、形狀等。

(2)容器類可以包含其他對象的類稱作容器類。有表單、表單集、表格、列、頁框、頁面、命令按鈕組、選項按鈕組、容器、控件、工具欄等。事件觸發(fā)時機(jī)事件觸發(fā)時機(jī)Load創(chuàng)建對象前Unload釋放對象時Init創(chuàng)建對象時KeyPress按住并釋放一個鍵時MouseUp釋放鼠標(biāo)鍵時MouseDown按下鼠標(biāo)鍵時GotFocus對象得到焦點時LostFocus對象失去焦點時Click單擊鼠標(biāo)左鍵時DblClick雙擊鼠標(biāo)左鍵時

4.事件事件是指當(dāng)用戶或系統(tǒng)對對象進(jìn)行操作時對象所產(chǎn)生的操作。如,用鼠標(biāo)單擊命令按鈕,將產(chǎn)生一個Click事件,一個事件對應(yīng)于一個程序,稱為事件過程。一個對象可以有多個事件。VFP常見事件如表5?1下:表5?1VFP部分常見事件5.方法方法程序是系統(tǒng)預(yù)先編好的代碼通用過程,對用戶是不可見的。用戶通過調(diào)用方法程序,就可對某一對象執(zhí)行相應(yīng)的操作。下面介紹幾個常用的方法程序:(1)Refresh

功能:刷新表單或控件的值。例如:THISFORM.Refresh(2)Release

功能:釋放表單或表單集例如:THISFORM.Release(3)Cls

功能:清除表單上的圖形和文本例如:THISFORM.Box(50,50,100,100)&&在當(dāng)前表單指定位置畫一矩形

THISFORM.Cls&&將上述矩形清除返回5.2.2對象的引用在面向?qū)ο蟮某绦蛟O(shè)計中常常需要引用對象,或引用對象的屬性、事件與調(diào)用方法程序。通常對象的引用由以下關(guān)鍵字開頭:

THISFORMSET 表示當(dāng)前表單集

THISFORM 表示當(dāng)前表單

THIS 表示當(dāng)前對象關(guān)鍵字后跟一個.(點),再寫出被引用對象或者對象屬性,事件或方法程序。例如,下列語句設(shè)置名為Form1表單中的Label1標(biāo)簽的一些屬性值:

THISFORM.Label1.Caption=‘程序設(shè)計’&&本表單的標(biāo)簽標(biāo)題

THIS.Parent.Caption=TIME()&&本對象的容器的標(biāo)題當(dāng)前表單控件屬性值例5?4設(shè)計如圖5?14所示的表單,當(dāng)鼠標(biāo)在文本框上單擊時,文本框內(nèi)顯示當(dāng)前的日期時間。第一步:在表單上添加一個標(biāo)簽(Label1)對象第二步:將Caption屬性設(shè)為“現(xiàn)在的時間是”第三步:將FontSize屬性設(shè)為12第四步:添加文本框(Text1)對象,文本框的Click事件代碼:THIS.Value=TIME()完成效果,請單擊以下是一個關(guān)于對象引用的例子返回

在VisualFoxPro6.0中,常用的控件共有25個按鈕。它們是1個“選定對象”按鈕、1個“按鈕鎖定”按鈕、1個“查看類”、21個標(biāo)準(zhǔn)控件和1個“ActiveX”控件。5.3表單中的常用控件

在表單中添加控件,只需在表單控件工具欄中單擊所需要的控件,然后在表單中的相應(yīng)位置拖拽鼠標(biāo)或單擊鼠標(biāo)左鍵,控件對象就會顯示在表單中,同時與表單一樣,控件也是一種對象,其屬性值決定了控件的特征和行為,用戶可在“屬性”窗口設(shè)置它的各種屬性。1.標(biāo)簽(Label)“表單控件”工具欄中的“”按鈕是標(biāo)簽控件,標(biāo)簽控件用于在表單中加入簡單的文本串,最常用來標(biāo)識字段或向用戶顯示固定的字符信息。常見屬性如表5?2所示。表5?2標(biāo)簽的常見屬性屬性功能Caption標(biāo)簽上顯示的文本BackStyle標(biāo)簽的背景是否透明AutoSize根據(jù)標(biāo)簽內(nèi)容自動調(diào)整控件大小Name標(biāo)簽的名稱FontSize標(biāo)簽上顯示文本的大小ForeColor標(biāo)簽上顯示文本的顏色2.文本框(Text)“表單控件”工具欄中的“”按鈕是文本框控件,可用于字符型、數(shù)值型、日期型、邏輯型數(shù)據(jù)的輸入和輸出。常見屬性如表5?3所示。表5?3文本框的常見屬性屬性功能Value文本框的當(dāng)前值ReadOnly文本框是否為只讀PasswordChar文本框用作占位符的字符3.編輯框(Edit)“表單控件”工具欄中的“”按鈕是編輯框控件,用于文本數(shù)據(jù)的輸入和編輯,允許自動換行,該控件常作為備注型字段的數(shù)據(jù)綁定控件。編輯框與文本框類似,差別主要有以下兩點:一是編輯框只能用于輸入或編輯字符型數(shù)據(jù),而文本框則適用于數(shù)值型、邏輯性、日期型和字符型4種類型的數(shù)據(jù);二是文本框只能供用戶輸入一行文本,而編輯框則能輸入多行文本。4.命令按鈕(Command)與命令按鈕組(Commandgroup)“表單控件”工具欄中的“”按鈕是命令按鈕,“”按鈕是命令按鈕組。用于在表單上創(chuàng)建一個或一組命令按鈕。命令按鈕的常見屬性如表5?4所示。表5?4命令按鈕的常見屬性屬性功能Caption命令按鈕的標(biāo)題Name按鈕的名稱Enabled命令按鈕是否可用Default按下enter鍵時,按鈕是否響應(yīng)Cancel按鈕是否為取消按鈕Picture命令按鈕上顯示圖形命令按鈕組的常見外觀屬性一般用生成器設(shè)置如圖5?16所示。此外,用命令按鈕組的Value屬性表示按鈕組中的哪個按鈕被單擊。有兩種判斷方法:若Value初值為數(shù)值型(默認(rèn)值為1),返回被單擊的命令按鈕的序列號;若Value初值為“空”(字符型),返回被單擊的命令按鈕的Caption屬性。圖5?16命令按鈕組生成器以下是關(guān)于標(biāo)簽、文本框、命令按鈕以及命令按鈕組的使用示例例5?5設(shè)計如圖5?17所示的密碼輸入窗口,密碼最多允許輸入3次,假設(shè)正確密碼為“123456”,密碼錯誤給出提示。編寫“確定”按鈕及“取消”按鈕的click事件。

圖5?17輸入密碼表單窗口具體操作步驟如下:1、創(chuàng)建一個表單Form1,2、在其中添加一個標(biāo)簽(Label1)、一個文本框(Text1)和兩個按鈕控件(Command1、Command2)。

Label1Text1Command2Command1各控件屬性設(shè)置如表5?5所示。表5?5“輸入密碼”表單屬性設(shè)置對象屬性屬性值說明Form1Caption密碼驗證表單的標(biāo)題文本Label1Caption密碼設(shè)置標(biāo)簽的顯示文字Text1PasswordChar*設(shè)置占位符Command1Caption確定設(shè)置命令按鈕的標(biāo)題文本Command2Caption取消Form1的Init事件代碼:PUBLICN&&存放輸入密碼的次數(shù)N=1Command1的Click事件代碼:IFALLT(THISFORM.TEXT1.VALUE)=='123456'MESSAGEBOX("歡迎使用本系統(tǒng)?。?,48,"成功登錄??!")ELSEN=N+1IFN>3MESSAGEBOX("你已經(jīng)輸入三次錯誤用戶名,系統(tǒng)拒絕你進(jìn)入!!",48,"登錄失;敗??!")THISFORM.RELEASEELSEMESSAGEBOX("密碼錯誤!!",48,"重新輸入!!")THISFORM.TEXT1.VALUE=""THISFORM.TEXT1.SETFOCUSENDIFENDIFCommand2的Click事件代碼:THISFORM.RELEASE例5?6設(shè)計如圖5?18所示的表單,用戶通過命令按鈕組選擇一種顏色來設(shè)置表單的背景色。具體操作步驟如下:1、創(chuàng)建一個表單,2、在其中添加一個命令按鈕組(Commandgroup1)控件。Commandgroup13、控件屬性設(shè)置如表5?6所示。

表5?6命令按鈕組表單屬性設(shè)置對象屬性屬性值說明Commandgroup1ButtonCount3命令按鈕組中按鈕數(shù)目BackStyle0命令按鈕組的背景為透明Command1Caption紅色設(shè)置第一個按鈕的標(biāo)題文本Command2Caption綠色設(shè)置第二個按鈕的標(biāo)題文本Command3Caption藍(lán)色設(shè)置第三個按鈕的標(biāo)題文本Commandgroup1的Click事件代碼:N=THIS.VALUEDOCASECASEN=1THISFORM.BACKCOLOR=RGB(255,0,0)CASEN=2THISFORM.BACKCOLOR=RGB(0,255,0)CASEN=3THISFORM.BACKCOLOR=RGB(0,0,255)ENDCASE返回5.4表單管理5.4.1編輯表單5.4.2保存表單5.4.3運(yùn)行表單返回

2.調(diào)整對象的大小選定多個對象后,利用“格式”→“大小”命令可將對象的大小調(diào)整為一致。5.4.1編輯表單表單設(shè)計完成后,為了使表單有一個合理的布局,常常要對表單中的對象進(jìn)行修改,比如:對象的復(fù)制和刪除、對象的位置調(diào)整、改變大小等操作。

1.對象的移動、復(fù)制、刪除

(1)選定對象:選定一個對象可通過單擊該對象實現(xiàn);若要選定多個對象則按下Shift鍵,逐個單擊要選取的對象。或者按下鼠標(biāo)左鍵進(jìn)行拖拽,松開鼠標(biāo)后,圈在虛線框內(nèi)的對象即為選定對象。

(2)取消選定對象:單擊表單的空白部分。移動對象:用鼠標(biāo)將已選定的的對象拖到合適位置。或者用方向鍵也可微調(diào)對象的位置。

(3)復(fù)制對象:可以利用“編輯”菜單中的“復(fù)制”和“粘貼”命令來復(fù)制對象。

(4)刪除對象:選定對象后,按Del鍵或選擇“編輯”菜單中的“清除”選項可刪除對象。5.4表單管理

3.對象的對齊方式對象的對齊方式可“格式”→“對齊”選項來完成,或者在布局工具欄中完成。

4.Tab鍵次序用戶可用Tab鍵來移動表單內(nèi)光標(biāo)的位置。所謂Tab鍵次序,就是連續(xù)按Tab鍵時光標(biāo)經(jīng)過表單中控件的順序。默認(rèn)情況下,VisualFoxPro6.0按照控件被加入表單的順序定義Tab鍵的次序。有時用戶需要調(diào)整Tab鍵的先后次序。有兩種方法可以改變Tab鍵的次序,用戶可通過如下步驟選定其中之一:選定“工具”菜單的“選項”命令,選定選項對話框的表單選項卡,在Tab鍵次序組合框中選定“交互”或“按列表”。調(diào)整方法確定后,即可選定“顯示”菜單中的“Tab鍵次序”命令來改變Tab鍵的次序了。對于交互方式,用戶可通過單擊控件來改變它的順序號;對于按列表,VFP則顯示一個Tab鍵次序?qū)υ捒颍脩艨缮舷乱苿訉υ捒蛑锌丶x項左端的按鈕來改變順序。返回5.4.2保存表單表單設(shè)計或修改完成后要存盤,一般有以下兩種方法:

1.單擊表單設(shè)計器的關(guān)閉按鈕或按Ctrl+W鍵;

2.選擇“文件”→“保存”選項。表單文件保存后,將產(chǎn)生擴(kuò)展名為.scx的表單文件及擴(kuò)展名為.sct的表單備注文件。返回5.4.3運(yùn)行表單運(yùn)行表單可通過以下四種方法實現(xiàn):

1.“表單設(shè)計器”打開的情況下,用戶可直接在表單上單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“執(zhí)行表單”選項?;蛘邌螕艄ぞ邫谥械摹啊卑粹o來運(yùn)行表單。

2.在項目管理器中選擇要運(yùn)行的表單,單擊“運(yùn)行”按鈕。

3.選擇“程序”菜單中的“運(yùn)行”命令。

4.在命令窗口中,輸入命令“DOFORM表單名”。返回圖5?29例5-175.5典型例題分析例5?17已知一表單控件Label1、Label2、Label3、Text1、Command1、Command2,運(yùn)行表單時在Text1中輸入一個數(shù)作為圓的半徑,單擊Command1(計算并保存),分別用Label2、Label3顯示圓的周長和面積,并將圓半徑、周長、面積保存到已經(jīng)存在的數(shù)據(jù)表JS.dbf(半徑I,周長N(10,3),面積N(10,3))中(若該半徑在表中已經(jīng)存在,則放棄保存),單擊Command2(結(jié)束)程序結(jié)束運(yùn)行;運(yùn)行界面如圖5?29所示,請分別寫出2個命令按鈕的事件代碼。具體設(shè)計步驟:1、利用表單設(shè)計器設(shè)計如圖所示的表單界面,2、將JS.dbf添加到表單的

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論