《Visual FoxPro程序设计基础教程(第二版)》-李正凡-电子教案 第6章

上传人:E**** 文档编号:89401370 上传时间:2019-05-24 格式:PPT 页数:157 大小:554.50KB
返回 下载 相关 举报
《Visual FoxPro程序设计基础教程(第二版)》-李正凡-电子教案 第6章_第1页
第1页 / 共157页
《Visual FoxPro程序设计基础教程(第二版)》-李正凡-电子教案 第6章_第2页
第2页 / 共157页
《Visual FoxPro程序设计基础教程(第二版)》-李正凡-电子教案 第6章_第3页
第3页 / 共157页
《Visual FoxPro程序设计基础教程(第二版)》-李正凡-电子教案 第6章_第4页
第4页 / 共157页
《Visual FoxPro程序设计基础教程(第二版)》-李正凡-电子教案 第6章_第5页
第5页 / 共157页
点击查看更多>>
资源描述

《《Visual FoxPro程序设计基础教程(第二版)》-李正凡-电子教案 第6章》由会员分享,可在线阅读,更多相关《《Visual FoxPro程序设计基础教程(第二版)》-李正凡-电子教案 第6章(157页珍藏版)》请在金锄头文库上搜索。

1、2019/5/24,1,第6章 利用表单设计应用程序界面,设计表单 在表单中添加对象 处理对象 管理表单 控件使用要点 控件使用技巧 小结,2019/5/24,2,6.1 设计表单,设置数据环境 创建单文档和多文档界面 用表单集扩充表单,2019/5/24,3,表单设计器,VFP提供了一个功能强大的“表单设计器”,使得设计表单的工作变得又快又容易。 在“表单设计器”中可以处理下列内容: 表单中不同类型的对象。 与表单相关联的数据。 顶层表单或子表单。 能一起操作的多个表单。 基于自定义模板的表单。,2019/5/24,4,表单和表单集,表单和表单集是拥有自己的属性、事件和方法程序的对象,在“表

2、单设计器”中可以设置这些属性、事件和方法程序。 表单集包括了一个或多个表单,可以将它们作为一个整体来操作。例如,如果在表单集中有4个表单,可以在运行时用一个命令显示或隐藏它们。 可使用如下3种方法之一新建一个表单: 在项目管理器中先选定“表单”,然后单击“新建”按钮。 选择“文件”菜单中的“新建”命令,选定“表单”,并单击“新建文件”按钮。 使用CREATE FORM命令。,2019/5/24,5,表单设计器(续),如图6-1所示,“表单设计器”包含下列工具栏:“表单设计器”、“表单控件”、“布局”和“调色板”。,图6-1 “表单设计器”及其工具栏,2019/5/24,6,6.1.1 设置数据

3、环境,每一表单或表单集都包括一个数据环境。 数据环境是一个对象,它包含与表单相互作用的表或视图,以及表单所要求的表之间的关系。 可以在“数据环境设计器”中直观地设置数据环境,并与表单一起保存。 在表单运行时,数据环境可自动打开、关闭表和视图。并且,通过设置“属性”窗口中的ControlSource属性设置框,“数据环境”将帮助设置控件的ControlSource属性,在这个属性框中列出了数据环境中的所有字段。,2019/5/24,7,6.1.1 设置数据环境,若要打开“数据环境设计器”,可按如下步骤操作: (1)从“显示”菜单或快捷菜单中选择“数据环境”命令,出现如图6-2所示的窗口。 (2)

4、从快捷菜单中选择“添加”命令。 (3)在“添加表或视图”对话框中选择一表或视图添加到数据环境中去。,图6-2 数据环境设计器,2019/5/24,8,1. 常用数据环境属性,表6-1列出了属性窗口中经常设置的数据环境属性。,表6-1 常用数据环境属性,2019/5/24,9,2. 向“数据环境设计器”中添加表或视图,向“数据环境设计器”添加表或视图时,可以看到属于表或视图的字段和索引。 若要向数据环境中添加表或视图时,可按如下步骤进行: (1)在“数据环境设计器”中,从“数据环境”菜单中选择“添加”命令。 (2)在“添加表或视图”对话框中,从列表中选择一个表或视图。如果没有打开的数据库或项目,

5、通过选择“其他”来选择表。 也可以将表或视图从打开的项目或“数据库设计器”拖放到“数据环境设计器”中。 当“数据环境设计器”处于活动状态时,“属性”窗口会显示与数据环境相关联的对象及属性。在“属性”窗口的“对象”框中,数据环境的每个表格或视图,表格之间的每个关系,以及数据环境本身均是各自独立的对象。,2019/5/24,10,3. 从“数据环境设计器”中移去表,当从“数据环境设计器”中移去表时,与这个表有关的所有关系也随之移去。 若要将表或视图从“数据环境设计器”中移去,可以: 在“数据环境设计器”中选择要移去的表或视图。 从“数据环境”菜单中选择“移去”命令。,2019/5/24,11,4.

6、 在“数据环境设计器”中设置关系,如果添加进“数据环境设计器”的表具有在数据库中设置的永久关系,这些关系将自动地添加到数据环境中。 如果表中没有永久的关系,可以在“数据环境设计器”中设置。 要在“数据环境设计器”中设置关系,可将字段从主表拖动到相关表中的字段上。 如果和主表中的字段相关的表中没有索引标识,系统将提示用户是否创建索引标识。,2019/5/24,12,5. 在“数据环境设计器”中编辑关系,在“数据环境设计器”中设置了一个关系后,在表之间将有一条连线指出这个关系。 若要编辑关系的属性,可在属性窗口中从名称列表框选择要编辑的关系。 关系的属性对应于SET RELATION和SET SK

7、IP命令中的子句和关键字。 RelationalExpr属性的默认设置为主表中关键字字段的名称。 如果相关表是以表达式作为索引的,就必须将RelationalExpr属性设置为这个表达式。 例如,如果相关表以ALLTRIM(xh)作为索引,就必须将RelationalExpr属性设置为ALLTRIM(xh)。,2019/5/24,13,5. 在“数据环境设计器”中编辑关系(续),如果关系不是一对多关系,必须将OneToMany属性设置为“假”,这对应于使用SET RELATION命令时不发出SET SKIP命令。 将关系的OneToMany属性设置为“真”,相当于发出SET SKIP命令。 当

8、浏览父表时,在记录指针浏览完子表中所有的相关记录之前,记录指针一直停留在同一父记录上。 注意:如果在表单或表单集中想设置一对多关系,必须将OneToMany属性设置为“真”,甚至在数据库中已经建立了永久一对多关系时,也必须如此。,2019/5/24,14,6.1.2 创建单文档和多文档界面,VFP允许创建两种类型的应用程序: 多文档界面(MDI):各个应用程序由单一的主窗口组成,且应用程序的窗口包含在主窗口中或浮动在主窗口顶端。 单文档界面(SDI):应用程序由一个或多个独立窗口组成,这些窗口均在Windows桌面上单独显示。 由单个窗口组成的应用程序通常是一个SDI应用程序,但也有一些应用程

9、序综合了SDI和MDI的特性。 例如,Visual FoxPro 将调试器显示为一SDI应用程序,而它本身又包含了自己的MDI窗口。,2019/5/24,15,6.1.2 创建单文档和多文档界面(续),为了支持这两种类型的界面,VFP允许创建以下几种类型的表单,如图6-3所示。,图6-3 子表单、浮动表单和顶层表单,2019/5/24,16,6.1.2 创建单文档和多文档界面(续),子表单:包含在另一个窗口中,用于创建MDI应用程序的表单。 子表单不可移至父表单(主表单)边界之外,当其最小化时将显示在父表单的底部。若父表单最小化,则子表单也一同最小化。 浮动表单:属于父表单(主表单)的一部分,

10、但并不包含在父表单中,可以被移至屏幕的任何位置,但不能在父窗口后台移动。浮动表单也可用于创建MDI应用程序。 若将浮动表单最小化时,它将显示在桌面的底部。 如父表单最小化,则浮动表单也一同最小化。 顶层表单:没有父表单的独立表单,用于创建一个SDI应用程序,或用作MDI应用程序中其他子表单的父表单。,2019/5/24,17,1. 指定表单类型,创建各种类型的表单的方法大体相同,但需设置特定属性以指出表单应该如何工作。 如果创建的是子表单,则不仅需要指定它应在另外一个表单中显示,而且需要指定是否是MDI类的子表单,即指出表单的最大化是如何工作的。 如果子表单是MDI类的,它会包含在父表单中,并

11、共享父表单的标题栏、标题、菜单及工具栏。 非MDI类的子表单,最大化时将占据父表单的全部用户区域,但仍保留它本身的标题和标题栏。,2019/5/24,18,1. 指定表单类型(续),若要建立一个子表单,可以: (1)用“表单设计器”创建或编辑表单。 (2)可将表单ShowWindows属性设置为下列值之一: 1)0:In Screen。子表单的父表单将为VFP主窗口。 2)1:In Top-Level Form。当子窗口显示时,子表单的父表单是活动的顶层表单。如果希望子窗口出现在顶层表单窗口内,而不是出现在VFP主窗口内时,可选用该项设置。 (3)如果希望子表单最大化时与父表单组合成一体,可设

12、置表单的MDIForm属性为“真”(.T.);如果希望子表单最大化时仍保留为一独立的窗口,可设置表单的MDIForm属性为“假”(.F.)。,2019/5/24,19,1. 指定表单类型(续),浮动表单是由子表单变化而来的。若要指定为浮动表单,可以: (1)用“表单设计器”创建或编辑表单。 (2)可将表单的ShowWindow属性设置为以下值之一: 1)0:在屏幕中。浮动表单的父表单将出现在VFP主窗口。 2)1:在顶层表单中。当浮动窗口显示时,浮动表单的父表单将是活动的顶层表单。 (3)将表单的Desktop属性设置为“真”。 若要指定顶层表单,可以: (1)用“表单设计器”创建或编辑表单。

13、 (2)将表单ShowWindow属性设置为“2-作为顶层表单”。,2019/5/24,20,2. 显示位于顶层表单中的子表单,如果所创建的子表单中的ShowWindow属性设置为“1-在顶层表单中”,则不需直接指定一顶层表单作为子表单的父表单。而是在子窗口出现时,指定子表单成为父表单。 若要显示位于顶层表单中的子表单,可以: (1)创建顶层表单。 (2)在顶层表单的事件代码中包含DO FORM命令,指定要显示的子表单的名称。例如,在顶层表单中建立一个按钮,然后在按钮的Click事件代码中包含如下命令: DO FORM Subform 注意:在显示子表单时,顶层表单必须是可视的、活动的。因此,

14、不能使用顶层表单的Init事件来显示子表单,因为此时顶层表单还未激活。 (3)激活顶层表单,如有必要,触发用以显示子表单的事件。,2019/5/24,21,3. 隐藏Visual FoxPro主窗口,在运行顶层表单时,可能不希望Visual FoxPro主窗口是可视的。使用应用程序对象的Visible属性,按要求隐藏或显示Visual FoxPro主窗口。 若要隐藏Visual FoxPro主窗口,可以: (1)在表单的Init事件中,包含下列代码: Application.Visible=.F. (2)在表单的Destroy事件中,包含下列代码: Application.Visible=.T

15、. 在某些方法程序或事件中,可使用THISFORM.Release命令关闭表单。 注意:也可以在配置文件中包含下列代码,用以隐藏Visual FoxPro主窗口: SCREEN=OFF,2019/5/24,22,4. 在顶层表单中添加菜单,若要在顶层表单中添加菜单,可以: (1)创建顶层表单的菜单。 (2)将表单的shoewindow属性设置为“2-作为顶层表单”。 (3)在表单的init事件中,运行菜单程序并传递两个参数: DO menuname.mpr WITH oForm, IAutoRename 其中,oForm是表单的对象引用。 在表单的Init事件中,THIS作为第一个参数进行传递

16、。 IAutoRename指定了是否为菜单取一个新的名字。 如果计划运行表单的多个实例,则将.T.传递给IAutoRename。 例如,可以使用下列代码调用名为mySDImenu的菜单: DO mySDImenu.mpr WITH THIS, .T.,2019/5/24,23,6.1.3 用表单集扩充表单,可以将多个表单包含在一个表单集中,作为一组处理。表单集有以下优点: 可同时显示或隐藏表单集中的全部表单。 可以可视地调整多个表单,以控制它们的相对位置。 因为表单集中所有表单都是在单个.SCX文件中用单独的数据环境定义的,可自动地同步改变多个表单中的记录指针。如果在一个表单的父表中改变记录指针,另一个表单中子表的记录则被更新和显示。 注意:运行表单集时,将加载表单集所有表单和表单的所有对象。加载带很多控件的多个表单会花几秒钟时间。,2019/5/24,24,1. 创建表单集,表单集是一个包含有一个或多个表单的父层次的容器。 可在“表单设计器”中创建表单集。 若要创建表单集,可从“表单”菜单中,选择“创建表单集”选项。 如果不需要将多个表单处理为表单组,则不必创建表单集。 创建表单集以

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号