visual foxpro 程序设计教程

29
Visual FoxPro Visual FoxPro 程程程程程程 程程程程程程

Upload: kay-sampson

Post on 01-Jan-2016

89 views

Category:

Documents


6 download

DESCRIPTION

Visual FoxPro 程序设计教程. 第 11 章 创建数据库. ● 打开数据库. 若要打开一个数据库:从“文件”菜单中选择“打开”,选择数据库名。打开数据库后,就会显示出“数据库设计器”,它向用户展示了组成数据库的若干表以及它们之间的关系。 若要看一下样例数据库的结构,可以打开数据库 Testdata.dbc ,该文件存于 \program files\microsoft visual studio\msdn98\98vs\2052\samples\vfp98\data 目录下。打开 Testdata.dbc 后,显示如图 11-1 所示. - PowerPoint PPT Presentation

TRANSCRIPT

Visual FoxPro Visual FoxPro 程序设计教程序设计教程程

●● 打开数据库

若要打开一个数据库:从“文件”菜单中选择“打开”,选择数据库名。打开数据库后,就会显示出“数据库设计器”,它向用户展示了组成数据库的若干表以及它们之间的关系。

若要看一下样例数据库的结构,可以打开数据库 Testdata.dbc ,该文件存于

\program files\microsoft visual studio\msdn98\98vs\2052\samples\vfp98\data

目录下。打开 Testdata.dbc 后,显示如图 11-1 所示

第第 1111 章 创建数据库章 创建数据库

图 11-1 样例数据库

●● 展开或折叠所有表

将鼠标指针指向“数据库设计器”窗口,单击鼠标右键,打开快捷菜单,如图 11-2 所示。

图 11-2 数据库设计器中折叠后的表

●● 创建新的数据库

●● 若要创建新的数据库:

① 从“文件”菜单中选择“新建”命令。在“新建”对话框中选择“数据库”单选钮,然后单击“新建文件”按钮,打开“创建”对话框,如图 11-1 所示

② 在“创建”数据库对话框中输入新数据库名,“保存”后,会显示一个空的“数据库设计器”窗口,与此同时,“数据库设计器”工具栏将变为有效,如图 11-2 所示。

图 11-3 “ 创建”数据库对话 框

图 11-4 “ 数据库设计器”窗口

●● 在数据库中加入表

●● 向数据库中添加表 从“数据库”菜单或“数据库设计器”工具栏或右击数据库设计器窗口,从中选择“添加表”。在“打开”对话框中选定一个表,然后选择“确定 ” .

 

图 11-5 向数据库中添加表

●● 准备关联

要决定哪个表需要这些字段,可考虑使用记录号怎样关联数据。例如,一个学生可能有多个成绩。因此,学生( Student )表应包含主记录,成绩( cj )表包含相关记录。 为准备两个关联表中的主表,需要在主表中添加主关键字字段,如“学号”。这是因为学生表中一条记录与成绩表的多个记录关联。 要在两个表之间提供公共字段,需要在带有关联记录的表添加外部关键字字段,如成绩表。外部关键字字段必须以相同的数据类型匹配主关键字字段,而且一般用相同的名称。且以主关键字字段和外部关键字字段创建的索引必须带有相同的表达式。如图 11-6 所示。

图 11-6 数据库中的表

●● 关联表

若要准备关系,可以按如下步骤进行:

(1) 决定哪个表有主记录 ( 如 Student 表 ) ,哪个表有关联记录 ( 如 cj 表 ) 。

(2) 对有主记录的表,添加一个整数型字段,再对该字段添加一个主索引。

(3) 对带有关联记录的表,添加一个与另个表匹配的主关键字字段,再对该新字段添加一个一般索引。

●● 定义字段显示●● 设置字段标题

图 11-9 基于标题的列名

按照一下步骤可以给字段值定一个标题:

●● 为字段输入注释

按照以下步骤可以为一个字段作注释:

① 在“表设计器”中,选定字段。

② 在“字段注释”框中键入注释内容,如图 11-9 所示。

③ 选择“确定”。

●● 设置默认字段值

按照以下步骤,可以设置字段的默认值:

① 在“数据库设计器”中选定表。

② 从“数据库”菜单中选择“修改”。

③ 在“表设计器”中选定要赋予默认值的字段。

④ 在“默认值”框中键入要显示在所有新记录中的字段值(字符型字段应用引号括起来)。

⑤ 选择“确定”。

●● 设置有效性规则和有效性说明

设置有效性规则和有效性说明:

① 在“表设计器”中打开表。

② 在“表设计器”中选定要建立规则的字段名。

③ 在“规则”方框旁边选择对话按钮。

④ 在“表达式生成器”中设置有效性表达式,并选择“确定”。例如,限制“学号”字段的前两位只能为 "97" ,并且输入的学号必须满 8 位:

SUBSTR( 学号 ,1,2) = "97" AND LEN(TRIM( 学号 )) = 8

建立有效性规则时,必须创建一个有效的 Visual FoxPro 表达式,其中要考虑到这样一些问题:字段的长度、字段可能为空或者包含了已设置好的值等等。表达式也可以包含结果为真或假的函数。

⑤ 在“信息”框中,键入用引号括起的错误信息,例如,显示“学号不符合要求”,如图 11-9 所示。 ⑥ 选择“确定”。

如果输入的信息不能满足有效性规则,在“有效性说明”中设定的信息便会显示出来。,如图 11-10 所示。

图 11-10 当输入非法数值时,屏幕上会显示有效性说明

控制记录的数据输入

按照以下步骤可以设置有效性规则: ① 选定表,在“数据库”菜单中选择“修改”。将打开“表设计器”对话框。 ② 在“表设计器”中选择“表”选项卡。 ③ 在“规则”框中,输入一个有效的 Visual FoxPro 表达式定义规则,如图 11-9 所示。单击“…”按钮以使用“表达式生成器”,如图 11-11 所示。例如, Student 表中, 97 级的学生“总学分”必须为 0 ,则可以在“表”选项卡的“有效性规则”框中键入下述表达式:IIF(STRSUB( 学号 ,1,2)="1997" and 总学分 #0, .F.,.T.) ④ 在“信息”框中输入提示信息。例如,“信息”文字可以是: " 新生总学分必须为 0" 。当有效性规则未被满足时,将会显示该信息。 ⑤ 选择“确定”。 ⑥ 在“表设计器”中选择“确定”

图 11-11 “ 表达式生成器”对话框

总复习教学进程总复习教学进程

管理数据库记录 如果添加一个成绩记录,可能想在成绩表中自动添加关于该学生的基本信息。为了帮助设置规则,控制如何在关系表中插入、更新或删除记录,可使用“参照完整性设计器”。若要使用“参照完整性生成器”: ① 在“数据库设计器”中建立两表之间的关系,或者双击关系线来编辑关系。 ② 在“编辑关系”对话框中选择“参照完整性”按钮,如图 11-12 所示。

图 11-12 在“编辑关系”对话框中的参照完整性按钮

总复习教学进程总复习教学进程

③ 在“参照完整性生成器”中选择更新、删除或插入记录时所遵循的若干规则,如图 11-13 所示。

图 11-13 “ 参照完整性生成器”对话框

④ 选择“确定”,然后选择“是”保存所做的修改,生成“参照完整性”代码,并退出参照完整性生成器。

第第 22 章章总复习教学进程总复习教学进程

使用数据库 1 在表单中对多表的控制使用 SELECT 命令可以将指定的工作区设为当前工作区,其语法格式为:SELECT 〈工作区号〉 | 〈表别名〉

【例 11-1】在表单中浏览多个表。如图 11-14 所示。

图 11-14 在表单中浏览多个表

总复习教学进程总复习教学进程

设计步骤如下: (1) 创建数据环境。 (2) 在表单中增加一个命令按钮组 CommandGroup1 ,如图 11-14所示。 (3) 编写 CommandGroup1 的 Click事件代码:n = THIS.ValueDO CASE CASE n = 1 SELECT student CASE n = 2 SELECT class0 CASE n = 3 SELECT kc CASE n = 4 SELECT cjENDCASEBROW 运行表单,即可在一个表单中浏览不同的数据表。

总复习教学进程总复习教学进程

多表的表单设计 1. 用一对多表单向导创建表单

【例 11-2】利用“一对多表单向导”设计操作多表的表单程序。

设计步骤为:首先,用下列方法之一打开“向导选取”对话框:

         在“工具”菜单中选择“向导”子菜单,再从子菜单中选择“表单”。

         从“文件”菜单中选择“新建”,并依次选取“表单”、“向导”。

         选择主工具条上的表单按钮。

步骤 1 - 从父表中选定字段。 步骤 2 - 从子表中选定字段。

步骤 3- 建立表之间的关系。 步骤 4 – 选择表单样式

步骤 5 - 排序次序 步骤 6 - 完成。

总复习教学进程总复习教学进程

在表格中增加控件

【例 11-4】在上例的子表表格中增加下拉列表框,以便在编辑数据时能控制数据的来源。

设计步骤如下:

(1) 修改数据环境——在数据环境中增加新表,并在 cj.dbf 和 kc.dbf 之间建立关系。

(2) 修改表单——删除表格第一列中的文本框,增加下拉列表框。

(3) 设置 Combo1 的属性

总复习教学进程总复习教学进程

进一步的修改【例 11-5】修改上例的表单,利用选项按钮组来控制“性别”字段,利用组合框来控制班级编号的输入(如图 11-30 )。

图 11-30 进一步的修改

总复习教学进程总复习教学进程

设计步骤如下: (1) 修改数据环境。 (2) 修改表单。 (3) 修改代码。●● 修改容器“性别 1” 中复选框 Check1 的 Refresh事件代码:checkbox::RefreshTHIS.Parent.OptionGroup1.Value = IIF(THIS.Value,1,2) ●● 修改容器“性别 1” 中选项按钮组 OptionGroup1 的 InteractiveChange事件代码:THIS.Parent.Check1.Value = IIF(THIS.Value = 1,.T.,.F.) ●● 修改命令按钮容器中“添加”按钮 cmdAdd 的 Click事件代码:txtbtns::cmdadd.ClickIF THIS.Caption = " 保存 (\<S)" THISFORM. 性别 1.OptionGroup1.Enabled = .T. THISFORM. 班级编号 1.Combo1.Enabled = .T. THISFORM.Grid1.Enabled = .T.

总复习教学进程总复习教学进程

ELSE THISFORM. 性别 1.OptionGroup1.Enabled = .F. THISFORM. 班级编号 1.Combo1.Enabled = .F. THISFORM.Grid1.Enabled = .F.ENDIF●● 修改命令按钮容器中“编辑”按钮 cmdEdit 的 Click 事件代码:txtbtns::cmdedit.ClickIF THIS.Caption = " 还原 (\<R)" THISFORM. 性别 1.OptionGroup1.Enabled = .T. THISFORM. 班级编号 1.Combo1.Enabled = .T. THISFORM.Grid1.Enabled = .T.ELSE THISFORM. 性别 1.OptionGroup1.Enabled = .F. THISFORM. 班级编号 1.Combo1.Enabled = .F. THISFORM.Grid1.Enabled = .F.ENDIF

总复习教学进程总复习教学进程

习题 11 11.1 创建“职工”数据库,其中包含第 10章习题中的数据表

:“职工情况 .dbf” 和“职工工资 .dbf” 。 11.2 修改上题中的数据库: (1) 在数据库中创建一个新表“部门”,仅包含两个字段:

部门、部门编号。 (2) 修改数据表“职工情况”,将“部门”字段改为“部门编号”。

(3) 建立“部门”表与“职工情况”之间的关联。 11.3 设计一个程序,处理职工情况的管理。如图 11-32 所示。

图 11-32 管理程序

总复习教学进程总复习教学进程

11.4 修改上题,利用组合框选择部门。 11.5 在表格中使用复选框。如图 11-33 所示。 11.6 在表格中使用组合框。如图 11-34 所示。

图 11-34 在表格中使用组合框图 11-33 在表格中使用复选框

11.7 使用表单“向导”设计习题 11.3 中的管理程序。

11.8 在习题 11.7 的管理程序中使用组合框选择部门编号。