表單設計及運行_第1頁
表單設計及運行_第2頁
表單設計及運行_第3頁
表單設計及運行_第4頁
表單設計及運行_第5頁
已閱讀5頁,還剩29頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

表單設計及運行第1頁,課件共34頁,創作于2023年2月8.1使用表單向導創建表單8.1.1表單向導使用表單向導創建一對一表單的步驟如下:一、從“文件”菜單,選擇“新建”、“表單”,然后在新建對話框中選擇向導,在向導選取對話框中使用鼠標選擇“表單向導”。二、單擊確定按鈕進入“表單向導”步驟一。三、確定表單的數據源。然后進行字段選取。四、選擇好表單樣式及按鈕類型。五、按照每組記錄的排序順序選擇字段。六、選擇建立好表單后的存儲方式,“完成”。第2頁,課件共34頁,創作于2023年2月8.2數據環境設置8.2.1打開“數據環境設計器”在創建表單或已有打開表單的情況下,可以從“顯示”菜單中,也可在表單快捷菜單中選擇“數據環境”。8.2.2數據信息與數據環境第3頁,課件共34頁,創作于2023年2月8.3用表單設計器創建表單、控件所謂控件是指可以用于交互式操作界面的圖形對象。表單中的控件是用以顯示數據、執行操作或使表單更易閱讀的圖形對象。可以輸入輸出數據、完成具有某種特定功能的操作,構建用戶和計算機之間相互溝通的操作界面。在表單中有兩類控件:與表中數據綁定的控件和不與數據綁定的控件。當使用綁定型控件時,所輸入或所選擇的值將保存在數據源中(數據源可以是表中的字段、臨時表的字段或變量)。要使控件在表單中正確運行,可以設置控件的有關屬性(如:controlsource或recordsource),把控件與數據結為一體。最好保持控件使用方法特征的一致性,給用戶一個明確的提示。第4頁,課件共34頁,創作于2023年2月8.3.1表單設計器與表單控件工具欄

使用表單設計器創建表單一般需要進行的工作如下:明確創建表單的目標、表單應具備的功能、用途。在表單中添加與此相關的控件。為表單及其控件設置好與之匹配的數據環境及數據源。為表單中的每一個控件做恰當的屬性設置。選擇與對象、目標相關的事件。設計好事件觸發的方法程序代碼。第5頁,課件共34頁,創作于2023年2月第6頁,課件共34頁,創作于2023年2月

8.3.3命令按鈕與命令按鈕組“命令按鈕”控件主要用來控制程序代碼的執行、操作。在表單中添加具有不同功能的命令按鈕,供用戶選擇各種不同的操作。命令按鈕的不同功能是通過為各個按鈕“click”事件編寫不同的方法程序代碼設置的。“命令按鈕組”控件是命令按鈕的集合。“命令按鈕”的主要屬性是:位置及大小:top、left、height、width

標題:caption

名稱:name

控件自動改變:autosize

字體字號:fontname、fontsize“命令按鈕”經常選用的事件:click第7頁,課件共34頁,創作于2023年2月

8.3.4文本框文本框是最常用的控件主要用于數據表中某些數據的輸入輸出或編輯,以及從窗口給內存變量賦值等操作。文本框對象的常用屬性設置:文本框名稱:name

文本框標題:caption

文本框內容的字體大小:fontsize

文本框數據初始值與類型:value

設置輸入和顯示數據的格式與長度:inputmask

設定是否只讀狀態:readonly

在應用程序中,經常需要獲得某些安全信息如:口令。這時需要設置文本框的passwordchar屬性為“*”或其它一些字符;用文本框來接收這一信息,而不在屏幕上顯示其實際內容。第8頁,課件共34頁,創作于2023年2月例8-4用文本框、標簽、命令按鈕組設計一個可以使用口令進行操作權限檢驗的表單。操作步驟:(1)打開“表單設計器”為表單設置屬性,屬性值如下:AlwaysOnTop=.T.AutoCenter=.T.Caption=系統檢驗(2)打開“表單控件工具欄”,從中選擇“命令按鈕組”設定命令按鈕數目兩個,為命令按鈕組設定如下屬性:Caption=cmdgp1Value=1(3)為兩個命令按鈕設定如下屬性:Caption=確認Caption=退出ClickEvent=用戶自定義過程第9頁,課件共34頁,創作于2023年2月(4)在表單中添加文本框控件,為其設定屬性:PasswordChar=*Name=klmmClickEvent=用戶自定義過程FontName=宋體(5)在表單中添加標簽,設定屬性:Caption=操作口令FontName=宋體(6)為命令按鈕一設計方法程序代碼:iftrim(thisform.klmm.value)<>'pass'ifmessagebox("請重新出入口令",0+16,"提示")=1thisform.klmm.setfocusendifendififtrim(thisform.klmm.value)='pass'doform教學數據庫例題.scxreleasethisformendif第10頁,課件共34頁,創作于2023年2月(7)為命令按鈕二設計方法程序代碼:a=messagebox("你真的要退出嗎?",4+16+0,"對話窗口")ifa=3releasethisformendif結果如圖8-19所示。圖8-9例8-4結果顯示第11頁,課件共34頁,創作于2023年2月

8.3.5選項按鈕“選項按鈕”也叫“單選按鈕”常用于從多項控制中選擇其一,把事先設計好具有特定目的的整套操作過程提供給“選項按鈕組”,用戶可以從中選擇一項。“選項按鈕”控件的屬性主要是“單選按鈕”的個數及按鈕次序。例8-5

設計一個課程查詢表單,在表單中使用單選按鈕控件和按鈕、文本框(在以后的例題中,Top,Height,Left,Width4個最常用屬性省略)。打開表單設計器,使用表單控件工具欄、屬性窗口、數據環境設計器,進行以下操作:(1)設計、定義表單屬性:Caption=課程查詢Name=Form1Visable=.T.第12頁,課件共34頁,創作于2023年2月(2)在表單中添加一個選擇按鈕組,在其中用兩個選擇按鈕:AutoSize=.T.ControlSize=無Name=OptionGroup1Visable=.T.l“課程號”按鈕

Caption=課程號

Name=Opti1AutoSize=.T.ClickEvent=用戶自定義過程

Style=0-標準

Value=.T.l“課程名”按鈕

Caption=課程名

Name=Opti2Autosize=.f.第13頁,課件共34頁,創作于2023年2月ClickEvent=用戶自定義過程

Style=0-標準

Value=.f.(3)添加一個文本框用來輸入課程號:Name=Text1AutoSize=.t.ClickEvent=用戶自定義過程Style=0-標準Value=1FontSize=8Format=1InitEvent=用戶自定義過程InputMask=無MaxLenth=7Seconds=2-默認SelectOnEntry=.T.TabIndex=0第14頁,課件共34頁,創作于2023年2月(4)添加一個文本框用來輸入課程名稱:NAME=Text2Alignment=0Autosize=.t.ClickEvent=用戶自定義過程ControlSource=無DateFormat=14-漢語Enabled=.T.HideSelection=.F.Style=0-標準Value=FontSize=10Format=KInitEvent=用戶自定義過程InputMask=無MaxLenth=8第15頁,課件共34頁,創作于2023年2月PasswordChar=無ReadOnly=.F.Seconds=2-默認SelectOnEntry=.T.Style=0TabIndex=4Visable=.T.(5)添加“開始”命令按鈕:NAME=Command1AutoSize=.F.ClickEvent=用戶自定義過程Enabled=.T.Style=0-標準FontSize=9Style=0TabIndex=2Visable=.T.第16頁,課件共34頁,創作于2023年2月(6)添加“退出”命令按鈕:NAME=Command2Autosize=.F.ClickEvent=用戶自定義過程Enabled=.T.Style=0-標準FontSize=9Style=0TabIndex=2Visible=.T.Caption=退出(7)為“開始”按鈕Click事件編寫代碼:cxp1=this.parent.optiongroup1.opti1.valuecxp2=this.parent.optiongroup1.opti2.valuevalue1=this.parent.text1.valuevalue2=this.parent.text2.value第17頁,課件共34頁,創作于2023年2月(8)為“退出”按鈕Click事件編寫代碼:relethisformsele1restorescreen結果如圖8-20所示。

圖8-20

本例題設計時應注意:“課程號”按鈕與文本框一、“課程名”按鈕與文本框二在使用上的配合一致性,在編寫“開始”按鈕程序代碼時應嚴謹統一。第18頁,課件共34頁,創作于2023年2月8.3.6微調按鈕微調控件用于接受給定范圍之內的數值輸入。它既可用鍵盤輸入,也可單擊該控件的上、下箭頭按鈕來增減其當前值。下面是該控件的常用屬性:lValue:表示微調控件的當前值。lKeyBoardHighValue:設定鍵盤輸入數值高限。lKeyBoardLowValue:設定鍵盤輸入數值低限。lSpinnerHighValue:設定按鈕微調數值高限。lSpinnerLowValue:設定按鈕微調數值低限。lIncrement:設定按一次箭頭按鈕的增減數,默認為1.00。lInputMask:設置輸入掩碼。若微調控件綁定到表的字段,則輸入掩碼位數不得小于字段寬度。lcontrolsource:數據控制源。第19頁,課件共34頁,創作于2023年2月

8.3.7復選框復選框為表單添加“微調”控件,定義其主要屬性:允許同時選擇多項,所以復選框可以在表單中獨立存在,選項按鈕只能存在于它的容器選項按鈕組中。復選框主要反映某些條件是否成立,用于選擇取值為“真”或“假”的一種現象。可以單擊鼠標左鍵改變其值。復選框控件是一種數據綁定型控件,在數據編輯或條件選擇等方面有廣泛的應用。

8.3.8編輯框在編輯框中允許編輯長字段或備注字段文本,允許自動換行并能用方向鍵、PageUp和PageDown鍵以及滾動條來瀏覽文本。第20頁,課件共34頁,創作于2023年2月

8.3.9列表框與組合框列表框主要用來顯示選擇項,并且維護其ControlSource屬性所結合的數據。列表框控件可同時顯示圖形與項目文字,可以多重選擇,并具有移動項目位置的功能。組合框兼有列表框與文本框的功能。它可以有兩種形式,即下拉列表框和下拉組合框。可以通過設置組合框的Style屬性來選擇。列表框與組合框都有一個供用戶選項的列表,但兩者有兩個區別:列表框任何時候都顯示它的列表;組合框平時只顯示一個項,待用戶單擊它的向下按鈕后才能顯示可滾動的下拉列表。下拉組合框允許鍵入數據項,而列表框與下拉列表框都僅有選項功能。以下是一些常用屬性:lfontSize:設定顯示字體大小。lRowSourceType:設定項目來源方式。lRowSource:設定項目來源。第21頁,課件共34頁,創作于2023年2月

8.3.10表格

VisualFoxPro用一個強有力的工具——表格對象來顯示和操作多行數據。表8-2給出了表格的常用屬性。表格(grid)是將數據以表格形式表示出來的一種控件、容器。表格提供了一個全屏幕輸入輸出數據表記錄的方式,它也是一個以行列的方式顯示數據的對象容器控件。一個表格控件包含一些列(Column)控件,每個列控件能夠容納一個標頭對象(Header)和文本框(Text)及其他普通控件,標頭在列的頂部顯示一個標題,并能響應一些事件。這些列除了包含標頭和控件外,每一個列還擁有自己的一組屬性、事件和方法程序,可以配備適當的數據源,從而為表格提供了極其靈活、廣泛的使用功能。表格對象能在表單或頁面中顯示并操作行和列中的數據。使用表格控件的一個非常有效的應用是創建一對多表單。

第22頁,課件共34頁,創作于2023年2月若要將表格控件添加到表單,請在“表單控件”工具欄中選擇“表格”按鈕,并在“表單”窗口中調整為期望的大小。(1)首先需要設置的表格控件屬性為“列數”。在設計時人工調整表格的顯示效果,在屬性和方法程序列表中選擇ColumnCount屬性,在屬性框中,鍵入需要的列值。在表格中加入列后應設置、改變列的寬度和行的高度。可以在“屬性”窗口中人工設置列和行對象的高度和寬度屬性,也可以在設計表格時以可視方式設置這些屬性。

l 調整表格中列的寬度在表格設計方式下,將鼠標指針置于表格列的標頭之間,這時指針變為帶有左右兩個方向箭頭的豎條,按住鼠標左鍵,將列拖動到需要的寬度;或者在“屬性”窗口設置列的Width屬性。

l 調整表格中行的高度在表格設計方式下,將鼠標指針置于“表格”控件左側的第1個按鈕和第2個按鈕之間,這時指針將變成帶有向上和向下箭頭的橫條。按住鼠標左鍵,將行拖動到需要的寬度。或者在“屬性”窗口中設置列的Height屬性。第23頁,課件共34頁,創作于2023年2月(2)可以為整個表格設置數據源,也可以為每個列單獨設置數據源。選擇表格,然后單擊“屬性”窗口的RecordSourceType屬性。為整個表格設置數據源打開方式。如果讓VisualFoxPro打開表,請將RecordSourceType屬性設置為“0-表”;如果在表格中放入打開表的字段,則將RecordSourceType屬性設置為“1-別名”。單擊“屬性”窗口中的RecordSource屬性,指定與表格對象建立聯系的數據源。如果沒有指定表格的RecordSource屬性,同時在當前工作區中有一個打開的表,那么表格將顯示這個表的所有字段。鍵入作為表格數據源的別名或表名。如果想在特定的列中顯示一個特定字段,也可以為列設置數據源。選擇列,然后單擊“屬性”窗口的ControlSource屬性。鍵入作為列的數據源的別名、表名或字段名。例如,可以鍵入“課程表.課程號”。第24頁,課件共34頁,創作于2023年2月(3)向表格添加記錄。將表格的AllowAddNew屬性設置為.T.,可以允許用戶向表格中顯示的表中添加新的記錄。當用戶選中了最后一個記錄,并且按下向下箭頭鍵時,就向表中添加了新記錄。如果表單的數據環境包含兩表之間的一對多關系,那么要在表單中顯示這個一對多關系非常容易。表格最常見的用途之一是,當文本框顯示父記錄數據時,表格顯示表的子記錄;當用戶在父表中瀏覽記錄時,表格將顯示相應的子記錄。(4)設置具有數據環境的一對多表單。將需要的字段從“數據環境”中的父表拖動到表單中。或從“數據環境”中將相關的表拖動到表單中(5)創建沒有數據環境的一對多表單。將文本框添加到表單中,顯示主表中需要的字段。設置文本框的ControlSource屬性為“主表。”

l將表格的RecordSource屬性設置為相關表的名稱。

l設置表格的LinkMaster屬性為主表名稱。第25頁,課件共34頁,創作于2023年2月

l 設置表格的ChildOrder屬性為相關表中索引標識的名稱,索引標識和主表中的關系表達式相對應。

l 將表格的RelationalExpr屬性設置為聯接相關表和主表的表達式。例如,如果ChildOrder標識是以“lastname+firstname”建立的索引,應將RelationalExpr也設置為相同的表達式。(6)在表格中嵌入控件。除了在表格中顯示字段數據,還可以在表格的列中嵌入控件,這樣就為用戶提供了可以嵌入的文本框、復選框、下拉列表框、微調按鈕和其他控件。例如,如果表中有一個邏輯字段,當運行該表單時,通過辨認復選框可以判定哪個記錄值是.T.和哪個記錄值是.F.。修改這些值只需設置或清除復選框即可。可以在“表單設計器”中交互地向表格列中添加控件,也可以通過編寫代碼在運行時添加控件。例8-8

創建一個可以表現課程安排、反映學習成績的表單。構思:使用一個表格體現課程的有關安排信息;再用一個表格體現學習成績有關信息。第26頁,課件共34頁,創作于2023年2月

l為第1個表格控件設置屬性:ColumnCount=4ChildOrder=課程號DeleteMark=.F.Height=72Left=24LinkMaster=課程表ReadOnly=.T.RecordMark=.F.RecordSource=課程表RalationalExpr=課程表.課程號RowHeigh=18ScrollBars=3Top=48Width=337Name=課第27頁,課件共34頁,創作于2023年2月

l設置表格1各列屬性:Column1的標題屬性:

Alignment=2Caption=課程號Column1的文本框屬性:

BorderStyle=0Margin=0ReadOnly=.T.ColorSource=3ForeColor=0,0,0ControlSource=課程號

BackColor=192,192,192第1列的屬性設置

ControlSource=無

Width=75ReadOnly=.T.其他3列與第1列略同。第28頁,課件共34頁,創作于2023年2月l設置第2個表格的屬性ColumnCount=4ChildOrder=課程號DeleteMark=.F.Height=73Left=24LinkMaster=課程表ReadOnly=.T.RecordMark=.F.RecordSource=分數RalationalExpr=課程表.課程號RowHeigh=18ScrollBars=3-既水平又垂直Top=156Width=337第29頁,課件共34頁,創作于2023年2月l設置表格2中Column1的屬性Column1標題屬性為:Alignment=2Caption=班級Name=Column1Column1的文本框屬性為:BorderStyle=0Margin=0ReadOnly=.T.ColorSource=3ForeColor=0,0,0BackColor=192,192,192Name=Text1第1列的屬性設置:ControlSource=學生表.班級Width=75ReadOnly=.T.Name=Column1第30頁,課件共34頁,創作于2023年2月第3列的屬性設置:Alignment=2Caption=成績Name=Column3BorderStyle=0Margin=0ReadOnly=.T.ColorSource=3ForeColor=0,0,0BackColor=192,192,192Name=Header1ControlSo

溫馨提示

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

評論

0/150

提交評論