电子教案数据库原理与应用(第3版)a12_第1页
电子教案数据库原理与应用(第3版)a12_第2页
电子教案数据库原理与应用(第3版)a12_第3页
电子教案数据库原理与应用(第3版)a12_第4页
电子教案数据库原理与应用(第3版)a12_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第12章 表单 学习要点1、 表单向导、表单设计器2、 数据环境3、 表单设计4、 表单控件第12章表单12.1 创建表单12.2 设置数据环境12.3 基本表单设计12.4 常用表单控件习题及参考答案第12章 表单 表单(Form),即Windows应用程序中的窗口,是用户和Visual FoxPro 应用程序之间进行数据交互操作的窗口。利用表单,可以让用户在熟悉的界面下察看数据或将数据输入到数据库。但表单提供的远不止是一个界面,它还提供丰富的对象集,这些对象能够响应用户(或系统)事件,这样就能使用户尽可能方便和直观地完成信息管理工作。 表单的创建既可以使用表单向导,也可以使用表单设计器,V

2、isual FoxPro 6.0 提供了一个功能强大的表单设计器,使得设计表单工作变得既快捷又容易。12.1 创建表单 表单可以属于某一个项目,也可以独立于任何项目之外单独存在,它是一个特殊的文件,扩展名为.scx。在项目管理器中创建的表单隶属于该项目。 在Visual FoxPro 6.0 中,可以用以下任意一种方法创建表单: 使用表单向导。 使用表单设计器 使用CREATE FORM命12.1.1 表单向导 使用“表单向导”创建表单,可以根据向导提示,在几种不同的类型选项中进行选择,从而生成一个用户满意的表单。“表单向导”有两种,一种是单表表单向导,生成的表单只能依赖于一个数据库表;另一种

3、是一对多表单向导,生成的表单依赖于通过关键字连接的两个数据库表。下面分别介绍这两种表单向导。 1. 使用“表单向导”创建单表表单 在项目管理器中选择“文档”选项卡。 在“文档”选项卡中,选择“表单”选项。12.1.1 表单向导 单击“新建”按钮,系统弹出“新建表单”对话框。 在“新建表单”对话框中单击“表单向导”按钮,系统弹出“向导选取”对话框。 在“向导选取”对话框中选择“表单向导”选项,然后单击“确定”按钮,进入“表单向导步骤1”对话框,在“数据库和表”组合框中选取teachersj数据库,并且选取teacher表,将表中的全部可用字段添加到“选定字段”列表框中,如图12-1所示。12.1

4、.1 表单向导图12-1 “表单向导步骤1”对话框12.1.1 表单向导 单击“下一步”按钮,进入“表单向导步骤2”对话框。该对话框用于确定表单的外观效果。在“样式”列表框中,系统提供了9种不同风格的显示记录字段的样式,每选择一种都可以在左上角看到其显示效果,本例中选择“凹陷式”显示效果。 向导提供了4种“按钮类型”来显示出现在表单中按钮的显示情况: 文本按钮:在按钮上用文本显示按钮的说明和用途。 图片按钮:在按钮上附示意性图片来显示按钮的说明和用途。 无按钮:在表单上不设置按钮。 定制:根据用户的需要定制按钮的显示形式。12.1.1 表单向导图12-2 “表单向导步骤2”对话框12.1.1

5、表单向导 单击“下一步”按钮,进入“表单向导步骤3”对话框,选择排序依据。最多可以选择三个排序依据。图12-3 “表单向导步骤3”对话框12.1.1 表单向导 单击“下一步”按钮,进入“表单向导步骤4”对话框。图12-4 “表单向导步骤4”对话框12.1.1 表单向导 在此对话框中出现了3个复选框,它们的作用如下: 使用字段映像:不同数据类型的字段使用不同的控件显示字段内容,例如字符型字段用文本框显示字段内容,逻辑型字段用复选框显示其内容,备注型字段用编辑框显示其字段内容。一般使用默认值。 用数据库字段显示类:即用数据库字段形式显示类。一般使用默认值。 为容不下的字段加入页:如果所选择的字段个

6、数过多,一页显示不下,选该复选框就会自动添加一页,以显示更多的字段。12.1.1 表单向导 最后单击“完成”按钮,保存teacher.scx表单文件。该表单将在保存后自动运行。图12-5 “教师基本情况”表单运行结果12.1.1 表单向导 2.使用“表单向导”创建一对多表单 按照创建单表表单的前4步操作,打开“向导选取”对话框。图12-6 “一对多表单向导步骤 1”对话框12.1.1 表单向导 单击“下一步”按钮,进入“一对多表单向导步骤 2”对话框,选择sk.dbf为子表,在“选定字段”中添加其全部字段。图12-7 “一对多表单向导步骤 2”对话框12.1.1 表单向导 然后单击“下一步”按

7、钮,进入“一对多表单向导步骤 3”对话框,指定父表和子表之间的关系,左边为父表,右边为子表。图12-8 “一对多表单向导步骤 3”对话框12.1.1 表单向导 其余步骤和前面所讲的“单表表单向导”的步骤一致,但这里表单的样式选择为“浮雕式”,表单标题为“教师授课浏览”,保存表单文件名为tea_sk.scx,其运行结果如图12-9所示。图12-9 “教师授课浏览”表单运行结果12.1.2 表单设计器 使用“表单设计器”能够可视化地创建并修改表单和表单集。一个表单集由一个或多个可作为一个整体处理的表单构成。表单和表单集有自己的属性、事件和方法的对象。 当“表单设计器”窗口处于激活状态时,可以使用菜

8、单、“表单控件”工具栏、“表单设计器”工具栏、“布局”工具栏,以及“调色板”工具栏创建表单。 1. “表单设计器”工具栏 当打开“表单设计器”窗口时,自动显示的“表单设计器”工具栏。工具栏包括9个命令按钮。12.1.2 表单设计器 图12-10 “表单设计器”窗口12.1.2 表单设计器 命令按钮 功能 设置Tab键次序 数据环境 属性窗口 代码窗口 表单控件工具栏 调色板工具栏 布局工具栏 表单生成器 自动格式 表12-1 Form Designer工具栏命令按钮12.1.2 表单设计器 2. “表单控件”工具栏 当打开“表单设计器”窗口时,“表单控件”工具栏会自动显示。此外,任何时候都可以

9、通过选择“显示”|“工具”菜单选项来显示指定的工具栏。但是,除非在“表单设计器”窗口中工作,否则“表单控件”工具栏中的按钮不可用。 “表单控件”工具栏上设置有25个按钮,除个别按钮以外,每个按钮代表一个控件。使用“表单控件”工具栏可以在表单上创建控件。单击需要的控件按钮,将鼠标指针移动到表单上,然后在表单的控件放置处单击控件或把控件拖至所需的大小,就把该控件添加到表单上。12.1.3 表单的属性窗口 设计表单的大多数工作是在“属性”窗口中完成的,因此用户必须熟悉“属性”窗口的各个组成部分及其功能和设计方法。在“表单设计器”窗口中如果没有出现表单的“属性”窗口,可以单击工具栏上的“属性”按钮。“

10、属性”窗口如图12-11所示。12.1.3 表单的属性窗口 对象下拉列表框函数按钮 属性设置框选定的属性 只读属性图12-11 表单的“属性”窗口12.1.3 表单的属性窗口 在“属性”窗口的顶部,有一个对象下拉列表框,其中含有当前表单及当前表单中所有对象的名称,可在下拉列表中选取一个对象,或者用鼠标在表单上单击选中一个对象。 在“属性”窗口中,设置有5个选项卡,各选项卡的含义如下: “全部”选项卡:显示所选对象的全部属性、事件和方法程序的名称。 “数据”选项卡:显示所选对象显示和操作数据的方法。 “方法程序”选项卡:显示所选对象的方法程序和事件过程。 “布局”选项卡:显示所选对象的布局属性。

11、 “其他”选项卡:显示类、类库等其他属性和其他用户定义属性。 12.2 设置数据环境 每一个表单都包括一个数据环境。数据环境是一个对象,它包含与表单相互作用的表或视图,以及表单所要求的各表之间的关系。可以在“数据环境设计器”中直观地设置数据环境,并与表单一起保存。 12.2.1 打开数据环境设计器 “数据环境设计器”须在表单设计状态下才能打开。首先进入“表单设计器”,选择“显示”|“数据环境”选项,即可进入“数据环境设计器”。例如设置上一节创建的“教师授课浏览”表单的数据环境,首先在“项目管理器”中选择该表单并单击Modify按钮,进入表单设计器。然后选择“显示”|“数据环境”选项,即可进入数

12、据环境设计器,如图12-12所示。12.2.1 打开数据环境设计器图12-12 数据环境设计12.2.2 常用数据环境属性 表12-2是在“属性”窗口中经常设置的数据环境属性:表12-2 数据环境的主要属性设置 属 性 说 明 默认设置AutoCloseTables 控制当释放表或表单集时, 是否关闭表或视图 .T.AutoOpenTables 控制当运行表单时, 是否打开数据环境中的表或视图 .T.InitialSelectedAlias 当运行表单时选定的表或视图 12.2.3 向数据环境设计器添加、移去表或视图 向“数据环境设计器”添加表或视图时,可以看到属于表或视图的所有字段和索引。其

13、操作步骤为: 在“数据环境设计器”中,选择“数据环境”|“添加”菜单选项。 在“添加表或视图”对话框中,从列表中选择表或视图。 将表或视图从数据环境设计器中移去时,与其有关的所有关系也随之移去。其操作步骤为: 在“数据环境设计器”中选择要移去的表或视图。 选择“数据环境”|“移去”。12.2.4 数据环境设计器中关系的设置与编辑 若要在“数据环境设计器”中设置关系,应将字段从主表拖到与相关表相匹配的索引标识上或相关表的字段上。如果和主表中的字段对应的相关表中没有索引标识,系统将提示是否创建索引标识。关系设置好后,在主表和相关表之间有一条连线,表示两表之间的关系。 若要编辑关系属性,应在“属性”

14、窗口的对象列表框中选择要编辑的关系。RelationalExpr属性默认设置为主表中主关键字字段的名称。如果相关表是以表达式作为索引的,就必须将RelationalExpr属性设置为这个表达式。如果关系不是一对多关系,必须将OneToMany属性设置为.F.。12.3 基本表单设计 12.3.1 使用“表单设计器”设计表单 使用“表单设计器”进行表单设计的步骤如下: 分析表单应实现的功能,与数据库中哪些数据有关,需要哪些控件来实现功能。 创建表单,设置外观(如表单的背景色、尺寸、标题等)。 根据需要设置数据环境。 在表单上添加需要的对象(如表、视图、控件等),并调整位置、大小和整体布局。 利用

15、“属性”窗口设置对象的初始属性。 为对象编写程序代码以完成预定的要求。12.3.1 使用“表单设计器”设计表单 下面通过两个例子介绍使用“表单设计器”设计基本表单的方法。 例12-1 创建一个表单,在表单下部创建两个按钮,其中“退出”按钮用于退出表单的运行,“不显示”按钮用于删除显示信息,当点击该按钮时,则在表单上部显示的“Hello, World!”信息将被删除。 设计的操作步骤如下: 打开“表单设计器”。 在表单中添加一个标签对象。12.3.1 使用“表单设计器”设计表单 在表单上添加两个命令按钮。图12-13 添加了对象的表单12.3.1 使用“表单设计器”设计表单 设置对象的属性。 为

16、命令按钮Command1的Click事件编写程序代码。 同理为Command2按钮的Click事件编写程序代码,在“过程”下拉列表中选中Click,然后输入如下的代码: thisform.release 关闭代码编辑窗口。12.3.2 表单的保存与运行 1.表单的保存 当通过“表单向导”或“表单设计器”创建完成一个表单之后,还需要把表单保存起来。 首先要确定保存的位置,一般,一个项目文件所涉及到的所有文件如表文件、数据库表文件、查询文件、视图文件、表单文件等都保存在一个目录下面(一般使用默认路径),便于连编成为完整的应用程序。 其次要为文件命名,表单文件的扩展名为.scx,在保存的同时,系统会

17、自动为表单文件创建一个与表单文件同名的扩展名为.sct的表单备注文件。12.3.2 表单的保存与运行 2.表单的运行 表单的运行有两种方法: 以交互的方式运行表单。在“项目管理器”中,选中表单的文件名,再单击“运行”按钮即可。 命令方式运行表单,命令格式为: DO FORM 如要在命令窗口中运行例12-1中创建的表单文件“bd1.scx”,应在“命令”窗口中键入如下命令: DO FORM bd112.4 常用表单控件 Visual FoxPro 6.0提供了许多表单控件,利用这些控件用户可以设计出界面美观、功能强大的应用程序。通过“表单控件”工具栏可以创建的控件大致可以分为4类,即输出类、输入

18、类、控制类、容器类。面向对象编程首先就要设计应用程序界面,而设计界面即是排列与布局表单控件。12.4.1 输出类控件 标签(Label) 标签的功能与用处 标签是用来显示一段固定的文字信息。 标签常用的属性 Caption:标签的标题,即显示在标签控件中的固定字符串信息。 AutoSize:确定是否根据标题的长度自动调整标签的大小。 WordWrap:确定当标签标题长度超宽时,能否显示在多行,即用多行显示标题。 ForeColor:标题的字符颜色。 BackStyle:确定标签的背景是否透明,当背景设置为0(透明)时,可以显示标签后面的画面。12.4.1 输出类控件 2. 图像(Image)

19、图像控件用于显示图片。 图像的常用属性如下: Picture:要显示的图片(.bmp文件)。 BorderStyle:决定图像是否具有可见的边框。 Strethch:设置图像的剪裁方式。12.4.2 输入类控件 1. 文本框(Text) 文本框的功能与用处 文本框是一个基本表单控件,供用户输入或编辑数据。 文本框的常用属性 Alignment:文本框中的内容是采用左对齐、右对齐、居中还是自动对齐。 ControlSource:设置文本框的数据来源。 InputMask:设置文本框中输入值的格式和范围。 PasswordChar:设置输入口令时显示的字符形式。 Value:用于保存文本框中的值,

20、它的初值可以决定文本框中值的类型。 ReadOnly:确定文本框是否为只读。 Tabstop:确定输入焦点是否能够移动到该文本框。12.4.2 输入类控件 标签和文本框的区别 标签没有数据源,文本框的数据源可以是内存变量,也可以是字段。 标签不能直接编辑,文本框可以。 标签不能用“Tab”键选择,文本框可以。 例12-3 利用文本框控件输入一个数,然后单击“计算”按钮输出该数的平方值。如图12-17所示。图12-17 bd3的运行结果12.4.2 输入类控件 编辑框(Edit) 编辑框的功能与用处 编辑框是一个用于输入或更改文本的表单控件,能够录入和编辑大量的多行文字,允许自动换行并能用方向键

21、、PageUp键和PageDown键以及滚动条来浏览文本。编辑框常用来录入和编辑备注字段。这里只要把编辑框的ControlSource属性设置为某表的备注字段就可以在其中编辑这个备注字段了。 编辑框常用属性 ControlSource:设置编辑框的数据来源,通常是表的备注字段。 ReadOnly:用户能否修改编辑框中的文本。 ScrollBars:是否具有垂直滚动条。 Value:用此属性保存编辑框中的内容。12.4.2 输入类控件 列表框(List Box)和组合框(Combo Box) 列表框 使用列表框将创建一个可滚动的列表,并在其中显示一系列选项和信息,用户可以在列表中选择其中的一项或

22、多项。列表框的用途是显示表的一个字段或多个字段的内容,供用户浏览和选择。 列表框的常用属性如下: ColumnCount:设置列表框的列数,默认值为0。 ListCount:统计列表中全部选项的数目。 RowSource Type:确定RowSource属性值是下列哪种类型,一个值、表的别名、SQL语句、查询、数组、字段列表或文件列表等,如表12-3所示。 Value:当前选项的返回值,其属性可以是数值型,也可以是字符型,默认为数值型。12.4.2 输入类控件表12-3 RowSource Type表 RowSource Type 列表项的来源 0 无,由程序向列表中添加项 1 值 2 别名

23、3 SQL语句 4 查询 5 数组 6 字段 7 文件 8 结构 9 弹出式菜单12.4.2 输入类控件图12-19 “列表框生成器”对话框12.4.2 输入类控件 “列表框生成器”共有4个选项卡: 列表项:用于指定要填充到列表框中的项。填充可以是3种数据来源之一,表或视图中的字段、手工输入的数据,以及数组中的值。 样式:用于指定列表框的样式,所显示的行数,是否允许递增搜索。 布局:用于控制列表框的列宽,包含有1个复选框和1个表格。 值:包含两个组合框,分别用来指定返回值以及存储返回值的字段。12.4.2 输入类控件 组合框 组合框是文本和列表框的组合。 组合框的常用属性如下: Control

24、Source:指定用于保存用户选择或输入值的表字段。 DisplayCount:指定在列表框中允许显示的最大数目。 InputMask:对于下拉组合框,指定允许键入的数据类型。 IncrementalSearch:指定当用户键入一个字母时,控件是否和列表中的项匹配。 RowSource:指定组合框中数据的来源。 RowSourceType:指定组合框中数据源类型,其值与列表框的属性值一样。12.4.2 输入类控件 微调控件(Spinner) 微调控件的功能 微调控件可以让用户在一定范围内对数值进行增减。所谓微调就是将数值一点点地增加或减少,而增加减少的方法就是按向上或向下的箭头,每按一下默认增

25、加或减少1.00,用户也可以直接将数值通过键盘输入。 微调控件的常用属性 Increment:微调的步长。 KeyboardHighValue:能键入到微调文本中的最大值。 KeyboardLowValue:能键入到微调文本中的最小值。 SpinnerHighValue:微调控件能显示的最大值。 SpinnerLowValue:微调控件能显示的最小值。12.4.2 输入类控件 例12-5 创建表单“bd8.scx”,使用微调控件微调日期。如图12-20所示。图12-20 bd8的运行结果12.4.2 输入类控件 在“表单设计器”中进行如下的操作: 修改表单的Caption为“bd8”。 向表单

26、添加一个文本框Text1,把Text1的Value属性值设置为日期类型dd/mm/yy,再把属性ControlSource设置为一个变量名rq;再为Text1的init事件定义变量rq,然后编写如下代码: rq=Date() 向表单中添加一个微调控件Spinner1,把它的外形调到最小,然后移到Text1的右侧,再为Spinner1的UpClick事件编写如下代码: thisform.Text1.Value=thisform.Text1.Value+1 同样为微调控件Spinner1的DownClick事件编写如下代码: thisform.Text1.Value=thisform.Text1.

27、Value-1 保存表单,然后运行表单。12.4.3 控制类控件 命令按钮(Command Button)和命令按钮组(Command Group) 命令按钮 几乎所有的表单中都要设置一个或多个命令按钮,人们通过鼠标单击命令按钮下达某种指令,让计算机完成相应的操作。 命令按钮的常用属性如下: Caption:标题属性,设置按钮标题,用于说明按钮的功能。还可通过在此属性值中某个字符前插入符号“/”来设置热键,热键显示时字符下方有一条下划线。 WordWrap:折行显示属性,当中文标题超过一定宽度时,可通过设置此属性为.T.,再通过压缩按钮宽度来实现多行显示标题内容。 Picture:此属性用于设

28、置在按钮上显示一个图形,实现图文命令按钮。12.4.3 控制类控件 ToolTipText:此属性用于设置按钮的提示文本内容。 ShowTips:用于控制提示文本是否显示的开关。当此属性值为.T.时,在ToolTipText属性中设置的提示内容会显示出来。 Enabled:其值为.F.时,该命令按钮就以浅色显示,表示当前无效。 DisablePicture:当命令按钮无效时,按钮显示在此属性中设置的图片。 DownPicture:当命令按钮被按下时,按钮显示在此属性中设置的图片。12.4.3 控制类控件 命令按钮组 有时用户需要在表单上创建多个按钮,而这些按钮所执行的一系列命令又是彼此相关的。

29、 命令按钮组中的多个按钮被视为一个整体,它们可以共用一个Click 事件,也可以独立的使用Click事件,这给用户管理各个按钮并给按钮编写程序代码提供了方便。 命令按钮组的常用属性如下: BackStyle:命令按钮组是否具有透明或不透明的背景。 ButtonCount:按钮组中命令按钮的个数。 Value:命令按钮组中的各按钮被自动赋予了一个编号,如1、2、3等。当运行表单时,一旦单击某个按钮,则Value属性将保存该按钮的编号,因此在程序中通过查看Value属性的值,就可以调用为相应的按钮编写的程序代码。12.4.3 控制类控件 选项按钮组(Option Group) 选项按钮组的功能 选

30、项按钮组是一个可以包含多个选项按钮的容器,这些按钮互相排斥,用户只能从中选取一个,因而选项按钮组常常用于在有限个选项中选择其一的场合。 选项按钮组的常用属性 ButtonCount:设置选项按钮组中的按钮的个数。 ControlSource:设置按钮的数据来源,如可以设置为表中某一逻辑字段。 Value:可以判定用户选定了哪个按钮。如果按钮的控件源为数值型,且组中有5个按钮,如果选定了第3个按钮,则Value属性为3。如果没有选定按钮,则Value默认为0。12.4.3 控制类控件 复选框(Check Box) 复选框的功能 复选框用于指定某种逻辑判定,用户可以单击复选框,当其中出现一个“”时

31、表示逻辑条件为真,否则为假。复选框往往与一个逻辑型字段或一个逻辑型变量相联系,当复选的ControlSource属性为逻辑型字段,且其值为“.T.”时,则表示复选框被选中,否则复选框未被选中。 复选框的常用属性 Caption:为复选框定义名称。 ControlSource:为复选框指定数据来源,一般是表的逻辑字段或逻辑变量。 Value:用于保存复选框的当前状态值。复选框未被选中时,Value=0或.F.,否则Value=1或.T.,当Check Box变为灰色不可用时,Value=2。12.4.3 控制类控件 计时器(Timer) 计时器控件在应用程序中可用来实现定期地执行某一操作。它能周

32、期性地按一定时间间隔自动执行它的计时器事件代码。程序运行时该控件是看不见的,只在后台运行。 计时器的常用属性如下: Enabled:若想让计时器在表单加载时就开始工作,应将这个属性设置为.T.,否则设置为.F.。也可以选择一个外部事件(如命令按钮的Click事件)启动计时器。 Interval Timer:设置事件之间的毫秒数。12.4.4 容器类控件 表格(Grid) 表格的功能 表格控件可以设置在表单或页面中,用于显示表中的字段。 表格的常用属性 ColumnCount:表示表格中的列数。 RecordSource:指定数据源,即指定要在表格中显示的表。 RecordSourceType:指定数据源类型,通常取0(表)或1(别名)。 AllowAddNew:当该属性值为.T.时允许用户向表格中的表添加记录。 ControlSource:指定某表的字段为数据源。 CurrentControl:为列指定活动控件,默认为文本1。 Sparse:当此属性值为.T.时,在列中只有选中的单元格以CurrentControl属性指定

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论