第九章表单(Form)和面向对象的程序设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第九章表单(Form)和面向对象的程序设计9.1表单及表单设计.......................................................................................................................19.2面向对象应用程序的组装“模块”:VFP类与对象..........................................................169.3表单对象的应用实例(大学生通用习题测试系统).........................................................369.4设置表单或表单集模板(Template).....................................................................................49VFP的表单(Form)在有的书上叫作“窗体”,是用户常用的对数据库察看和输入数据的屏幕“界面”。它提供了丰富的能反应用户事件的对象集让用户方便地完成信息管理的任务,所以表单远非只是界面的作用。VFP提供了一个非常强的表单设计器(FormDesigner),它是可视化的面向对象结构的工具。它与以前的屏幕产生器最大的不同不只是设计界面变更,最重要的是设计结构与设计概念真正转到了面向对象程序。本章主要介绍表单设计器和表单设计(同时提及与其有关的面向对象程序设计的对象、类、属性、事件和方法等),所产生的表单(.SCX)文件与报表(.FRX)文件、菜单(.MNX)文件等一样,可由项目管理器统管起来,生成应用程序(见第十章项目管理器的内容)。9.1表单及表单设计表单设计是VFP面向对象程序设计最典型的使用实例。表单设计器是创建表单“组装”应用程序的有力工具。VFP的表单设计器使用户能快速、方便地设计表单。它可以:(1)定数据到表单。(2)多个表单一起操作。(3)具有各类型的对象在表单上。(4)具有基于自定义模板(templates)的表单。(5)表单(forms)和表单集(formsets)是具有自己的(可以在表单设计器中设置的)属性、事件、和方法的对象。表单集由一个或多个表单组成,它可以作为一个整体单元操作。例如,如果在表单集中有4个表单,可以运用单个命令将之作为一个整体单元来显示或隐蔽。9.1.1表单的类型要设计表单,必须先认清楚表单的类型。1.从创建单文档和多文档界面来分表单类型VFP允许创建两种类型的应用程序:(1)多文档界面(MDI)各个应用程序由单一的主窗口组成,且应用程序和窗口含在主窗口中或浮动在主窗口顶端。VFP基本上是一个MDI应用程序,带有包含于VFP主窗口中的命令窗口,编辑窗口和设计窗口。(2)单文档界面(SDI)应用程序由一个或多个独立窗口组成,这些窗口均在Windows桌面上单独显示。MicrosoftExchange即是一个SDI应用程序的例子,在该软件中打开的每条消息均显示在自己独立的窗口中。由单个窗口组成的应用程序通常是一个SDI应用程序,但也有一些应用程序综合了SDI和MDI的特性。例如,VFP将调试器显示为一SDI应用程序,而它本身又包含了自己的MDI窗口。为了支持这两种类型的界面,VFP允许创建以下几种类型的表单:①子表单:包含在另一个窗口中,用于创建MDI应用程序和表单。子表单不可移至父表单(主表单)边界之外,当其最小化时将显示在父表单的底部。若父表单最小化,则子表单也一同最小化。②浮动表单:属于父表单(主表单)的一部分,但并不是包含在父表单中,而且,浮动表单可以被移至屏幕的任何位置,但不能在父窗口后台移动。若将浮动表单最小化时,它将显示在桌面的底部。若父表单最小化,则浮动表单也一同最小化。浮动表单也可用于创建MDI应用程序。③顶层表单:没有父表单的独立表单,用于创建一个SDI应用程序,或用作MDI应用程序中其他子表单的父表单。顶层表单与其他Windows应用程序同级,可出现在其前台或后台,并且显示在Windows任务栏中。2.从表单用途分类从表单用途分类,主要有以下两类:可作为应用程序的主屏幕或作为数据库表数据信息的输入、输出显示屏幕。(1)作为应用程序主屏幕的表单如图9-2是“大学生通用习题测试系统”的主屏幕表单。图9-2应用程序的主屏幕表单逐一按该表单的6个按钮,可分别进入5个子系统或返回上级表单(返回图10-11用户身份确认表单)。各按钮进入的子系统功能如下:(a)用户定义子系统可对人员进行增、删和修改操作等。(b)成绩浏览子系统可对指定学生的成绩进行查看,对指定班级的学生所完成的同一试题进行查看。(c)题单设置子系统教师可自行设定试题单。(d)动态监测子系统学生在完成试题期间,教师可实时监测成绩。(e)习题练习子系统学生可自行出题做练习。(2)作为数据库表数据的输入、输出显示屏幕的表单如图9-3,就是按图9-2的“用户定义”按钮后出现的“用户定义”表单屏幕。该表单上有“教师”、“班级”和“学生”三个页面,分别对应数据库表教师库.DBF、班级库.DBF和学生库.DBF。页面(如:教师页面)上的文本框对象(如:txt教师编号等)和编辑框对象(如:edt备注)分别对应库表(如:教师.DBF)的一般字段和备注字段,表单可显示其输入信息。在该表单上的“教师组合框”控件中选择一教师姓名后,页面上会显示该教师记录的输出信息。图9-3数据库表数据输入、输出显示屏幕的表单该表单上的“新增”、“修改”、“删除”和“方弃”按钮(控件)按下后,分别可插入、修改、删除、放弃修改该库表的一记录。“保存”按钮按下后,可将上述更改保存到磁盘上该库表。“返回”按钮控件按下后,可返回到上级表单,即“主屏幕”表单。9.1.2创建新表单可以在表单设计器中创建新表单,也能看到各个对象如何象你设计的那样呈现给用户。为创建一个新表单,可以在项目管理器中选择表单(Forms)和选“新建”(New);或者从“文件”(File)菜单选“新建”(New),选择“表单”(Form),和选“新文件”(NewFile);或者使用CREATEFROM命令。以上都是用启动表单设计器创建表单,创建之后进而用表单设计器修改表单。此外,还可使用表单向导建立即用表单,以及使用快速表单建立简单表单,并自行添加控件。具体操作方法,前者是:在新建(New)对话框选“表单”(Form)后,选“向导”(Wizard),或者从工具(Tools)菜单中,选“向导”(Wizard),并选取“表单”(Form)访问表单向导。后者是:从表单(form)菜单中选择快速表单(QuickForm),快速表单将启动表单生成器(FormBuilder),并根据选择的字段样式把表或视图中选定的字段快速添加到表单中。可以根据需要定制表单。在设计或修改表单时,利用表单设计器的工具栏可以快速访问常用命令、布局、对齐,以及颜色的控制等。使用操作方法与报表设计器的工具栏类似。1.扩展表单为表单集可以将多个表单放在一个表单集中作为一组来操作它们。表单集有如下好处:①可以同时显示或隐蔽全部表单。②可以一次可视地安排多个表单去控制它们的相对位置。③用在表单集级所建立的数据环境,可以同时在多个表单中自动置记录指针。如果在一个表单的父表中改变记录指针,则其它表单中的“儿子”记录也被更新和显示。当运行表单集时,仅需几秒钟时间表单集里的全部表单便被装载。表单集是一个或多个表单的一个“父亲”容器。在表单设计器中能建立一个表单集。(1)建立表单集可从“表单”(Form)菜单选择“创建表单集”(CreateFormset)来建立它。如果不想用多个表单作为一个表单组去工作,就不必建立表单集。例如,可为前面讲到的“大学生通用习题测试系统”创建表单集fset(可先将表单集中的Form1的Caption属性改为“登录屏幕”,建立好“登录屏幕”表单退出时将表单名取名为fset)。一旦建立了一个表单集便可以对它添加表单了。(2)添加和移除表单为添加另外的表单到表单集,可从“表单”(Form)菜单选“添加新表单”(AddNewForm)。为从表单集去掉一个表单,可以在表单设计器底部的“表单”(Form)框选择表单,然后从“表单”(Form)菜单选“移除表单”(RemoveForm)。例如,可在表单集中添加新表单:主屏幕、用户定义屏幕、成绩浏览屏幕、题单设置屏幕、动态监测屏幕、习题练习屏幕和测试屏幕等表单。(3)移除一个表单集有时在表单集中仅有一单个表单,可以移去表单集以便只有表单。为去掉一个表单集,可从表单(Form)菜单选“移除表单集”(RemoveFormset)。表单存贮在带.SCX扩展名的表格式文件中。各表单的父亲容器是表单集。各控件的父亲容器是它放于其上的表单。注意:当运行表单集时,可将不想显示的表单的可视(Visible)属性设置为假(.F.),反之设置为真(.T.)。2.设置数据环境表单和表单集的数据环境包括表单交互的表(Tables)和视图(Views),以及表单所期望的表之间的关系。可以在数据环境设计器(DataEnvironmentDesigner)中可视地设计数据环境,并且用表单或表单集存贮它。使用数据环境:.当表单打开或运行时,打开表或视图。.用数据环境中的全部字段,填充属性窗口中的ControlSource属性设置框。.当表单关闭或释放时,关闭表。可以从显示(View)菜单选数据环境(DataEnvironment)来打开数据环境设计器,也可以从表单或表单集单击右键启动右键菜单选数据环境。在属性窗口中一般的数据环境属性设置如表9-1所示。表9-1属性描述缺省设置AutoCloseTables当表或表单集释放时,控制是否表和真(.T.)视图被关闭。AutoOpenTables当表单运行时,控制数据环境中的表和视图是否打开。真(.T.)InitialSelectedAlias当表单运行时,被选择的表或视图。在设计时,如果没有指定,则选定在运行时第一个加到数据环境的临时表。其中:视图详见第十一章。(1)添加表(tables)或视图(View)到数据环境设计器和从数据环境设计器去掉表当添加表或视图到数据环境设计器时,可以看见属于表或视图的字段和索引。①添加一个表或视图到数据环境设计器,可以:在数据环境设计器,从数据环境(DataEnvironment)菜单选“添加”(Add),再在“添加表或视图”对话框中,从列表选表或视图;或者,如果没有数据库或项目被打开,选“其它”(Other)去选择一个表。例如,可在表单集fset的数据环境设计器中添加库表教师.DBF,班级.DBF等。可从打开的项目拖一个表或视图到数据环境设计器,或者从右键(shortcut)菜单选“添加”(Add)。当然,也可从数据环境设计器拖出字段和表、或视图到表单。当数据环境设计器是活动的时,属性(Properties)窗口显示与数据环境相联系的对象和属性,在数据环境中的各个表或视图,表之间的各关系和数据环境自己都是属性窗口对象框(Objectbox)中各个独立的对象。可从数据环境设计器右键菜单选“属性(P)”,提出属性窗口。②为从数据环境设计器去掉一个表或视图,可以:在数据环境设计器,选择表或视图,再从数据环境(DataEnviroment)菜单选“移去”(Remove)。这样去掉一个表以后,那个表被调用的任何关系也被去掉。(2)在数据环境设计器中设置关系(如图9-4所示)如果添加在数据库中具有永久关系设置的表到数据环境设计器,则关系自动加进数据环境。如果这些表不具有永久关系,仍然可以在数据环境设计器中给它们设置关系。图9-4具有表间关系设置的数据环境设置为在数据环境设计器中设置关系,可以从主表拖一个字段到所关系的表的匹配索引标识上。也可从主表拖一个字段到所关系的表中的一个字段上。如果在所关系的表中没有索引标识对应主表中的字段,系统提示去建立索引标识。(3)在数据环境设计器中编辑关系当在数

1 / 50
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功