当前位置:文档之家› VisualFoxPro程序设计教程

VisualFoxPro程序设计教程


总复习教学进程
11.4 修改上题,利用组合框选择部门。 11.5 在表格中使用复选框。如图11-33所示。 11.6 在表格中使用组合框。如图11-34所示。
图11-33 在表格中使用复选框
图11-34 在表格中使用组合框
11.7 使用表单“向导”设计习题11.3中的管理程序。
11.8 在习题11.7的管理程序中使用组合框选择部门编号。
总复习教学进程
多表的表单设计 1. 用一对多表单向导创建表单 【例11-2】利用“一对多表单向导”设计操作多表的表单程序。
设计步骤为:首先,用下列方法之一打开“向导选取”对话框:
l
在“工具”菜单中选择“向导”子菜单,再从子菜单中选择
“表单”。
l
从“文件”菜单中选择“新建”,并依次选取“表单”、
“向导”。
定”。例如,限制“学号”字段的前两位只能为"97",并且 输入的学号必须满8位:
SUBSTR(学号,1,2) = "97" AND LEN(TRIM(学号)) = 8
建立有效性规则时,必须创建一个有效的Visual FoxPro表达 式,其中要考虑到这样一些问题:字段的长度、字段可能为 空或者包含了已设置好的值等等。表达式也可以包含结果为 真或假的函数。
⑤ 在“信息”框中,键入用引号括起的错误信息,例如, 显示“学号不符合要求”,如图11-9所示。
⑥ 选择“确定”。 如果输入的信息不能满足有效性规则,在“有效性说明” 中设定的信息便会显示出来。,如图11-10所示。
图11-10 当输入非法数值时,屏幕上会显示有效性说明
控制记录的数据输入
按照以下步骤可以设置有效性规则: ① 选定表,在“数据库”菜单中选择“修改”。将打
⑤ 选择“确定”。 ⑥ 在“表设计器”中选择“确定”
图11-11 “表达式生成器”对话框
管理数据库记录
如果添加一个成绩记录,可能想在成绩表中自动添加关于 该学生的基本信息。为了帮助设置规则,控制如何在关系 表中插入、更新或删除记录,可使用“参照完整性设计 器”。若要使用“参照完整性生成器”:
① 在“数据库设计器”中建立两表之间的关系,或者双 击关系线来编辑关系。
图11-3 “创建”数据库对话 框
图11-4 “数据库设计器”窗口
●在数据库中加入表 ●向数据库中添加表
从“数据库”菜单或“数据库设计器”工具栏或右击数 据库设计器窗口,从中选择“添加表”。在“打开”对话 框中选定一个表,然后选择“确定 ”.
图11-5 向数据库中添加表
●准备关联
要决定哪个表需要这些字段,可考虑使用记录号 怎样关联数据。例如,一个学生可能有多个成绩。因 此,学生(Student)表应包含主记录,成绩(cj)表 包含相关记录。
THIS.Parent.Check1.Value = IIF(THIS.Value = 1,.T.,.F.) ●修改命令按钮容器中“添加”按钮cmdAdd的Click事件代 码:
txtbtns::cmdadd.Click IF THIS.Caption = "保存(\<S)" THISFORM.性别1.OptionGroup1.Enabled = .T. THISFORM.班级编号bo1.Enabled = .T.
改”。 ③ 在“表设计器”中选定要赋予默
认值的字段。 ④ 在“默认值”框中键入要显示在
所有新记录中的字段值(字符型字段应 用引号括起来)。 ⑤ 选择“确定”。
●设置有效性规则和有效性说明
设置有效性规则和有效性说明: ① 在“表设计器”中打开表。 ② 在“表设计器”中选定要建立规则的字段名。 ③ 在“规则”方框旁边选择对话按钮。 ④ 在“表达式生成器”中设置有效性表达式,并选择“确
11.2 修改上题中的数据库: (1) 在数据库中创建一个新表“部门”,仅包含两个字段:部
门、部门编号。 (2) 修改数据表“职工情况”,将“部门”字段改为“部门编
号”。 (3) 建立“部门”表与“职工情况”之间的关联。
11.3 设计一个程序,处理职工情况的管理。如图11-32所示。
图11-32 管理程序
② 在“编辑关系”对话框中选择“参照完整性”按钮, 如图11-12所示。
图11-12 在“编辑关系”对话框中的参照完整性按 钮
总复习教学进程
③ 在“参照完整性生成器”中选择更新、删除或插入 记录时所遵循的若干规则,如图11-13所示。
图11-13 “参照完整性生成器”对话框 ④ 选择“确定”,然后选择“是”保存所做的修改 ,生成“参照完整性”代码,并退出参照完整性生成器 。
图11-30 进一步的修改
总复习教学进程
设计步骤如下:
(1) 修改数据环境。 (2) 修改表单。 (3) 修改代码。 ● 修改容器“性别1”中复选框Cheesh
THIS.Parent.OptionGroup1.Value = IIF(THIS.Value,1,2) ● 修 改 容 器 “ 性 别 1” 中 选 项 按 钮 组 OptionGroup1 的 InteractiveChange事件代码:
\program files\microsoft visual studio\msdn98\98vs\2052\samples\vfp98\data
目录下。打开Testdata.dbc后,显示如图11-1所示
图11-1 样例数据库
● 展开或折叠所有表 将鼠标指针指向“数据库设计器”窗口,单击鼠标右键, 打开快捷菜单,如图11-2所示。
开“表设计器”对话框。 ② 在“表设计器”中选择“表”选项卡。
③ 在“规则”框中,输入一个有效的Visual FoxPro表达 式定义规则,如图11-9所示。单击“…”按钮以使用“表 达式生成器”,如图11-11所示。例如,Student表中,97 级的学生“总学分”必须为0,则可以在“表”选项卡的 “有效性规则”框中键入下述表达式: IIF(STRSUB(学号,1,2)="1997" and 总学分#0, .F.,.T.) ④ 在“信息”框中输入提示信息。例如,“信息”文字 可以是:"新生总学分必须为0"。当有效性规则未被满足 时,将会显示该信息。
txtbtns::cmdedit.Click IF THIS.Caption = "还原(\<R)" THISFORM.性别1.OptionGroup1.Enabled = .T. THISFORM.班级编号bo1.Enabled = .T.
THISFORM.Grid1.Enabled = .T.
总复习教学进程
使用数据库
1 在表单中对多表的控制 使用SELECT命令可以将指定的工作区设为当前工作区, 其语法格式为: SELECT 〈工作区号〉|〈表别名〉
【例11-1】在表单中浏览多个表。如图11-14所示。
图11-14 在表单中浏览多个表
第2章
总复习教学进程
设计步骤如下: (1) 创建数据环境。
设计步骤如下: (1) 修改数据环境——在数据环境中增加新表,并在cj.dbf和kc.dbf 之间建立关系。 (2) 修改表单——删除表格第一列中的文本框,增加下拉列表框。 (3) 设置Combo1的属性
总复习教学进程
进一步的修改 【例11-5】修改上例的表单,利用选项按钮组来控制“性别” 字段,利用组合框来控制班级编号的输入(如图11-30)。
(2) 在表单中增加一个命令按钮组CommandGroup1,如图11-14所示。 (3) 编写CommandGroup1的Click事件代码:
n = THIS.Value DO CASE CASE n = 1
SELECT student CASE n = 2 SELECT class0 CASE n = 3 SELECT kc CASE n = 4 SELECT cj ENDCASE BROW 运行表单,即可在一个表单中浏览不同的数据表。
●定义字段显示
●设置字段标题 按照一下步骤可以给字段值定一个标题:
图11-9 基于标题的列名
● 为字段输入注释
按照以下步骤可以为一个字段作注释: ① 在“表设计器”中,选定字段。 ② 在“字段注释”框中键入注释内容,如图11-9
所示。 ③ 选择“确定”。
●设置默认字段值
按照以下步骤,可以设置字段的默认值: ① 在“数据库设计器”中选定表。 ② 从“数据库”菜单中选择“修
ELSE THISFORM.性别1.OptionGroup1.Enabled = .F. THISFORM.班级编号bo1.Enabled = .F.
THISFORM.Grid1.Enabled = .F.
ENDIF
总复习教学进程
习题11
11.1 创建“职工”数据库,其中包含第10章习题中的数据表: “职工情况.dbf”和“职工工资.dbf”。
l 选择主工具条上的表单按钮。
步骤1 - 从父表中选定字段。 步骤2 - 从子表中选定字段。
步骤3- 建立表之间的关系。 步骤4 – 选择表单样式
步骤5 - 排序次序
步骤6 - 完成。
总复习教学进程
在表格中增加控件 【例11-4】在上例的子表表格中增加下拉列表框,以便在编辑数据 时能控制数据的来源。
图11-6 数据库中的表
●关联表
若要准备关系,可以按如下步骤进行: (1) 决定哪个表有主记录(如Student表),哪个
表有关联记录(如cj表)。 (2) 对有主记录的表,添加一个整数型字段,
再对该字段添加一个主索引。 (3) 对带有关联记录的表,添加一个与另个表
匹配的主关键字字段,再对该新字段添加一个 一般索引。
THISFORM.Grid1.Enabled = .T.
总复习教学进程
ELSE THISFORM.性别1.OptionGroup1.Enabled = .F. THISFORM.班级编号bo1.Enabled = .F.
相关主题