清华大学出版社 TSINGHUA UNIVERSITY PRESS 第8章表单高级设计
第8章 表单高级设计
清华大学出版社 TSINGHUA UNIVERSITY PRESS 81多表单应用程序 应用程序界面 单文档界面与多文档界面 顶层表单与子表单 非浮动表单和浮动表单 调用子表单: DO FORM命令 表单属性 属性值 功能 ShowWindow o 本表单作为VFP主窗口的子表单 本表单作为顶层表单的子表单 本表单作为顶层表单显示在桌面上 Desktop TF 子表单浮动 子表单不浮动 Visible T.(默认)表单是可见 表单不可见
应用程序界面 单文档界面与多文档界面 顶层表单与子表单 非浮动表单和浮动表单 调用子表单:DO FORM命令 表单属性 属性值 功能 ShowWindow 0 本表单作为VFP主窗口的子表单 1 本表单作为顶层表单的子表单 2 本表单作为顶层表单显示在桌面上 Desktop .T. 子表单浮动 .F. 子表单不浮动 Visible .T. (默认) 表单是可见 .F. 表单不可见 8.1 多表单应用程序
清华大学出版社 TSINGHUA UNIVERSITY PRESS [例8-1]为例7-10设计的表单增加一个查页命令按钮,要求单击它能 打开一个供用户输入记录号的窗口,如图8.1所示。当指定记录号并单击 确定按钮后,新打开的窗口随即关闭,原表单也立即更新记录显示。 (1)从例7-10的表单文件SBXG.SCX复制出SBBD1.SCX,并将后者打开 (2)在SBBD1.SCX的表单窗口Form1中增加命令按钮 Command1 (3)创建表单文件SBBD2.SCX,并在其表单窗口Form1中创建标签、文本框各1个 (4)属性设置:见表8.1。 第1页 名称 启用日期:0305/990 部门:21 价格 6204461 是否主要设备 从光华仪表厂用 两标: 请输入记录号:「1 确定 下页」上页」退出查页 图8.1开出子窗口来指定记录
[例8-1] 为例7-10设计的表单增加一个查页命令按钮,要求单击它能 打开一个供用户输入记录号的窗口, 如图8.1所示。当指定记录号并单击 确定按钮后,新打开的窗口随即关闭,原表单也立即更新记录显示。 (1) 从例7-10的表单文件SBXG.SCX复制出SBBD1.SCX,并将后者打开。 (2) 在SBBD1.SCX的表单窗口Form1中增加命令按钮Command1。 (3) 创建表单文件SBBD2.SCX,并在其表单窗口Form1中创建标签、文本框各1个。 (4) 属性设置:见表8.1。 图8.1 开出子窗口来指定记录
清华大学出版社 TSINGHUA UNIVERSITY PRESS (5)在 Forml(SBD1.SCX)的Init事件代码中增加公共变量jh: PUBLIC yh, mc(10, 1), jlh &&公共变量jh用来表示记录号 COPY T0 aRRAY mC Fields sb.名称&&保持原样 &保持原样 (6) Forml(SBBD.SCX)中 Command1的 Click事件代码编写如下: DO FORM sbbd2 &&调用子表单 Go jIh &记录指针指向在子表单中指定的记录 THISFORM. Refresh &&父表单更新 (7) Forml(SBD2.SCX)中 Commandl的 Click事件代码编写如下: jh= THISFORM. TextI. Value&文本框值赋给公共变量(可事先在文本框中键入一个数) THISFORM. Release &&释放Form1(SBBD2.SCX) (8) Forml(SBBD1SCX)的 UNload事件代码编写如下: release ilh &&清除公共变量jh,程序运行结束公共变量不会自动清除 表81“查页”属性设置 表单文件对象属性 属性值 说明 SBBD1. SCX Form1 ShowWindow 本表单作为顶层表单显示在桌面上 Command1 Caption 查页 SBBD2. SCX Form1 Caption 输入 ShowWindow 1 本表单作为顶层表单的子表单 Labell Caption 请输入记录号 Text1 Value 供键入记录号,设置初值1 Command1 Caption 确定
(5) 在Form1(SBBD1.SCX)的Init事件代码中增加公共变量jlh: PUBLIC yh,mc(10,1),jlh && 公共变量jlh用来表示记录号 COPY TO ARRAY mc FIELDS sb.名称 && 保持原样 GO 1 && 保持原样 (6) Form1(SBBD1.SCX)中Command1的Click事件代码编写如下: DO FORM sbbd2 && 调用子表单 GO jlh && 记录指针指向在子表单中指定的记录 THISFORM.Refresh && 父表单更新 (7) Form1(SBBD2.SCX)中Command1的Click事件代码编写如下: jlh=THISFORM.Text1.Value && 文本框值赋给公共变量(可事先在文本框中键入一个数) THISFORM.Release && 释放Form1(SBBD2.SCX) (8) Form1(SBBD1.SCX)的Unload事件代码编写如下: RELEASE jlh && 清除公共变量jlh,程序运行结束公共变量不会自动清除 表单文件 对 象 属 性 属性值 说 明 SBBD1.SCX Form1 ShowWindow 2 本表单作为顶层表单显示在桌面上 Command1 Caption 查页 SBBD2.SCX Form1 Caption 输入 ShowWindow 1 本表单作为顶层表单的子表单 Label1 Caption 请输入记录号: Text1 Value 1 供键入记录号,设置初值1 Command1 Caption 确定 表8.1 “查页”属性设置
学出版社 表单集 TSINGHUA UNIVERSITY PRESS 使用表单集的优点 表单集的创建与删除 表单集的编辑 例8-3]用表单集来实现查看设备大修情况。 (1)从例7-13产生的表单文件BG.SCK复制出 BDJ SCX,并使后者打开,表单设计器窗口中将会显示“SB表编辑” 表单窗口。 (2)为表单文件 BDJ SCX创建表单集:选定表单菜单的创建表单集命令。 (3)向表单集添加表单:选定表单菜单的添加新表单命令,表单设计器窗口中就会出现Form2表单窗口 4)在数据环境中添加D表,并将SB表与D表按编号关联起来。 5)将数据环境中D窗口的标题栏拖放到Form2表单窗口,该表单中就会产生一个关于大修的表格。 (6)将Fomm2表单的 Caption属性值改为“大修情况”。 编号名称主要设备口 016-2车床 □偏号年月费用 037-2950662044 7-2磨床 01微机 P1n-1新本 图83查看设备大修情况
表单集 使用表单集的优点 表单集的创建与删除 表单集的编辑 [例8-3] 用表单集来实现查看设备大修情况。 (1) 从例7-13产生的表单文件BG.SCX复制出BDJ.SCX,并使后者打开,表单设计器窗口中将会显示“SB表编辑” 表单窗口。 (2) 为表单文件BDJ.SCX创建表单集:选定表单菜单的创建表单集命令。 (3) 向表单集添加表单:选定表单菜单的添加新表单命令,表单设计器窗口中就会出现Form2表单窗口。 (4) 在数据环境中添加DX表, 并将SB表与DX表按编号关联起来。 (5) 将数据环境中DX窗口的标题栏拖放到Form2表单窗口,该表单中就会产生一个关于大修的表格。 (6) 将Form2表单的Caption属性值改为“大修情况”。 图8.3 查看设备大修情况