《第8章表单设计及运行.ppt》由会员分享,可在线阅读,更多相关《第8章表单设计及运行.ppt(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第八章 表单设计及运行8.1使用表单向导创建表单8.1.1 表单向导8.1.2 一对多表单向导8.2设置数据环境8.2.1打开数据环境8.2.2 数据信息与数据环境8.3用表单设计器创建表单与控件8.3.1 表单设计器与表单控件工具栏8.3.2“标签”控件8.3.3 命令按钮与命令按钮组8.3.4 文本框8.3.5 选项按钮8.3.6 微调按钮8.3.7 复选框8.3.8 列表框与组合框8.3.9 编辑框8.3.10 表格8.1 使用表单向导创建表单8.1.1 表单向导 使用表单向导创建一对一表单的步骤如下:一、从“文件”菜单,选择“新建”、“表单”,然后在新建对话框中选择向导,在向导选取对话
2、框中使用鼠标选择“表单向导”。二、单击确定按钮进入“表单向导”步骤一。三、确定表单的数据源。然后进行字段选取。四、选择好表单样式及按钮类型。五、按照每组记录的排序顺序选择字段。六、选择建立好表单后的存储方式,“完成”。8.2 数据环境设置8.2.1 打开“数据环境设计器”在创建表单或已有打开表单的情况下,可以从“显示”菜单中,也可在表单快捷菜单中 选择“数据环境”。8.2.2 数据信息与数据环境8.3 用表单设计器创建表单、控件所谓控件是指可以用于交互式操作界面的图形对象。表单中的控件是用以显示数据、执行操作或使表单更易阅读的图形对象。可以输入输出数据、完成具有某种特定功能的操作,构建用户和计
3、算机之间相互沟通的操作界面。在表单中有两类控件:与表中数据绑定的控件和不与数据绑定的控件。当使用绑定型控件时,所输入或所选择的值将保存在数据源中(数据源可以是表中的字段、临时表的字段或变量)。要使控件在表单中正确运行,可以设置控件的有关属性(如:controlsource或recordsource),把控件与数据结为一体。最好保持控件使用方法特征的一致性,给用户一个明确的提示。8.3.1 表单设计器与表单控件工具栏 使用表单设计器创建表单一般需要进行的工作如下:明确创建表单的目标、表单应具备的功能、用途。在表单中添加与此相关的控件。为表单及其控件设置好与之匹配的数据环境及数据源。为表单中的每一
4、个控件做恰当的属性设置。选择与对象、目标相关的事件。设计好事件触发的方法程序代码。8.3.3 命令按钮与命令按钮组 “命令按钮”控件主要用来控制程序代码的执行、操作。在表单中添加具有不同功能的命令按钮,供用户选择各种不同的操作。命令按钮的不同功能是通过为各个按钮“click”事件编写不同的方法程序代码设置的。“命令按钮组”控件是命令按钮的集合。“命令按钮”的主要属性是:位置及大小:top、left、height、width 标题:caption 名称:name 控件自动改变:autosize 字体字号:fontname、fontsize “命令按钮”经常选用的事件:click 8.3.4 文本
5、框 文本框是最常用的控件主要用于数据表中某些数据的输入输出或编辑,以及从窗口给内存变量赋值等操作。文本框对象的常用属性设置:文本框名称:name 文本框标题:caption 文本框内容的字体大小:fontsize 文本框数据初始值与类型:value 设置输入和显示数据的格式与长度:inputmask 设定是否只读状态:readonly 在应用程序中,经常需要获得某些安全信息如:口令。这时需要设置文本框的passwordchar属性为“*”或其它一些字符;用文本框来接收这一信息,而不在屏幕上显示其实际内容。例8-4 用文本框、标签、命令按钮组设计一个可以使用口令进行操作权限检验的表单。操作步骤:
6、(1)打开“表单设计器”为表单设置属性,属性值如下:AlwaysOnTop=.T.AutoCenter=.T.Caption=系统检验(2)打开“表单控件工具栏”,从中选择“命令按钮组”设定命令按钮数目两个,为命令按钮组设定如下属性:Caption=cmdgp1Value=1(3)为两个命令按钮设定如下属性:Caption=确认Caption=退出ClickEvent=用户自定义过程(4)在表单中添加文本框控件,为其设定属性:PasswordChar=*Name=klmmClickEvent=用户自定义过程FontName=宋体(5)在表单中添加标签,设定属性:Caption=操作口令Font
7、Name=宋体(6)为命令按钮一设计方法程序代码:if trim(thisform.klmm.value)pass if messagebox(请重新出入口令,0+16,提示)=1 thisform.klmm.setfocus endifendifif trim(thisform.klmm.value)=pass do form 教学数据库例题.scx release thisformendif(7)为命令按钮二设计方法程序代码:a=messagebox(你真的要退出吗?,4+16+0,对话窗口)if a=3 release thisformendif结果如图8-19所示。图8-9 例8-4结
8、果显示 8.3.5 选项按钮 “选项按钮”也叫“单选按钮”常用于从多项控制中选择其一,把事先设计好具有特定目的的整套操作过程提供给“选项按钮组”,用户可以从中选择一项。“选项按钮”控件的属性主要是“单选按钮”的个数及按钮次序。例例8-5 设计一个课程查询表单,在表单中使用单选按钮控件和按钮、文本框(在以后的例题中,Top,Height,Left,Width 4个最常用属性省略)。打开表单设计器,使用表单控件工具栏、属性窗口、数据环境设计器,进行以下操作:(1)设计、定义表单属性:Caption=课程查询Name=Form1Visable=.T.(2)在表单中添加一个选择按钮组,在其中用两个选择
9、按钮:AutoSize=.T.ControlSize=无Name=OptionGroup1Visable=.T.l“课程号”按钮 Caption=课程号 Name=Opti1 AutoSize=.T.ClickEvent=用户自定义过程 Style=0-标准 Value=.T.l“课程名”按钮 Caption=课程名 Name=Opti2 Autosize=.f.ClickEvent=用户自定义过程 Style=0-标准 Value=.f.(3)添加一个文本框用来输入课程号:Name=Text1AutoSize=.t.ClickEvent=用户自定义过程Style=0-标准Value=1Fon
10、tSize=8Format=1InitEvent=用户自定义过程InputMask=无MaxLenth=7Seconds=2-默认SelectOnEntry=.T.TabIndex=0(4)添加一个文本框用来输入课程名称:NAME=Text2Alignment=0Autosize=.t.ClickEvent=用户自定义过程ControlSource=无DateFormat=14-汉语Enabled=.T.HideSelection=.F.Style=0-标准Value=FontSize=10Format=KInitEvent=用户自定义过程InputMask=无MaxLenth=8Passwo
11、rdChar=无ReadOnly=.F.Seconds=2-默认SelectOnEntry=.T.Style=0TabIndex=4Visable=.T.(5)添加“开始”命令按钮:NAME=Command1AutoSize=.F.ClickEvent=用户自定义过程Enabled=.T.Style=0-标准FontSize=9Style=0TabIndex=2Visable=.T.(6)添加“退出”命令按钮:NAME=Command2Autosize=.F.ClickEvent=用户自定义过程Enabled=.T.Style=0-标准FontSize=9Style=0TabIndex=2Vi
12、sible=.T.Caption=退出(7)为“开始”按钮Click事件编写代码:cxp1=this.parent.optiongroup1.opti1.valuecxp2=this.parent.optiongroup1.opti2.valuevalue1=this.parent.text1.valuevalue2=this.parent.text2.value(8)为“退出”按钮Click事件编写代码:rele thisformsele 1restore screen结果如图8-20所示。图8-20 本例题设计时应注意:“课程号”按钮与文本框一、“课程名”按钮与文本框二在使用上的配合一致性
13、,在编写“开始”按钮程序代码时应严谨统一。8.3.6 微调按钮 微调控件用于接受给定范围之内的数值输入。它既可用键盘输入,也可单击该控件的上、下箭头按钮来增减其当前值。下面是该控件的常用属性:lValue:表示微调控件的当前值。lKeyBoardHighValue:设定键盘输入数值高限。lKeyBoardLowValue:设定键盘输入数值低限。lSpinnerHighValue:设定按钮微调数值高限。lSpinnerLowValue:设定按钮微调数值低限。lIncrement:设定按一次箭头按钮的增减数,默认为1.00。lInputMask:设置输入掩码。若微调控件绑定到表的字段,则输入掩码位
14、数不得小于字段宽度。lcontrolsource:数据控制源。8.3.7 复选框 复选框为表单添加“微调”控件,定义其主要属性:允许同时选择多项,所以复选框可以在表单中独立存在,选项按钮只能存在于它的容器选项按钮组中。复选框主要反映某些条件是否成立,用于选择取值为“真”或“假”的一种现象。可以单击鼠标左键改变其值。复选框控件是一种数据绑定型控件,在数据编辑或条件选择等方面有广泛的应用。8.3.8 编辑框 在编辑框中允许编辑长字段或备注字段文本,允许自动换行并能用方向键、PageUp 和 PageDown 键以及滚动条来浏览文本。8.3.9 列表框与组合框 列表框主要用来显示选择项,并且维护其C
15、ontrolSource属性所结合的数据。列表框控件可同时显示图形与项目文字,可以多重选择,并具有移动项目位置的功能。组合框兼有列表框与文本框的功能。它可以有两种形式,即下拉列表框和下拉组合框。可以通过设置组合框的Style属性来选择。列表框与组合框都有一个供用户选项的列表,但两者有两个区别:列表框任何时候都显示它的列表;组合框平时只显示一个项,待用户单击它的向下按钮后才能显示可滚动的下拉列表。下拉组合框允许键入数据项,而列表框与下拉列表框都仅有选项功能。以下是一些常用属性:lfontSize:设定显示字体大小。lRowSourceType:设定项目来源方式。lRowSource:设定项目来源
16、。8.3.10 表格 Visual FoxPro用一个强有力的工具表格对象来显示和操作多行数据。表8-2给出了表格的常用属性。表格(grid)是将数据以表格形式表示出来的一种控件、容器。表格提供了一个全屏幕输入输出数据表记录的方式,它也是一个以行列的方式显示数据的对象容器控件。一个表格控件包含一些列(Column)控件,每个列控件能够容纳一个标头对象(Header)和文本框(Text)及其他普通控件,标头在列的顶部显示一个标题,并能响应一些事件。这些列除了包含标头和控件外,每一个列还拥有自己的一组属性、事件和方法程序,可以配备适当的数据源,从而为表格提供了极其灵活、广泛的使用功能。表格对象能在
17、表单或页面中显示并操作行和列中的数据。使用表格控件的一个非常有效的应用是创建一对多表单。若要将表格控件添加到表单,请在“表单控件”工具栏中选择“表格”按钮,并在“表单”窗口中调整为期望的大小。(1)首先需要设置的表格控件属性为“列数”。在设计时人工调整表格的显示效果,在属性和方法程序列表中选择ColumnCount属性,在属性框中,键入需要的列值。在表格中加入列后应设置、改变列的宽度和行的高度。可以在“属性”窗口中人工设置列和行对象的高度和宽度属性,也可以在设计表格时以可视方式设置这些属性。l 调整表格中列的宽度 在表格设计方式下,将鼠标指针置于表格列的标头之间,这时指针变为带有左右两个方向箭
18、头的竖条,按住鼠标左键,将列拖动到需要的宽度;或者在“属性”窗口设置列的Width属性。l 调整表格中行的高度 在表格设计方式下,将鼠标指针置于“表格”控件左侧的第1个按钮和第2个按钮之间,这时指针将变成带有向上和向下箭头的横条。按住鼠标左键,将行拖动到需要的宽度。或者在“属性”窗口中设置列的Height属性。(2)可以为整个表格设置数据源,也可以为每个列单独设置数据源。选择表格,然后单击“属性”窗口的RecordSourceType属性。为整个表格设置数据源打开方式。如果让Visual FoxPro打开表,请将RecordSourceType属性设置为“0-表”;如果在表格中放入打开表的字段
19、,则将RecordSourceType属性设置为“1-别名”。单击“属性”窗口中的RecordSource属性,指定与表格对象建立联系的数据源。如果没有指定表格的RecordSource属性,同时在当前工作区中有一个打开的表,那么表格将显示这个表的所有字段。键入作为表格数据源的别名或表名。如果想在特定的列中显示一个特定字段,也可以为列设置数据源。选择列,然后单击“属性”窗口的ControlSource属性。键入作为列的数据源的别名、表名或字段名。例如,可以键入“课程表.课程号”。(3)向表格添加记录。将表格的AllowAddNew属性设置为.T.,可以允许用户向表格中显示的表中添加新的记录。当
20、用户选中了最后一个记录,并且按下向下箭头键时,就向表中添加了新记录。如果表单的数据环境包含两表之间的一对多关系,那么要在表单中显示这个一对多关系非常容易。表格最常见的用途之一是,当文本框显示父记录数据时,表格显示表的子记录;当用户在父表中浏览记录时,表格将显示相应的子记录。(4)设置具有数据环境的一对多表单。将需要的字段从“数据环境”中的父表拖动到表单中。或从“数据环境”中将相关的表拖动到表单中 (5)创建没有数据环境的一对多表单。将文本框添加到表单中,显示主表中需要的字段。设置文本框的ControlSource属性为“主表。”l将表格的RecordSource属性设置为相关表的名称。l设置表
21、格的LinkMaster属性为主表名称。l 设置表格的ChildOrder属性为相关表中索引标识的名称,索引标识和主表中的关系表达式相对应。l 将表格的RelationalExpr属性设置为联接相关表和主表的表 达 式。例 如,如 果 ChildOrder标 识 是 以“lastname+firstname”建立的索引,应将RelationalExpr也设置为相同的表达式。(6)在表格中嵌入控件。除了在表格中显示字段数据,还可以在表格的列中嵌入控件,这样就为用户提供了可以嵌入的文本框、复选框、下拉列表框、微调按钮和其他控件。例如,如果表中有一个逻辑字段,当运行该表单时,通过辨认复选框可以判定哪
22、个记录值是.T.和哪个记录值是.F.。修改这些值只需设置或清除复选框即可。可以在“表单设计器”中交互地向表格列中添加控件,也可以通过编写代码在运行时添加控件。例例8-8 创建一个可以表现课程安排、反映学习成绩的表单。构思:使用一个表格体现课程的有关安排信息;再用一个表格体现学习成绩有关信息。l为第1个表格控件设置属性:ColumnCount=4ChildOrder=课程号DeleteMark=.F.Height=72Left=24LinkMaster=课程表ReadOnly=.T.RecordMark=.F.RecordSource=课程表RalationalExpr=课程表.课程号RowHe
23、igh=18ScrollBars=3Top=48Width=337Name=课 l设置表格1各列属性:Column1的标题属性:Alignment=2 Caption=课程号Column1的文本框属性:BorderStyle=0 Margin=0 ReadOnly=.T.ColorSource=3 ForeColor=0,0,0 ControlSource=课程号 BackColor=192,192,192第1列的属性设置 ControlSource=无 Width=75 ReadOnly=.T.其他3列与第1列略同。l设置第2个表格的属性ColumnCount=4ChildOrder=课程号
24、DeleteMark=.F.Height=73Left=24LinkMaster=课程表ReadOnly=.T.RecordMark=.F.RecordSource=分数RalationalExpr=课程表.课程号RowHeigh=18ScrollBars=3-既水平又垂直Top=156Width=337l设置表格2中Column1的属性Column1标题属性为:Alignment=2Caption=班级Name=Column1Column1的文本框属性为:BorderStyle=0Margin=0ReadOnly=.T.ColorSource=3ForeColor=0,0,0BackColo
25、r=192,192,192Name=Text1第1列的属性设置:ControlSource=学生表.班级Width=75ReadOnly=.T.Name=Column1第3列的属性设置:Alignment=2Caption=成绩Name=Column3BorderStyle=0Margin=0ReadOnly=.T.ColorSource=3ForeColor=0,0,0BackColor=192,192,192Name=Header1ControlSource=分数.成绩Width=10ReadOnly=.T.Name=Text1l定义表单、表格的事件:自动设置。第2、4列略。设置(定义)完
26、成后运行表单,结果如图8-22所示。图 8-22 例8-8表单运行效果图作业 1.“项目管理器”中的“文档”选项卡用于显示和管理 A)程序、API库和应用程序 B)数据库、自由表和查询 C)菜单、文本文件和其他文件 D)表单、报表和标签2.在Visual FoxPro中,程序文件的扩展名为 A).QPR B).PRGC).PJX D).SCX3.将文本框的PasswordChar属性值设置为星号(*),那么,当在文本框中输入“电脑2004”时,文本框中显示的是A)电脑2004 B)*C)*D)错误设置,无法输入4.在表单中有命令按钮Command1和文本框Text1,将文本框的InputMas
27、k属性值设置为9,999.9,然后在命令按钮的Click事件中输入代码ThisForm.Text1.Value=12 3456.789,当运行表单时,单击命令按钮,此时文本框中显示的内容为A)123 456.789 B)23 456.7 C)123 456.7 D)*.*解析:InputMask属性指定在一个文本框中如何输入和显示数据。本题中显示数值型数据时,整数部分的设置一定要大于或等于要显示的字符,否则将以星号表示。5.设某程序中有PROG1.prg、PROG2.prg、PROG3.prg三个程序依次嵌套,下面叙述中正确的是 A)在PROG1.prg中用!RUN PROG2.prg语句可以
28、调用PROG2.prg子程序 B)在PROG2.prg中用RUN PROG3.prg语句可以调用PROG3.prg子程序 C)在PROG3.prg中用RETURN语句可以返回PROG1.prg主程序 D)在PROG3.prg中用RETURN TO MASTER语句可以返回PROG1.prg主程序解析:在程序的多级调用中,如果在某个子程序的返回语句中加入了选项TO MASTER,那么在执行程序嵌套时,它们的返回次序将被改变。本题在子程序PROG3.prg中加入了选项TO MASTER,那它们的返回次序将是由子程序PROG3.prg直接返回到主程序。6.在表单MyForm中通过事件代码,设置标签L
29、bl1的Caption属性值设置为“计算机等级考试”,下列程序代码正确的是A)MyForm.Lbl1.Caption=“计算机等级考试”B)This.Lbl1.Caption=“计算机等级考试”C)ThisForm.Lbl1.Caption=“计算机等级考试”D)ThisForm.Lbl1.Caption=计算机等级考试7.在表单中要使控件成为可见的,应设置控件的 【12】属性。8.在运行表单时,下列有关表单事件引发次序的叙述正确的是A)Activate-Init-Load B)Load-Activate-InitC)Activate-Load-Init D)Load-Init-Activate解析:Load事件的触发时机为创建对象前,Init事件的触发时机为创建对象时,而Activate事件的触发时机为对象激活时故正确的引发次序应为Load-Init-Activate。9.如果文本框的SelStart属性值为-1,表示的含义为 A)光标定位在文本框的第一个字符位置上 B)从当前光标处向前选定一个字符 C)从当前光标处向后选定一个字符 D)错误属性值,该属性值不能为负数
限制150内