第6章表单及其控件的创建与使用6.1 名词解释表单:即用户与计算机进行交流的一种屏幕界面,用于数据的显示、输入、修改。
该界面可以自行设计和定义,是一种容器类,可包括多个控件(或称对象)。
表单集:可包含一张或多张表单的容器。
数据环境:在打开或修改一个表单或报表时需要打开的全部表、视图和关系。
它以窗口形式(类似于数据库设计器)反映出与表单有关的表、视图、表之间关系等内容。
可以用数据环境设计器来创建和修改表单的数据环境。
6.2 使用向导创建表单6.2.1 利用向导创建基于一个表的表单(XS(学生表))6.2.2利用向导创建一对多表单(XS(学生表),CJ(成绩表))表单设计界面表单设计器表单设计器工具栏表单控件工具栏属性窗口注意:用向导创建的表单含有一组标准的命令按钮。
表单保存后系统会产生两个文件:表单文件:.SCX,表单备注文件:.SCT6.3 表单设计器6.3.1表单设计器概述1.利用表单设计器创建表单2.利用命令创建表单Create form 表单文件名3.表单设计环境的设置工具->选项->表单/控件4.“表单”菜单5.“表单设计器”工具栏6.“表单控件”工具栏7.“布局“工具栏8.“调色板”工具栏9.“属性”窗口10.新建属性和方法11.创建表单集3.5 表单及表单集1.利用表单设计器创建新表单:create form aaa2.表单的保存与运行Do form 表单名3.表单的常考属性:4.创建表单集和向表单集中添加表单6.4 控件的创建与使用控件是放在表单上用以显示数据,执行操作或使表单更易阅读的一种对象,VFP有很多种控件。
根据控件与数据的关系可将控件分为两类:1.绑定型控件:是指其内容与后端的表,视图,查询中的字段,或内存中的变量相关的控件,在该控件中输入,修改,选择的值将保存在数据源中。
复选框,列表框,组合框,命令组,编辑框,列,选项按纽,选项组,微调框,文本框,表格等控件可以与数据绑定。
Recordsource:可用于指定与表格控件相绑定的数据源. Controlsource:可用于指定与其他(除表格控件以外的)控件相绑定的数据源.Rowsourcetype:指定数据源类型适用于列表框,组合框Rowsource:指定数据源2.非绑定型控件:指其内容不与后端的表,视图,查询中的字段,或内存中的变量相关的控件。
6.4.1标签控件(label)标签控件:用于显示文本的图形控件,在表单运行时其文本不能被用户直接更改,通常用于显示提示信息,为添加的控件写标题。
几个主要的属性:Caption:用于指定标签控件的标题(显示的文本)(<=256)Backstyle: 指定标签控件的背景是否透明(.T. , .F.)Alignment: 指定标签控件中的文本的对齐方式Autosize:用于决定是否自动调整标签控件的大小Wordwrap:用于确定标签上显示的文本能否换行Name:指定标签控件的名字对字体的一般设置:Fontname(字体)Fontsize(字号)Fontbold(粗体)Fontitalic(斜体)Borderstyle(边框样式)Forecolor(字体颜色)举例:该标签控件有3行内容(汉字),要自动调整控件大小则:首先将AUTOSIZE属性和WORDWRAP属性都设置为真,然后设置CAPTION 属性6.4.2文本框(text)与编辑框(edit)1.文本框:通过文本框可以显示或编辑表中的非备注型字段的数据,框中一般是单行的文本。
文本框的主要属性:Name :文本框的名字Controlsource:指定与文本框绑定的数据源(通常是非备注型字段)。
Value:指定文本框的数据,保存文本框中的数据,可以引用或更改文本框中所显示的数据。
Passwordchar:指定作为占位符的字符或者说指定其他字符来掩盖其输入的字符。
Inputmask:指定控件中数据的输入格式和显示方式(X,9,A,)Format:指定控件的Value属性的输入和输出格式(A,D,K,T,!) Readonly:指定控件是否只读,即用户是否可以编辑控件中的数据。
Alignment:文本的对齐方式Borderstyle:边框样式Backstyle:是否透明Specialeffect:是否具有三维格式举例:(1).利用标签和文本框控件显示学生表中各个字段的信息;(2).利用文本框的valid事件来检测文本框中的文本的有效性(用户名,密码,要求密码为长度为6的字符,不含首位空格,inputmask);Valid事件:在控件失去焦点前触发该事件,常常用于检测文本框中数据的有效性。
messagebox("最少输入6个字符",48+32+256,"提示")2.编辑框:与文本框类似,可以输入多行文本或编辑长字段或备注字段,允许自动换行并能用光标移动键,操作滚动条来浏览。
Controlsource:绑定备注型字段,利用编辑框显示或编辑备注型字段。
Scrollbars:决定编辑框是否有垂直的滚动条。
Name:编辑框的名称举例:浏览学生表中的备注型字段6.4.3命令按纽(command)和命令按纽组(commandgroup)命令按纽通常用来启动一个事件以完成一种功能,如关闭表单,移动记录,打印记录等,命令按钮常用的属性:Caption:指定在命令按纽上显示的标题文本Picture :指定命令按纽上显示的图片Default :当活动表单上存在两个或多个命令按钮时,指定按键盘上的<Enter>键时响应的命令按钮。
Cancel:指定按键盘上的<Esc>键时响应的命令按钮Enabled:指定是否可以响应用户引发的事件,即命令按纽是否可用(有效)Visible:指定命令按纽是否可见Name:指定命令按纽的名字Downpicture:指定命令按纽被选中时的图形对于命令按钮来说,主要工作之一是设计其事件(通常是Click事件)的处理代码,事件代码的设计由要实现的功能决定举例1:制作用户注册和登录的表单,可以进行新用户的注册,注册成功后返回注册成功对话框,并清除文本框中的信息;如果已经注册则可以进行登录,如果成功则弹出“欢迎您使用!”并释放表单,如果登陆失败则弹出“用户名或密码不正确!”,并清除文本框中的信息(用符号*掩盖其密码)命令按钮组:是一种容器型控件,它包含一组命令按钮,命令按钮组常用的属性:Caption:指定在命令按纽组中各个按钮上显示的标题文本Name:指定命令按纽组和各个按钮的名字Buttoncount :指定命令按纽组中包含按纽的个数(2)Value :指定控件的当前状态,其默认值为1,在运行时其值为所选命令按钮的顺序号。
Borderstyle :指定边框样式Autosize :根据内容自动调节大小。
可以为命令按钮组设置事件处理代码来响应各个命令按钮的事件,也可以对命令按钮组中个每个按钮分别设置相应的事件处理代码。
举例2:创建浏览学生表的信息(标签,文本框需绑定,命令按钮或命令按钮组)6.4.4 微调框(spinner)微调框控件:通过单击微调框控件的上箭头或下箭头,或者在微调框内键入一个数值,可以限制输入数据的范围。
主要的属性:Controlsource :指定与控件绑定的数据源Value :指定控件的当前状态或值Keyboardhighvalue :指定控件通过键盘接受的最大值Keyboardlowvalue : 指定控件通过键盘接受的最小值Spinnerlowvalue : 指定控件通过按钮接受的最小值Spinnerhighvalue : 指定控件通过按钮接受的最大值Increment :每次的增量举例:创建表单来显示成绩表的各个字段的值,其中成绩字段通过和微调框进行绑定,并可以修改字段的值6.4.5 选项按纽组(optiongroup)选项按纽组是包含多个选项按钮的容器控件,运行时允许用户从中选择一个按纽,选定某个选项按钮将释放先前的选择,选项按纽旁边的圆点指示当前的选择。
主要的属性:buttoncount:决定选项按钮组中选项按纽的个数;caption:设置按纽的标题;alignment:设置按纽的标志和标题的排列方式;value:表明用户选定的哪一个按纽;controlsource:设置选项的数据源的来源,或将选项值写入数据源说明:选项按钮组的value属性表明用户选定了哪一个按钮,可以通过选项按钮获得用户信息,并通过保存caption属性将这些信息保存在表中。
举例:1 利用选项按纽组进行修改教师表的性别,利用标签,文本框,选项组,命令按纽组等。
6.4.6 复选框利用复选框指定或显示一个逻辑状态:真/假,开/关,是/否等主要的属性:caption:设置复选框的标题controlsource:设置复选框的数据源,通常是表中的逻辑型字段。
Style:指定复选框控件的样式(图形或标准样式)Value:指定复选框控件的状态,取值可以为0,1,2,分别表示清除选择,选择,混合值;举例:利用复选框输入和设置课程类别是否为必修课。
注意:复选框的显示状态和VALUE的对应关系:6.4.7 列表框列表框主要用于显示一组预定的值,并可以通过滚动条操作浏览列表信息,用户可以从列表框中可以选择需要的数据。
主要属性:Columncount:指定列表框中列的个数,默认值为0Rowsourcetype :指定列表框中列表的数据源的类型(如表或查询)(通常有三种常用选择:值(1),SQL语句(3),字段(6))。
Rowsource :指定列表框中列表的数据源Controlsource :指定列表框所绑定的数据源,用于指定用户从列表框中选择的值保存在何处。
Boundcolumn:确定列表框中的哪个列绑定到控件的value属性(默认为第一列)Listcount:指定列表框中条目的数量(元素的个数)Selected()方法:指定列表框中条目是否被选中Sorted:是否按字母进行排序Mutiselected:在列表框内进行多重选择Moverbars:显示移动条,进行手工排序。
List:在调用列表框中元素,相当于数组名Listindex:列表框或组合框中被选中的元素的索引值,或第几个元素Clear:清除列表中所有的条目Additem方法:向列表框中添加条目或数据元素Removeitem方法: 从列表框中移去条目或数据元素举例:1.利用列表框显示JS表的系代号字段的值(设置rowsourcetype,rowsource)(两种方式),destroy事件:当释放一个对象时发生。
2.利用列表框中显示(xs)多列字段(columncount,rowsourcetype,rowsource)结合boundcolumn ,controlsource说明哪一列数据与数据源绑定3.利用文本框和列表框之间进行数据转换(sorted,moverbars进行排序)。