《《表单设计与应用》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《表单设计与应用》PPT课件.ppt(35页珍藏版)》请在三一办公上搜索。
1、Visual FoxPro,1,第十一章,表单设计与应用,Visual FoxPro,2,11.1 表单的建立与运行11.2 表单的操作11.3 常用表单控件11.4 表单的应用,Visual FoxPro,3,11.1.1 用表单设计器建立表单1 表单设计器窗口方法1:选择“文件”菜单中“新建”选项,指定文件类型为“表单”,然后单击“新建文件”按钮。方法2:在“项目管理器”中选择“文档”选项卡中的“表单”,然后单击“新建”按钮,并在打开的“新建表单”对话框中选择“新建表单”。方法3:在命令窗口输入CREATE FORM命令。,11.1 表单的建立与运行,Visual FoxPro,4,2 表
2、单控件工具栏的初步认识(1)怎样在表单中加入一个对象 在表单中加入对象的方法非常简单,只要首先将鼠标在控件工具框移动到所需要的控件,并单击鼠标主按钮,然后到表单的相应位置拖放出一个图形,就在表单中加入了一个继承了所选控件的全部属性和方法程序的对象。(2)常用控件的初步认识标签控件(Label):不能绑定数据,只能起提示作用。命令按钮(Command Button):在应用系统中,命令按钮是交互的主要工具,人们通过按钮向应用系统发布操作命令,按钮通过执行其方法程序响应人们的命令。命令组(CommandGroup):关于命令的容器,,Visual FoxPro,5,选项按钮组(OptionGrou
3、p):选项按钮即一般所称的单选按文本框(TextBox):文本框是一种基本控件,它可以捆绑关系数据表的一个非备注型字段数据,从而实现通过文本框对象对数据表的字段增加和修改的目的。编辑框(EditBox):编辑框可以绑定一个关系表中的备注型字段数据。组合框(ComboBox):组合框兼有列表框和文本框的功能。它有下拉组合框和下拉列表框两种形式。组合框可以绑定数据表中的一个或多个字段。列表框(ListBox):与组合框类似。,Visual FoxPro,6,复选框(CheckBox):复选框也是构成交互式操作界面的有力工具。复选和选项按钮的的差别是:复选按钮可以兼选,而选项按钮只能单选。微调按钮(
4、Spinner):用户可以使用微调按钮对对其所绑定的整数型字段数据进行维护。表格(Grid):表单中一种功能强大的控件。可以绑定指定的数据表,从而实现通过表格对象对数据表的进行维护的目的。计时器(Timer):可以定时执行某种操作。页框(Page Frame):是一个容器控件,可以构建含有“选项卡”的界面。,演示例11.1(1)制作如图11.1所示的表单(2)在上图的基础上加入一个命令按钮,按钮的显示文字为“统计教师人数”,Visual FoxPro,7,3 表单中的对象设计(1)向表单中加入对象 从表单控件工具栏中选定所需要的控件,并将其派生对象加入到表单中。加入表单后该对象将继承所选择控件
5、的全部特征,名称以对象所属的“基类”名加上数字编号组成,对象名称可以重新设定。(2)删除表单中的对象 把鼠标移到要删除的对象上,单击辅按钮,选择“剪切”,即可删除这个对象。注意,如果是由一个容器控件(如自定义的命令组子类)派生而成的一个容器对象,则不能删除该容器对象中的某成员对象,只能删除容器整体。(3)在表单中进行对象属性设定 将鼠标移到要设置属性的对象上,单击辅按钮,选择“属性”,就进入属性设置窗口。,Visual FoxPro,8,(4)为表单中的对象设计代码 将鼠标移到要添加代码的对象上,单击辅按钮,选择“代码”,出现代码设计窗口,选择要设计代码的事件,然后在代码框中编写代码。4 表单
6、设计的基本步骤表单设计可按以下步骤进行:(1)进行规划,最好画一张草图,在上面标出各对象的位置、标题、所属父类、对象的大致作用、表单中要使用的表、表间的对应关系以及对象间的相互协调与支持。(2)打开表单设计器窗口。(3)如果表单要使用到表,需要首先为表单建立“数据环境”。数据环境也是Visual FoxPro 中的一种对象(不可视)。,Visual FoxPro,9,建立数据环境的步骤是:将鼠标移到表单的任一空白位置(不能指向任何对象),单击辅按钮,选择“数据环境”。选择与表单对应的数据表,单击“添加”按钮,选中的数据表会加入到数据环境设计器中。如果要加入多个表,应重复这一过程,然后单击“关闭
7、”按钮退出数据表的加入操作。在数据环境设计器中建立表间的关联关系。在表单中加入其他对象并进行布局排列建立对象与表的对应关系。可以与表字段进行联系的对象有:表格(Grid)、文本框(TextBox)、编辑框(EditBox)、列表框(ListBox)等等。,Visual FoxPro,10,建立这类对象与数据表字段的关联的方法是:文本框、编辑框、列表框 对于这些非容器类的对象,设定其与数据表对应字段的关联时,只需要将其ControlSource 属性设置为数据表的对应字段名即可。在表单中加入了数据环境对象后,这些字段的ControlSource 属性对应一个下拉列表框,从列表项选择一个字段与对象
8、关联。表格 表格是一种容器对象,其成员对象是列,默认的对象名是Column1、Column2 等,而列也是一个容器对象,起成员对象是Header 和Text。,Visual FoxPro,11,11.1.2 用表单向导建立表单 Visual FoxPro 中有两个个表单向导,各种向导所建立的表单原型能够完成:(1)表单向导:整个表单针对一个数据表进行诸如查询、修改、插入、删除等操作;(2)一对多表单向导:整个表单针对两个数据表,而且这两个数据表间存在一对多的关系。,Visual FoxPro,12,例11.2 设计图11.2所示的表单例11.3 用表单向导做上例例11.4 建立一个表单,查询每
9、位学生的选课情况(用一对多向导),Visual FoxPro,13,11.1.3 表单的运行有3种方法可以运行表单:(1)直接使用命令。在命令窗口,直接输入命令:DO FORM(2)在表单设计器窗口,选择“表单”菜单中的“运行”命令,或直接单击工具栏中的红色惊叹号。(3)在项目管理器中,选中“文档”选项卡并指定要运行的表单,单击“运行”按钮。,Visual FoxPro,14,11.2 表单的操作,11.2.1 表单的属性参书P200页,Visual FoxPro,15,11.2.2 表单的事件与方法 表单可以响应40多个事件和方法,下面对这几个常用事件和方法做一些说明:1 Init 事件 创
10、建表单时触发该事件,从而执行为该事件编写的代码。Init代码通常用来完成一些关于表单的初始化工作。2 Destory事件 释放表单时触发该事件,该方法代码通常用来进行文件关闭,释放内存变量等工作。3 Click事件 用鼠标单击对象对触发该事件,从而执行为该事件编写的代码。,Visual FoxPro,16,4 Show 和Hide 是一对方法 Show 使表单可见,而Hide则是隐藏表单。隐藏后的表单可以通过调用Show方法恢复显示。5 Release 方法 从内存中释放表单。6 Refresh 方法 刷新表单数据。当表单中各种对象所对应的数据发生改变时,有时并不自动的反映在表单界面上,需要使
11、用 Refresh 刷新,才能显示最新数据。,Visual FoxPro,17,11.2.3 数据环境 每一个使用了数据表的表单都包括一个数据环境。数据环境是一个容器对象,它用来定义与表单相联系的数据实体(表、视图)的信息及其相互联系。表单(集)的数据环境包括了与表单交互作用的表和视图,(cursor类对象)以及表单要求的表之间的关系(relation类对象)。引入数据环境的目的:打开或运行表单时它自动地打开表单所基于的表或视图;将表单属性窗口中的ControlSource属性与数据环境中的所有字段相连;关闭或释放表单时自动地关闭表和视图。在创建表单时,首先要设置表单的数据环境,以确定表单所用
12、到的表和视图。,Visual FoxPro,18,1 游标(Cursor)类对象 当存储在磁盘上的一个数据表文件被打开时,系统会在内存中建立一个该表的临时文件,内存中的临时文件实际上是磁盘文件的一个映象,所有数据库的操作修改命令都是针对这个映象进行的,当发布数据更新TableUpdate()命令或关闭数据文件的命令后,系统再把这个映象文件存入磁盘,从而完成对磁盘文件的修改。Cursor 类对象也称为游标对象,它用来定义临时表的相关信息。2 关系(Relation)类对象 如果表单所关联的数据表多于一个,数据环境容器中有一个对象 Relation 用来定义这几个表(视图)间的关系。,Visual
13、 FoxPro,19,3 数据环境(DataEnvirinment)容器 数据环境是包括了Cursor和Relation 两类对象的一个容器,该容器和其所含对象一起定义了表单中的数据源。4 数据环境设计器 可以使用完全的编程方式建立数据环境,但大多数情况下都是用数据环境设计器来建立表单的数据环境。例 建立一个学生选课表单。表单中有3个对象,标签对象显示这个表单的标题:“学生选课情况查询”,左侧的列表框对象中从“学生”表中选择学生的名字,右侧的表格对象显示被选中的学生的选课情况,当重新选择一个学生时,表格中的数据会自动变化。(参书),Visual FoxPro,20,操作步骤如下:(1)打开表单
14、设计器窗口。(2)为空白表单加入第一个对象:数据环境。在表单空白处,单击鼠标辅按钮,选择“数据环境”,出现一个数据环境设计器。在数据环境设计器中,单击鼠标辅按钮,选择“添加”,首先选择父表“学生”,单击“添加”,然后选择子表“选课”,单击“添加”,单击“关闭”,退出数据表添加过程,按Ctrl+W,退出表单设计过程。数据环境设计器会自动修改其Cursor和Relation属性。(3)退出数据环境设置后,为表单加入一个文本框对象、一个列表框对象、一个表格对象,并用鼠标对3个对象进行大致布局。,Visual FoxPro,21,(4)使用生成器设置列表框和表格对象的属性 把鼠标移到列表框对象上,单击
15、辅按钮,选择“生成器”,在生成器中选择对象所关联的字段,然后单击“确定”。(5)直接修改标签对象的Caption属性:“学生选课情况查询”,FontSize:22,ForeColor:0,0,255。保存表单。本例中数据环境对象、列表框对象及表格对象的属性都是借助于生成器这种辅助工具完成的,实际开发过程中,设计人员也往往是尽量采用生成器,只有生成器不能实现的功能才手工设置,这样能有效地减少错误,提高工作效率。,Visual FoxPro,22,11.2.4 表单对象的布局 表单设计中还有一个问题就是表单对象的布局:包括对象的大小、对象的位置设计。Visual FoxPro 还提供了一个“表单布
16、局工具栏”。选定表单中的某个对象后(即用鼠标单击某个对象,被选中的对象边框和其他对象不同),可以使用布局工具栏中的相应按钮让其“水平居中”、“垂直居中”等操作;当同时选择一个以上的对象时(选中一个对象后,把鼠标移到其他对象,并按住Shift键并单击某个对象)也可进行同样的操作。还可以使用表单布局工具栏使所有被选中的对象执行“左对齐”、“右对齐”、“顶边对齐”、“底边对齐”、“相同高度”、“相同宽度”、“相同大小”等操作。当鼠标移到工具栏中的某个图标上时,会出现图标的名字,单击鼠标主按钮,就会对选定对象执行某个操作。,Visual FoxPro,23,11.3.1 命令按钮控件 命令按钮是最简单
17、也是最常见的一种控件,由其派生的命令按钮对象在表单中随处可见。,11.3 常用表单控件,例11-1 设计一个如图的密码输入窗口,要求最多允许输入3次密码(参书P205default、cancel),Visual FoxPro,24,11.3.2 命令按钮组控件 可以将命令按钮组成一组,对组中的按钮即可单独操作,也可作为一个组来统一操作。设计者可以为组中的每个按钮单独设计事件代码,也可以为整个按钮组设计一个事件代码,当一个事件(如Click)在组中的某个按钮上发生时,命令按钮组的 Value 属性指明该事件发生在哪个按钮。,例11-2 在表单底部创建一个命令按钮组,Visual FoxPro,2
18、5,11.3.3 文本框控件 文本框是用来在应用系统与用户之间进行数据交互的一种常用工具,它允许用户添加或编辑保存在表中非备注字段中的数据。11.3.4 编辑框控件 编辑框也是用来输入用户的数据的。在编辑框中允许用户编辑长字段或备注字段文本,允许自动换行并能用方向键、PageUp 和 PageDown 键以及滚动条来浏览文本。文本框输入一段数据;编辑框输入多段数据,可换行 演示,Visual FoxPro,26,11.3.5 复选框控件 复选框可以用来表示某些状态是否成立,其值是一个逻辑量。复选框也是一种经常使用的控件。例ex11-3 设计一个表单,要求能根据sb表来统计车间任意组合后拥有的设
19、备台数11.3.6 组合框控件 组合框兼有列表框和文本框的功能。有两种形式的组合框,即下拉组合框和下拉列表框11.3.10 列表框控件 列表框为用户提供了包含一些选项和信息的可滚动列表。列表框中,任何时候都能看到多个项,Visual FoxPro,27,例ex11-4 用bmdm表的代码来修改sb表的部门字段。要求sb表在列表框显示,bmdm表在组合框显示,当确定一个记录后,便课用组合框的选项来替代sb表的部门字段值(注意combo1框的controlsource)11.3.7 单选按钮控件 单选按钮组是包含单选按钮的容器。通常,单选按钮允组用来由用户指定对话框中几个操作选项中的一个。例ex1
20、1-5 设计一个能编辑或浏览关于设备的4个数据库表的对话框11.3.8 微调控件 使用微调控件可以让用户通过“微调”尖头来选择所需要的数据,直接在微调框中直接键入所需要的数据。,Visual FoxPro,28,11.3.11 表格控件 表格对象能在表单或页面中显示并操作(编辑修改)表格中行和列中的数据。设计者常使用表格对象来创建一对多表单,例如学生选课情况查询表单。11.3.12 计时器控件 计时器控件与用户的操作独立。它只对时间作出反应,以一定的间隔重复地执行某种操作。注意,计时器的 Enabled 属性和其他对象的 Enabled 属性不同。对大多数对象来说,Enabled 属性决定对象
21、是否能对用户引起的事件作出反应。对计时器控件来说,将 Enabled 属性设置为“假”(.F.),会挂起计时器的运行。,Visual FoxPro,29,计时器的事件与响应:当一个计时器的时间间隔(由Interval属性值规定)过去后,Visual FoxPro 将产生一个 Timer 事件。例ex11-6 设计一个电子钟,要求不直接使用TIME()函数。一个电子钟至少需要两个对象,一个时钟信号发生器和一个显示器,可以使用一个文本框作为显示器,而用计时器作为时钟信号发生器。设计步骤如下:1 建立一个新表单,并在表单中加入一个文本框对象和一个计时器对象。2 在表单的Load事件代码中加入一个语句
22、:PUBLIC rh,rm,rs&分别存放时间的时、分、秒值3 将文本框的FontSize 属性设置为 18,并在其Init事件代码中加入一个语句:This.Value=time()&文本框建立时初始化为系统时间,Visual FoxPro,30,4 将计时器的Interval 属性设置为1000(1秒钟触发一次timer事件),并为其设计Timer事件代码。代码如下:rt=ThisForm.Text1.Value&从文本框中获取当前时间rh=VAL(SUBSTR(rt,1,2)rm=VAL(SUBSTR(rt,4,2)rs=VAL(SUBSTR(rt,7,2)DO CASE CASE rs6
23、0&秒数小于60,时分数值不变,直接对秒加1 rs=rs+1 CASE rm60&分指示要改变 rm=rm+1 rs=0 CASE rh24&时指示要改变 rh=rh+1 rm=0 rs=0,Visual FoxPro,31,OTHERWISE rh=0 rm=0 rs=0ENDCASErh1=str(rh,2)&将数值转化为字符,并注意在一位数前补0IF SUBSTR(rh1,1,1)=THEN rh1=0+SUBSTR(rh1,2,1)ENDIFrm1=str(rm,2)IF SUBSTR(rm1,1,1)=THEN rm1=0+SUBSTR(rm1,2,1)ENDIFrs1=str(rs
24、,2),Visual FoxPro,32,IF SUBSTR(rs1,1,1)=THEN rs1=0+SUBSTR(rs1,2,1)ENDIFThisForm.Text1.Value=rh1+:+rm1+:+rs1ThisForm.RefreshRETURN,Visual FoxPro,33,11.3.13 页框控件 页框是“页面”的一种容器,而“页面”也是一种容器,可以放置任何控件、容器和自定义对象,一个页面在运行时对应一个屏幕窗口。表单的一个窗口幅面有限,如果在一个应用中要涉及到的对象很多,在一个窗口不好布局时,可以把整个表单中的对象按联系的紧密程度进一步划分为小的模块,把一个模块中的对象
25、在一个页面中进行布局,这样,整个窗口就显得简要、清晰,也不至于因为一个窗口放置的对象太多而弄得眼花缭乱,找不到所需要的信息。页框就正是为了这样的目的而设计的一种容器类,是Visual FoxPro 的一个基类。页框建立在表单上,页面建立在页框上,经过页框的处理后,一个表单中的全部对象就分布到了多个窗口。,Visual FoxPro,34,例11-7 建立一个包含两个页面的页框,第一个页面显示学生表的信息,第二个页面显示选课表的信息,并在两个页面间建立相应的联系,即在学生表中选种某位学生,在第二个页面中自动显示期选课及成绩,Visual FoxPro,35,11.4.1 系统登录表单 每个应用系统都有自己的用户群,在进入一个应用系统前,常有一个登录过程,目的就是验明使用者的身份,防止未授权用户进入系统,从而保证系统安全。在登录界面的文本框输入登录者姓名,下面的文本框输入编号,为保密,这里输入的字符均显示为星号(*)。演示实验指导实验十一、十二、十三、十四,11.4 表单的应用,