Visual FoxPro 程序设计

37
Visual FoxPro 程程程程 河河河河河河河河河 22/6/8

description

Visual FoxPro 程序设计. 河南财专信息工程系. 2014/11/6. 第 9 章 表单设计. 9.1 表单向导 9.2 表单设计器 9.3 类的设计. 第 9 章 表单设计. 9.1 表单向导. 在 VFP 中,对话框、向导、设计器等各种窗口统称为表单。表单是最常用的用户操作界面工具。表单文件的扩展名为 SCX ,表单备注文件的扩展名为 SCT 。 VFP 提供了两种表单设计工具 — 表单向导与表单设计器。 9.1 表单向导 - PowerPoint PPT Presentation

Transcript of Visual FoxPro 程序设计

Page 1: Visual FoxPro  程序设计

Visual FoxPro 程序设计

河南财专信息工程系

23/4/20

Page 2: Visual FoxPro  程序设计

第 9章 表单设计

9.1 表单向导

9.2 表单设计器

9.3 类的设计

Page 3: Visual FoxPro  程序设计

在 VFP 中,对话框、向导、设计器等各种窗口统称为表单。表单是最常用的用户操作界面工具。表单文件的扩展名为SCX ,表单备注文件的扩展名为 SCT 。 VFP 提供了两种表单设计工具—表单向导与表单设计器。9.1 表单向导表单向导能引导用户对选定表产生实用的表单维护窗口,窗口中含有所选取的字段,还包含供用户操作的各种按钮,具有翻页、编辑、查找、打印等功能。表单向导能产生两种表单:单表表单和一对多关系表单。

9.1 9.1 表单向导表单向导

第 9章 表单设计

Page 4: Visual FoxPro  程序设计

例:使用表单向导创建一个能维护TEACHER.DBF 的表单。操作步骤:1.打开表单向导:在文件菜单中选择新建,弹出新建对话框,选择表单,单击向导按钮,弹出向导选取对话框。

9.1 9.1 表单向导表单向导

第 9章 表单设计

Page 5: Visual FoxPro  程序设计

2. 根据需要选择表单向导或一对多表单向导,本例选择表单向导,单击确定按钮。

9.1 9.1 表单向导表单向导

第 9章 表单设计

Page 6: Visual FoxPro  程序设计

3. 在表单向导对话框中,单击数据库和表的浏览按钮,在弹出的对话框中选定 TEACHER.DBF 。

9.1 9.1 表单向导表单向导

第 9章 表单设计

Page 7: Visual FoxPro  程序设计

4. 将可用字段列表框中的所有字段移到选定字段列表框中。单击下一步。

5. 选择表单样式,共有 9种表单样式。如选浮雕式,单击下一步。

6. 在排序次序中选择排序字段,如选择月收入。再选择排序方式,升序或降序。如选择升序,单击下一步。

7. 在表单标题框中键入“教师管理”,选择保存方式(共有三种保存方式,本例选择“保存表单以备将来使用”),单击完成。

8. 在另存为对话框中输入要保存的表单名 JSGL.SCX ,单击保存。

9.1 9.1 表单向导表单向导

第 9章 表单设计

Page 8: Visual FoxPro  程序设计

9.1 9.1 表单向导表单向导

第 9章 表单设计

Page 9: Visual FoxPro  程序设计

9. 执行表单,选定程序菜单中的运行,在运行对话框中的文件类型中选择表单,在文件列表中选择 JSGL.SCX 。单击运行(也可用 DO FORM JSGL 命令运行表单)。

9.1 9.1 表单向导表单向导

第 9章 表单设计

Page 10: Visual FoxPro  程序设计

1.1. 表单设计器的特点表单设计器的特点(1) 不但能创建表单,而且可以修改表单。(2) 操作界面可视化。(3) 表单设计面向对象。2.2. 表单设计器的基本操作表单设计器的基本操作新建表单操作步骤:第一步,打开表单设计器。打开文件菜单中的新建,选择表单,单击新建文件按钮(或用 MODIFY FORM 〈表单文件名〉),便可打开表单设计器。

9.2 9.2 表单设计器表单设计器

第 9章 表单设计

Page 11: Visual FoxPro  程序设计

9.2 9.2 表单设计器表单设计器

第 9章 表单设计

Page 12: Visual FoxPro  程序设计

第二步,在表单中添加控件。第三步,设置对象属性。第四步,设置对象的方法程序。第五步,保存表单。表单设计完成后,可通过文件菜单中的保存命令或按 Ctrl+W 存盘。第六步,运行表单。可利用程序菜单中的运行命令,也可用 DO FORM 〈表单文件名〉运行表单。

9.2 9.2 表单设计器表单设计器

第 9章 表单设计

Page 13: Visual FoxPro  程序设计

下面通过实例来说明表单的设计。例 1:设计只含一个文本框控件的表单,要求逐次单击文本框的内部能轮流显示当前日期与时间。

9.2 9.2 表单设计器表单设计器

第 9章 表单设计

Page 14: Visual FoxPro  程序设计

( 1)创建表单: MODI FORM RQSJ屏幕显示 RQSJ 表单设计器窗口。( 2)创建文本框:单击表单控件工具栏中的文本框按钮,然后单击 FORM1表单窗口某处,该处就会产生一个 TEXT1 文本框控件。

9.2 9.2 表单设计器表单设计器

第 9章 表单设计

Page 15: Visual FoxPro  程序设计

( 3 )将表单的 CAPTION属性改为 " 日期与时间 " :在表单窗口单击右键,选择属性,弹出属性窗口,在属性列表中选定 CAPTION ,在文本框中输入 " 日期与时间 " ,回车后表单标题变为日期与时间。

9.2 9.2 表单设计器表单设计器

第 9章 表单设计

Page 16: Visual FoxPro  程序设计

( 4)表单中 LOAD事件代码的编写:双击表单窗口打开代码编辑窗口,在对象组合框中确定 FORM1 选项,在过程组合框中确定 LOAD事件选项,在编辑区输入代码:PUBLIC I &&Load 事件在表单装入内存时触发,设置 I为公共变量

9.2 9.2 表单设计器表单设计器

第 9章 表单设计

Page 17: Visual FoxPro  程序设计

( 5)在对象组合框中 TEXT1 和过程的 CLICK 事件代码编写如下:IF I=.T. && 变量 I 用于控制轮流显示 THISFORM.TEXT1.VALUE=DATE() THISFORM.TEXT1.DATEFORMAT=12 &&日期格式设置为年月日 THISFORM.TEXT1.DATEMARK=“.” && 年月日间符设置为圆点 I=.F. && 触发 CLICK 事件 I值就变反ELSE THISFORM.TEXT1.VALUE=TIME() I=.T. && 触发 CLICK 事件 I值就变反ENDI

9.2 9.2 表单设计器表单设计器

第 9章 表单设计

Page 18: Visual FoxPro  程序设计

9.2 9.2 表单设计器表单设计器

第 9章 表单设计

Page 19: Visual FoxPro  程序设计

( 6 )保存表单:表单设计完成后,按 Ctrl+W 存盘。( 7 )运行表单: DO FORM RQSJ

9.2 9.2 表单设计器表单设计器

第 9章 表单设计

Page 20: Visual FoxPro  程序设计

例 2 :创建一个用户登录系统的表单 (DL.scx) ,要求以 zgbh 表中姓名字段作为用户名,以职工号字段为口令进行登录。表单的功能是:输入用户名和口令,单击“确认”按钮,系统检测用户名和口令是否正确,如果正确,则允许登录系统,否则提示重新输入,如果三次输入错误,则关闭系统。

9.2 9.2 表单设计器表单设计器

第 9章 表单设计

Page 21: Visual FoxPro  程序设计

操作步骤如下:1. 创建 ZGBH.dbf ,字段包括职工号( C , 4 ),姓名( C , 6 )。

9.2 9.2 表单设计器表单设计器

第 9章 表单设计

2.登录界面设计单击 "新建 "按钮,弹出新建对话框,选择 "表单 "单选按钮,单击 "新建文件 "按钮,打开 "表单设计器 "窗口。在表单上创建三个标签( Label1 、 Label2 、 Label3 ),一个组合框( Combo1 ),一个文本框( Text1 ),两个命令按钮( Command1 、 Command2 )。

Page 22: Visual FoxPro  程序设计

9.2 9.2 表单设计器表单设计器

第 9章 表单设计

Page 23: Visual FoxPro  程序设计

3.添加对象属性 NUM,用于记载登录次数。选择 "表单 "菜单中的 "新建属性 ",弹出新建属性对话框,在名称文本框中输入新属性 "num",单击 "添加 "按钮。

9.2 9.2 表单设计器表单设计器

第 9章 表单设计

Page 24: Visual FoxPro  程序设计

4. 设置对象属性在属性窗口设置对象的属性值。

对象 属性名 属性值 对象 属性名 属性值

Form1Caption 登录界面

Combo1

RowSourceType 6-字段

Num 0 RowSource Zgbh.姓名

Label1Caption 请输入用户名 ControlSourc

eZgbh.姓名

FontSize 14 Text1PasswordCha

r *

Label2Caption 请输入口令 Comma

nd1Caption 确认

FontSize 14Comma

nd2Caption 退出

Label3

Caption (空)FontSize 16

AutoSize .T.

第 9章 表单设计

9.2 9.2 表单设计器表单设计器

Page 25: Visual FoxPro  程序设计

5. 编写事件代码( 1 )对象 Command1 ,过程 Click 事件的代码如下:use zgbhn=alltrim(thisform.combo1.value)p=alltrim(thisform.text1.value)locate for 职工号 =pif 姓名 =n and 职工号 =p thisform.label3.caption=" 欢迎使用本系统! " thisform.refreshelse thisform.text1.value="" thisform.num=thisform.num+1

9.2 9.2 表单设计器表单设计器

第 9章 表单设计

Page 26: Visual FoxPro  程序设计

c=" 第 "+str(thisform.num,1)+" 次 " thisform.label3.caption=c+" 口令错误!重新输入 "thisform.text1.setfocus && 设置焦点 thisform.refreshif thisform.num=3 thisform.label3.caption=c+" 错误, "+" 你无权使用本系

统! " thisform.combo1.enabled=.f. thisform.text1.enabled=.f. thisform.command1.enabled=.f.endifendif

9.2 9.2 表单设计器表单设计器

第 9章 表单设计

Page 27: Visual FoxPro  程序设计

( 2 )对象 Command2 ,过程 Click 事件的代码如下: thisform.release( 3 )对象 Combo1 ,过程 InteractiveChange(使用键盘或鼠标改变控件值时引发的事件)代码如下: if !empty(this.value) thisform.text1.setfocus endif

9.2 9.2 表单设计器表单设计器

第 9章 表单设计

Page 28: Visual FoxPro  程序设计

6. 保存表单单击工具栏中的 "保存 "按钮(或单击表单设计器关闭按钮),弹出 "另存为 "对话框,选择表单保存的位置,输入表单文件名( DL.SCX ),单击保存按钮。

9.2 9.2 表单设计器表单设计器

第 9章 表单设计

Page 29: Visual FoxPro  程序设计

7. 运行表单单击工具栏上的运行按钮或在命令窗口输入 DO FORM <表单文件名 >可运行表单。DO FORM DL

9.2 9.2 表单设计器表单设计器

第 9章 表单设计

Page 30: Visual FoxPro  程序设计

9.3 9.3 类的设计类的设计

在 VFP 中除了系统提供的容器类和控件类外,用户还可以自定义类,其自定义类的方法有:1.将表单或控件保存为类操作步骤:( 1)创建表单或打开已有表单。例,打开 DL表单:modi form DL

第 9章 表单设计

Page 31: Visual FoxPro  程序设计

( 2)选定表单或表单控件,本例选择表单。

9.3 9.3 类的设计类的设计

第 9章 表单设计

Page 32: Visual FoxPro  程序设计

( 3)选择“文件”—“另存为类”命令,出现“另存为类”对话框,在“保存”选项中选择“当前表单”,在类名框中输入“ newformclass”,在类库文件名框中输入“ myclass”,单击“确定”按钮。

9.3 9.3 类的设计类的设计

第 9章 表单设计

Page 33: Visual FoxPro  程序设计

2. 用类设计器创建类例,创建一个含 3个命令按钮和 1个组合框的工具栏子类。( 1)启动类设计器选择“文件”—“新建”—“类”,出现“新建类”对话框,在类名框中输入“ mytool”,在派生于框中输入基类“ Toolbar”,在存储于框中输入自定义类库“ myclass”,单击“确定”按钮。

9.3 9.3 类的设计类的设计

第 9章 表单设计

Page 34: Visual FoxPro  程序设计

( 2)将 3个命令按钮和 1个组合框添加到类设计器窗口中,并在控件之间插入分隔符。( 3)根据需要设置工具栏及控件属性和编写事件代码。( 4)按 Ctrl+W 保存子类。

9.3 9.3 类的设计类的设计

第 9章 表单设计

Page 35: Visual FoxPro  程序设计

3. 在表单集中添加自定义工具栏工具栏对象必须存放在表单集中,为此需先建立一个表单 Form1 ,并在“表单”菜单中执行“创建表单集”命令,生成只有一个表单的表单集 FormSet1 。单击“表单控件”工具栏中的“查看类”按钮,单击“添加”,在打开对话框中选择“ myclass”类库,单击“ mytool”,然后在表单中单击,可将其添加到表单集 FormSet1 中。

9.3 9.3 类的设计类的设计

第 9章 表单设计

Page 36: Visual FoxPro  程序设计

9.3 9.3 类的设计类的设计

第 9章 表单设计

表单设计完成后,按 Ctrl+W 存盘,在“另存为”对话框中,输入表单名“表单 1”,单击“保存”按钮。

Page 37: Visual FoxPro  程序设计

9.3 9.3 类的设计类的设计

第 9章 表单设计

运行表单: DO FORM 表单 1.SCX