版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第6章 表單,表單是VFP創(chuàng)建應用程序與應用程序界面的重要途徑之一,是可視化操作與面向對象的程序設計思想有機的結合。 表單設計器是設計表單的工具,它提供了設計應用程序界面的各種控件、相應屬性、事件。它運用了面向對象的程序設計和事件驅動機制,使開發(fā)者能直觀,方便,快捷的完成應用程序的設計與界面設計的開發(fā)工作。,6.1 表單概述,表單(Form)類似于Windows中的各種標準窗口與對話框,它是一種容器類,可以包含多個控件對象,用于處理各種數(shù)據(jù),或相應用戶/系統(tǒng)事件以完成信息的處理。 在VFP中,既可以用編程的方法創(chuàng)建表單也可以使用可視化界面創(chuàng)建表單,其中可視化的方法又分為兩種: (1)利用表單向
2、導創(chuàng)建表單 (2)利用表單設計器創(chuàng)建或修改表單,6.2 用表單向導設計表單,利用表單向導,可以很方便地創(chuàng)建基于一個表(視圖),或基于具有一對多關系的二個表(或視圖)的表單。這類表單主要用于查看、編輯修改或打印表(視圖)中的數(shù)據(jù) 。,6.2.1 建立基于一個表(視圖)的表單,第一步,在項目管理器中選擇“文檔”選項卡,然后點擊“新建” 第二步,選擇利用表單向導創(chuàng)建 第三步,選擇表單向導 第四步,(1)字段選取(2)表單樣式選取(3)排序次序(4)完成 當表單保存后,在磁盤上產生兩個文件,即表單文件和表單的備注文件,擴展名為:SCX和SCT。,6.2.2利用向導創(chuàng)建一對多表單,利用表單向導可以創(chuàng)建基
3、于兩個表的表單,這兩個表必須是一對多的關系,如xs表和cj表,其中xs是“父表”而cj是“子表”。 創(chuàng)建“一對多表單”的步驟: (1) 在“文檔”選項卡中選擇表單,點擊新建 (2)在新建對話框中選擇利用向導創(chuàng)建 (3)在向導選取對話框中選擇“一對多表單向導” (4)選擇字段,建立表之間的關系,選擇表單樣式,排序次序,完成。 注意:表單向導只能創(chuàng)建表單,不能修改表單,如果要修改只能利用“表單設計器”。,6.3 表單設計器,用表單向導設計表單,固然簡單方便又不需要編寫代碼,但表單向導設計出的表單是有一定的固定模式,功能也有限。如果想設計無固定模式,多功能的表單,表單向導是無法實現(xiàn)的。VFP提供了表
4、單設計器這個面向對象編程的可視化工具,用以滿足開發(fā)者設計風格各異,功能齊全的表單。,6.3.1 表單設計器概述,1、打開表單設計器 在“項目管理器”中選定“表單”,并選擇【新建】按鈕。 在【文件】菜單中選擇【新建】命令,再選定“表單”,再選擇【新建文件】按鈕。 使用CREATE FORM命令,如果表單存在可用Modify命令。 格式: CREATE FORM |? MODIFY FORM |?,在新表單(Form1)上可以可視化地添加控件并進行屬性、方法程序設計。,2、表單設計器環(huán)境,(1)表單菜單,顯示“新建屬性對話框”可以向表單(集)添加屬性,顯示“新建方法對話框”可以向表單(集)添加方法
5、,顯示“編輯屬性/方法”對話框,創(chuàng)建一個表單集,刪除現(xiàn)有的表單集,如果表單集中只有一個表單可以使用,向表單集中添加一個表單,從表單集刪除一個表單,運行表單,(2)表單設計器工具欄 1)設置Tab鍵次序 2)數(shù)據(jù)環(huán)境 3)屬性窗口 4)代碼窗口 5)表單控件工具欄 6)調色板工具欄 7)布局工具欄 8)表單生成器 9)自動格式,(3)”屬性”窗口 通過“屬性”窗口可以查看和設置選中對象的屬性?!皩傩浴贝翱诎x定的表單,數(shù)據(jù)環(huán)境或控件的屬性、事件和方法,可在設計或編程時對這些屬性進行設置或更改。,對象列表,選項卡,取消按鈕確定按鈕,屬性設置框,表達式生成器按鈕,屬性/事件/方法列表,所選屬性/事
6、件/方法的說明,注意: 如果屬性的值為一個函數(shù)或表達式,則必須以等號(=)開頭。如,某文檔框的Value屬性值為當前系統(tǒng)日期,則設置時可輸入:=Date()。 如果需要將屬性的值設置為默認值,可以點右鍵選擇“重置為默認值”。 (4)新建屬性和方法 利用系統(tǒng)菜單“表單”-“新建屬性”或“新建方法”,可以為表單集或單獨的表單添加任意多個新的屬性或方法。新建的屬性默認值為邏輯值“假” 在新建窗口中有兩個選項:Access方法程序和Assign方法程序。 Access方法程序:查詢該屬性的值的時候執(zhí)行程序。 Assign方法程序:更改該屬性的值的時候執(zhí)行程序。,6.3.2事件與方法的代碼設置,表單(集
7、)及其所有的對象都有與之相關的事件和方法程序。那么如何為某一個對象(控件)的某一個事件的處理程序編寫代碼呢? (1)執(zhí)行系統(tǒng)菜單命令“顯示”-“代碼” (2)在“屬性”窗口中雙擊某事件或方法 (3)在“表單設計器”窗口中雙擊表單或某控件,在事件代碼中可以編程處理所發(fā)生的事件,在事件代碼中也可以引用某個控件對象,如設置其屬性或調用其方法。 格式: Objectvariable.Form.Control.Property=Setting 或者 with endwith 或者 Container.SetAll(cProperty,Value,cClass) 如,F(xiàn)orm1.Grid1.SetAll(
8、“BackColor”,RGB(255,0,0),”Column”),例子,編寫一個用戶登陸界面,當輸入的用戶名為“張三”并且密碼為“123”時,輸出“張三你好!”,否則輸出“用戶名或密碼錯誤”。,6.3.3 數(shù)據(jù)環(huán)境,表單的數(shù)據(jù)環(huán)境包括了與表單交互的表和視圖,以及表之間的關系。也就是說從數(shù)據(jù)環(huán)境中的表或視圖中獲取數(shù)據(jù)顯示到表單上。 數(shù)據(jù)環(huán)境要在表單打開的情況下使用,當表單關閉或釋放時它就關閉。 1、打開數(shù)據(jù)環(huán)境設計器 2、向數(shù)據(jù)環(huán)境設計器中添加表或視圖 3、數(shù)據(jù)環(huán)境中關系的設置 4、從數(shù)據(jù)環(huán)境設計器中移去表或視圖 5、向表單中添加字段,控件與數(shù)據(jù)的關系 根據(jù)控件與數(shù)據(jù)環(huán)境中數(shù)據(jù)關系,控件可以
9、分為兩類:數(shù)據(jù)綁定型控件和非數(shù)據(jù)綁定型控件。 綁定型控件:可以將數(shù)據(jù)綁定到控件的value值上,如,文本框,組合框,列表,表等 非綁定型控件:不能將數(shù)據(jù)表中的數(shù)據(jù)綁定到控件上,如線條,標簽,命令按鈕組等。 有些控件可以使用ControlSource屬性綁定數(shù)據(jù),如文本框,而另一些控件需要使用RecordSourceType屬性和RecordSource屬性綁定數(shù)據(jù),如組合框,列表框等。,6.3.4 使用表單設計器修改表單,利用表單設計器可以對已建立的表單進行修改。方法是:在項目管理器中選擇該表單,然后選擇“修改”。 1.修改表單布局 選擇控件 移動控件 縮放控件 復制控件 刪除控件,2.修改表
10、單的外觀 表單的外觀主要指表單的樣式、表單及其中控件的顏色,以及顯示文本的字體和大小等。 (1)表單的樣式 表單的標題 最大化和最小化按鈕 表單邊框樣式,為1或2時,表單的邊框不可調整。 AutoCenter屬性,決定表單是否自動居中。 (2)顏色與背景 背景顏色 背景圖片,(3) 改變文本的字體和大小 FontName屬性:指定文字的字體,默認為宋體 FontSize屬性:指定字體的大小 FontBold、FontItalic、FontStrikethru和FontUnderline屬性:用于指定文本是否為粗體、斜體、刪除線或下劃線等效果 Enabled屬性:指定表單或控件是否可用,是一個邏
11、輯值 Visible屬性:指定表單或控件是否可見。,3.控件生成器 系統(tǒng)提供的生成器有自動格式生成器和控件生成器,主要用于設置控件的樣式。,2.表單的保存與運行 使用DO FORM命令運行表單。DO FORM命令的基本語法為: DO FORM FormNameNAME MemVarName WITH cParameterList TO MemVarName 其中: FormName是指定要運行的表單的名稱; Name MemVarName指定一個內存變量或數(shù)組元素,可通過它們引用表單。 WITH cParameterList用于指定參數(shù) TO MemVarName將運行結果保存到內存變量中,6
12、.3.6用表單集擴展表單,通過將多個表單包含在一個表單集(FormSet)中,可以將多個表單作為一個組來操縱。表單集具有FormCount屬性顯示其中表單的數(shù)目。使用表單集有以下優(yōu)點: 可以同時顯示或隱藏表單集中的表單 能夠可視化得排列表單,控制表單的位置 可以使多個表單中的數(shù)據(jù)記錄指針同步。,6.3.7創(chuàng)建單文檔界面和多文檔界面,VFP中允許創(chuàng)建兩種類型的應用程序:單文檔界面和多文檔界面。 單文檔界面:只有一個獨立的窗口 多文檔界面:有一個主窗口,其中可以包含多個子窗口。,單文檔界面,多文檔界面,為了支持這兩種類型的文檔界面,在VFP中可以創(chuàng)建以下三種類型的表單: 子表單:包含在其他表單中的
13、表單,它不能移出父表單。 浮動表單:由子表單變化而來的表單,該表單屬于父表單的一部分,可以不位于父表單中。 頂層表單:獨立的、無模式的、無父表的表單。,6.4 控件的創(chuàng)建與使用6.4.1 標簽控件,標簽控件屬于輸出類控件,用于顯示文本,最多為256個字符。它的常用屬性如表所示。,6.4.2 文本框控件,文本框控件是基本控件,可以輸入,編輯數(shù)據(jù)。它可以處理除備注字段類型的數(shù)據(jù),一般包含一行數(shù)據(jù),在接受字符型數(shù)據(jù)時,最多255個字符。 表6.9 文本框常用屬性,例6.6 求n!,6.4.5 編輯文本框,編輯框可用于輸入、顯示、編輯數(shù)據(jù)。它只能編輯字符型數(shù)據(jù),可編輯長的字符型字段數(shù)據(jù),備注字段數(shù)據(jù),
14、字符型內存變量數(shù)據(jù),它可以編輯單行與多行數(shù)據(jù)。它最多能接受2147483647個字符。 它的常用屬性如表6.10所示。,6.4.8 列表框控件,列表框是用于顯示項目的列表,用戶可以在列表框中選擇一項或多項。列表框也有生成器。打開方法選中控件的快捷菜單中生成器即可。 1、列表框常用屬性如下表所示:,2、常用方法,例子,在以下界面中顯示兩個列表框,在左邊列表框中,顯現(xiàn)出xs表中的結構,當在該列表框中雙擊某一個列表項時,將其添加到列表框2中,并從列表框1中將其刪除。,代碼 為列表框1的雙擊事件編寫代碼: thisForm.list2.AddItem(thisForm.list1.value) for
15、 i=1 to thisForm.list1.listCount if thisform.list1.selected(i) thisform.list1.RemoveItem(i) thisForm.list1.selected(i)=.T. exit endif endfor,6.4.9 組合框,組合框是一種列表框,有兩種形式:一種是下拉式列表框與列表框一樣,另一種為下拉式組合框。下拉式組合框可以在列表框中選項,也可以輸入一個值。組合框所常用的屬性與方法與列表框基本相同,但組合框沒有多選擇屬性,即沒有MultiSelect屬性。它有一個重要屬性就是style,用途如下表所示:,例子,在下面
16、界面中編寫一個下拉列表框,和一個列表框,數(shù)據(jù)環(huán)境為js和zc表,其實現(xiàn)的功能為當用戶在下拉列表框中選擇一個職稱后,在列表框中顯示出擁有該職稱的教師。,設置數(shù)據(jù)源,并建立js和zc表之間的關系 為下拉列表框的InteractiveChange事件編寫代碼: public x x=this.value thisform.list1.rowsourcetype=3 thisform.list1.rowsource=select xm from js where zcdh in(select zcdh from zc where zc=x) into cursor temp2 thisForm.Ref
17、resh,6.4.5選項按鈕組,它是一個容器控件,包含多個選項按鈕,用于在多種功能或多種條件下,用戶只能選擇其中的一個功能或條件。選項組控件有生成器,通過生成器對各按鈕屬性設置。常用屬性如下表所示。,例子,在下面界面中添加一個選項按鈕組和一個列表框,實現(xiàn)功能:在選項按鈕組中選擇某一個按鈕后,在列表框中顯示出相應職稱的教師。,設置數(shù)據(jù)環(huán)境 為選項按鈕組的InteractiveChange事件編寫代碼 thisForm.list1.RowSourceType=3 do case case this.value=1 thisForm.list1.RowSource=select xm from js
18、 where zcdh in(select zcdh from zc where zc=教授) into cursor temp2 case this.value=2 thisForm.list1.RowSource=select xm from js where zcdh in(select zcdh from zc where zc=副教授) into cursor temp2 case this.value=3 thisForm.list1.RowSource=select xm from js where zcdh in(select zcdh from zc where zc=講師)
19、 into cursor temp2 case this.value=4 thisForm.list1.RowSource=select xm from js where zcdh in(select zcdh from zc where zc=助教) into cursor temp2 endcase thisForm.Refresh,6.4.6 復選框,用于在軟件中提供給用戶一種或多種選擇,以便滿足用戶的要求。復選框是一個邏輯框,它只有兩種狀態(tài)值:一種為 .T.,表示選上;一種為 .F.,表示沒選上。,例子,在下列界面上添加一個列表框和一個復選框,點擊復選框時在列表框中顯示出教師的工號和姓
20、名。,設置數(shù)據(jù)源 為復選框的InteractiveChange事件編寫代碼 if this.value=1 thisForm.list1.columncount=2 thisform.list1.rowsource=js.gh,xm else thisForm.list1.columncount=1 thisform.list1.rowsource=js.gh endif thisform.refresh,6.4.7 微調框,該控件用于實現(xiàn)用戶在一定范圍內輸入數(shù)值。用戶通過單擊微調的上下箭頭改變數(shù)值,也可以直接在微調中輸入數(shù)值。,例子,用微調輸入x值,計算x*x,6.4.8 表格,表格是一種容
21、器對象,它是按行列顯示數(shù)據(jù),外觀與瀏覽窗口相似。表格控件包含列(Column)控件,而列控件又由標頭(Header)控件和顯示數(shù)據(jù)的控件(默認為文本框控件)。表格,列,標頭和顯示數(shù)據(jù)的控件都有自己的屬性、事件和方法。,常用屬性如下表所示。,GridLines屬性,GridLineColor屬性和GridLineWidth屬性:確定是否在表格控件中顯示水平和垂直線,以及線的顏色和寬度。 ReadOnly屬性:指定表格中的數(shù)據(jù)是否只讀。 AllowAddNew屬性:指定是否可以將表格中的新紀錄添加到表中。默認為.F. 列的屬性: 以“Dynamic”開頭的屬性。如DynamicBackColor屬
22、性用于設置列的背景顏色。 This.SetAll(“DynamicBackColor”,”iif(MOD(RECNO(),2)=0),; RGB(255,255,255),RGB(0,255,0)”,”Column”) &白色和綠色交替 CurrentControl屬性:指定列對象中包含的哪個控件用于顯示活動單元的值 Sparse屬性:指定CurrentControl屬性是否影響列對象中所有的單元。,例子,在下面界面中添加一個Grid控件,顯示教師表(js)中的信息,并將系代號(xdh)列的數(shù)據(jù)顯示控件設置為下拉列表框 。,6.4.9 計時器,計時器是用于在程序中按一定時間間隔觸發(fā)某一事件,它
23、的時間是由系統(tǒng)時鐘控制的,它在執(zhí)行時是不可見的。 (1)常用屬性,(2)常用事件 Timer事件為計時器常用事件,當經過由Interval屬性指定的毫秒數(shù)時觸發(fā),一般是在此事件中編制周期性的動作執(zhí)行程序。采用Reset()方法可以重置計時器。,例子,在下面界面上顯示當前的時間,代碼: thisForm.label1.caption=現(xiàn)在時間是:+TTOC(datetime(),6.4.10 線條與形狀,1.線條 該控件用于畫一個水平線條、垂直線條或對角線。常用屬性如下表。,2、形狀(shape),該控件用來畫圓、矩形、橢圓。常用屬性如下表。,6.4.11 命令按鈕與命令按鈕組,1.命令按鈕 命
24、令按鈕用來觸發(fā)事件,完成特定的功能 ,常用屬性如下表所示。,6.4.3 命令組,1、常用屬性 命令組是容器控件,常用屬性如圖6.8所示。,對于命令按鈕組,可以為每一個按鈕單獨編寫事件處理代碼,也可以為命令按鈕組編寫同一的代碼來響應每個按鈕的事件。 例子,編寫如下的界面,實現(xiàn)瀏覽學生信息的功能。,命令按鈕組的Click事件處理代碼: do case case this.value=1 goto top case this.value=2 if !eof() skip endif case this.value=3 if !bof() skip-1 endif case this.value=4 goto bottom endcase thisForm.refresh,6.4.12 頁框控件,頁框是一種容器對象,頁框中包含頁面即頁,而頁中又可以包含其它控件。其實頁框就是選項卡對話框。頁框對表單的有限空間進行了擴展。常用屬性如下表。,例子,在以下界面中添
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年大學心理學(心理輔導)試題及答案
- 2026年計算機編程(Python高級編程)試題及答案
- 2026年營銷策劃(營銷渠道設計)試題及答案
- 2025年高職第一學年(軟件技術)Java編程綜合試題及答案
- 2026年網絡技術綜合(多協(xié)議應用)試題及答案
- 2025年高職播音與主持藝術(節(jié)目主持技巧)試題及答案
- 2025年大學法醫(yī)學(法醫(yī)毒物分析)試題及答案
- 巴松介紹教學課件
- 2026年江漢區(qū)金融類國企招聘工作人員備考題庫及一套答案詳解
- 威寧介紹教學
- 2025成人腸造口護理指南課件
- 電焊工安全宣講課件
- 水泵基礎知識培訓課件教學
- 內鏡院感培訓課件
- 2026中征(北京)征信有限責任公司招聘13人考試題庫附答案
- 期末重點易錯知識點復習(課件)-2025-2026學年一年級上冊數(shù)學北師大版
- 2026年楊凌職業(yè)技術學院單招職業(yè)技能考試題庫含答案詳解
- 2025云南昆明元朔建設發(fā)展有限公司第二批收費員招聘9人筆試考試參考題庫及答案解析
- 國開本科《國際法》期末真題及答案2025年
- 2025年榆林神木市信息產業(yè)發(fā)展集團招聘備考題庫(35人)及完整答案詳解1套
- 2025新疆能源(集團)有限責任公司共享中心招聘備考題庫(2人)帶答案詳解(完整版)
評論
0/150
提交評論