第十章 Visua| FoXPro程序设计 综合应用 10.1数据库操作实例 102表单控件应用实例
第十章 Visual FoxPro程序设计 综合应用 10.1 数据库操作实例 10.2 表单控件应用实例
Visual foxpro不但支持传统的面向过程的编程方法,而且全面引入了面 向对象的程序设计方法。面向对象的程序设计把重点放在对象及其联系上, 而不是具体的实现细节,它使得 Visua1 FoxPro应用程序的开发更加容易, 而且耗时更少,效率更高。 在 Visual foxpro应用程序设计中,大部分设计是关于表单的设计,表单 也是 Visual Foxpro程序。表单设计充分体现了面向对象程序设计的风格, 是 Visua1 FoxPro应用程序设计的精华所在。 在 Visua1 FoxPro应用程序设计中也有大量的代码设计,这些代码一般都 包含在表单及其控件的方法程序中,而不是命令文件中,这使得独立的应 用程序有了良好的封装性。 在 Visua1 FoxPro的代码设计中,有程序的各种命令语句,包括SQL命令 语句,还有程序的控制语句及对象的操作语句,它们的有机组合,可以完 成程序所需的各种功能 本章综合前面所学的基本知识和操作,分两个方面以实例的方式介绍 Visual Foxpro应用程序设计,使用户对 Visua1 FoxPro应用程序设计有 个更深入的了解,进一步提高程序设计能力
Visual FoxPro不但支持传统的面向过程的编程方法,而且全面引入了面 向对象的程序设计方法。面向对象的程序设计把重点放在对象及其联系上, 而不是具体的实现细节,它使得Visual FoxPro应用程序的开发更加容易, 而且耗时更少,效率更高。 在Visual FoxPro应用程序设计中,大部分设计是关于表单的设计,表单 也是Visual FoxPro程序。表单设计充分体现了面向对象程序设计的风格, 是Visual FoxPro 应用程序设计的精华所在。 在Visual FoxPro应用程序设计中也有大量的代码设计,这些代码一般都 包含在表单及其控件的方法程序中,而不是命令文件中,这使得独立的应 用程序有了良好的封装性。 在Visual FoxPro的代码设计中,有程序的各种命令语句,包括SQL命令 语句,还有程序的控制语句及对象的操作语句,它们的有机组合,可以完 成程序所需的各种功能。 本章综合前面所学的基本知识和操作,分两个方面以实例的方式介绍 Visual FoxPro应用程序设计,使用户对Visual FoxPro应用程序设计有一 个更深入的了解,进一步提高程序设计能力
10.1数据库操作实例 数据库应用系统有两个中心:一个是数据,一个是处理。数据的提供与数 据的处理方式是数据库应用系统开发过程中紧密相连的中心环节。数据库操 作实例主要围绕着数据库的操作,提供一些有实用价值的数据操作界面和数 据操作工具,这些实例可以直接使用在数据库应用系统中 10.1.1浏览数据实例 1.设计思想 在数据库操作过程中,经常需要浏览数据表中的数据,比较直观的方法是 设计一个表单,在表单中以列表框的形式列出当前文件夹中的数据表文件, 再建立一个表格,以显示列表框中选定的数据表文件中的具体数据。 2.设计成果 浏览数据程序执行结果如图10-1所示
10.1 数据库操作实例 数据库应用系统有两个中心:一个是数据,一个是处理。数据的提供与数 据的处理方式是数据库应用系统开发过程中紧密相连的中心环节。数据库操 作实例主要围绕着数据库的操作,提供一些有实用价值的数据操作界面和数 据操作工具,这些实例可以直接使用在数据库应用系统中。 10.1.1 浏览数据实例 1. 设计思想 在数据库操作过程中,经常需要浏览数据表中的数据,比较直观的方法是 设计一个表单,在表单中以列表框的形式列出当前文件夹中的数据表文件, 再建立一个表格,以显示列表框中选定的数据表文件中的具体数据。 2. 设计成果 浏览数据程序执行结果如图10-1所示
浏览数据 生DBF表数据 选择表 学号姓名性别 10201101王小平男 果程.DBF 0201102张强男 男 0201106#海男 关闭 图10-1浏览数据程序执行界面 3.实现方法 ①新建一个表单,在表单上建立两个标签、一个列表框、一个表格和 个命令按钮控件,并选择好位置和大小。 ②设置好控件的字体和字号。 ③表单控件的主要属性如表10-1所示。(P186) ④打开“代码编辑”窗口,设置“表单”的“Init”事件过程代码,并分 别为“列表框”和“命令按钮”添加“ Click”事件过程代码,如图10-2 图10-4所示
图10-1 浏览数据程序执行界面 3. 实现方法 ①新建一个表单,在表单上建立两个标签、一个列表框、一个表格和一 个命令按钮控件,并选择好位置和大小。 ②设置好控件的字体和字号。 ③表单控件的主要属性如表10-1所示。(P186) ④打开“代码编辑”窗口,设置“表单”的“Init”事件过程代码,并分 别为“列表框”和“命令按钮”添加“Click”事件过程代码,如图10-2~ 图10-4所示
eFormInit 对象0B 回Form1 过程):[nit 题定义全局数组变量 ADIR Ot,“*,dbf" 将当前文件夹中所有数据表文件加入到组中 As0RT①t thisform. list. RowSourceType=5 指定列表框的数据源类型为数组 thisform. list1 rowSource="lt 指定列框的数据源 图10-2表单的Init事件代码编辑界面 List1 Click 回 对象):List 过程B) thisform.1abe1 Caption=this. value+表数据”在表格上方动态显示的标签内容 thisform. ridl. Recor dsourceType=0 表格数据源打开的方式是“表 thisform.grid1. Recor dSource= thisform.1ist1. value表格数据源为列表框中选定的数据表 图10-3列表框的Cick事件代码编辑界面 ECommand1.Click 对象B): Command1 过程aR lick clear event 88结束当前事件 release thisform 图10-4关闭命令按钮dick事件代码编辑界面
图10-2 表单的Init事件代码编辑界面 图10-3 列表框的Click事件代码编辑界面 图10-4 关闭命令按钮Click事件代码编辑界面
10.1.2维护数据实例 1.设计思想 维护数据是数据库操作中的一项必不可少的重要工作,它包括:选择要维护的数据表 进行数据的添加、修改和删除。在本例中使用一个表单,对有关学生管理的三个数 据表进行数据维护。具体方法是:在表单上建立一个有三个页面的页框,分别放置学 生数据和选课数据及课程数据,再设置9个命令按钮,分别对三个页面中的数据进行 逐条浏览、添加记录、删除记录、修改记录和取消等操作,由于篇幅有限,本例只对 学生数据操作进行说明。 2.设计成果 维护数据程序执行过程如图10-5图109所示。 3.实现方法 ①新建一个表单,在表单上建立有三个页面的页框控件,在各个页面上将再建立9个 命令按钮控件,并选择好位置和大小。 ②在数据环境设计器中添加各数据表,并将表中的相关字段拖放到各页面中,设置好 控件的字体和字号 ③表单控件的主要属性见表10-2(在表中各页面的控件属性省略)。 ④打开“代码编辑”窗口,设置“表单”的“Ini”事件过程代码,并分别为“命令 按钮”添加“ Click”事件过程代码,如图10-10图10-18所示
10.1.2 维护数据实例 1. 设计思想 维护数据是数据库操作中的一项必不可少的重要工作,它包括:选择要维护的数据表 ,进行数据的添加、修改和删除。在本例中使用一个表单,对有关学生管理的三个数 据表进行数据维护。具体方法是:在表单上建立一个有三个页面的页框,分别放置学 生数据和选课数据及课程数据,再设置9个命令按钮,分别对三个页面中的数据进行 逐条浏览、添加记录、删除记录、修改记录和取消等操作,由于篇幅有限,本例只对 学生数据操作进行说明。 2. 设计成果 维护数据程序执行过程如图10-5~图10-9所示。 3. 实现方法 ①新建一个表单,在表单上建立有三个页面的页框控件,在各个页面上将再建立9个 命令按钮控件,并选择好位置和大小。 ②在数据环境设计器中添加各数据表,并将表中的相关字段拖放到各页面中,设置好 控件的字体和字号。 ③表单控件的主要属性见表10-2(在表中各页面的控件属性省略)。 ④打开“代码编辑”窗口,设置“表单”的“Init”事件过程代码,并分别为“命令 按钮”添加“Click”事件过程代码,如图10-10~图10-18所示
E数据护 子数护 第一条记录 第3个记录 学生数据 选课数 课程数 学生数据 选课数据 课程数据 学号「mo姓名任小平性别(男C女 学号[0姓名冈用性别男C女 出生年月o/23/1g a入校总分「0厂三好生 出生年月同/1入总分[5「三好生 参加第十届全图大学生 添加翻除修改取消退 区>添加断改和退 图10-5选取首记录按钮 图10-6选取上一条记录按钮 回数据维护 修改成功 学生数据 选课数据 果程数据 学生数据 选课数据 果程数据 学号2015姓名[伟 学号0115姓名厦林性别°男C女 b性别男C女 出生年月[0/12/195入校总分厂「三好生 出生年月/1215入枚总分「「三好生 确认人册限的取消退出 添加删除修改取消退出 图10-7选取添加记录按钮 图10-8选取修改后的确认按钮
图10-5 选取首记录按钮 图10-6 选取上一条记录按钮 图10-7 选取添加记录按钮 图10-8 选取修改后的确认按钮
学生数据 选课数据 课程数据 号「020115姓名 性别G男C女 出生年月/121965入校总分「「三好生 (i)确实要删除本记录吗? [聊世出 图10-9选取删除记录按钮 图10-1018所示P189-191
图10-9 选取删除记录按钮 图10-10〰18所示 P189-191
10.1.3学生选课实例 1.设计思想 学生选课是教学管理环节中的一项很重要的工作。本例提供了一个学生选课的界面, 学生在正确输入了自己的学号后,可查阅可选的课程和自己已选的课程。在输入了选课 的课程号后,系统进行判断,如果是已选的课程,或不是课程表中有的课程,将给出提 示信息,要求重新输入;对于正确的选课,将在学生已选课程表中添加一条记录。如果 学生要取消已选的课程(退选),将在学生已选课程表中删除一条记录。 2.设计成果 学生选课程序执行过程如图10-19、图10-20所示。3.实现方法 ①新建一个表单,在表单上建立有四个标签控件、三个文本框控件、两个命令按钮控 件,并选择好位置和大小 ②在学籍管理数据库中新建一个视图,用于存入学生选课信息,创建的主要过程如图 10-21图10-23所示。 ③在数据环境设计器中添加学生表、课程表、选课表和学生选课视图,并将课程表拖 放到可选课程处;将学生选课视图拖放到已选课程处,完成表单中两个表格的设计 表单控件的主要属性见表10-3(在表中文本框和表格的控件属性省略)。 ⑤打开“代码编辑”窗口,设置“表单”的“Init”事件过程代码,为文本框“txt学 号”设置“ LostFocus”事件过程代码,并分别为“选课”和“退选”命令按钮添加 “ Click”事件过程代码,如图10-24图10-27所示
10.1.3 学生选课实例 1. 设计思想 学生选课是教学管理环节中的一项很重要的工作。本例提供了一个学生选课的界面, 学生在正确输入了自己的学号后,可查阅可选的课程和自己已选的课程。在输入了选课 的课程号后,系统进行判断,如果是已选的课程,或不是课程表中有的课程,将给出提 示信息,要求重新输入;对于正确的选课,将在学生已选课程表中添加一条记录。如果 学生要取消已选的课程(退选),将在学生已选课程表中删除一条记录。 2. 设计成果 学生选课程序执行过程如图10-19、图10-20所示。3. 实现方法 ①新建一个表单,在表单上建立有四个标签控件、三个文本框控件、两个命令按钮控 件,并选择好位置和大小。 ②在学籍管理数据库中新建一个视图,用于存入学生选课信息,创建的主要过程如图 10-21~图10-23所示。 ③在数据环境设计器中添加学生表、课程表、选课表和学生选课视图,并将课程表拖 放到可选课程处;将学生选课视图拖放到已选课程处,完成表单中两个表格的设计。 表单控件的主要属性见表10-3(在表中文本框和表格的控件属性省略)。 ⑤打开“代码编辑”窗口,设置“表单”的“Init”事件过程代码,为文本框“txt学 号”设置“LostFocus”事件过程代码,并分别为“选课”和“退选”命令按钮添加 “Click”事件过程代码,如图10-24~图10-27所示
学生选课 x 输入学号「 胜名保 退选成功 输入学号|s0201102 姓名隊强 选课成功 入课程号c120 选 输入课程号e10 选课 算机网 课程号课程名 果程号课程名课时 选中课程 业计 意中课程 图10-20退选操作 图10-19选课操作 回x 王|联|结|序据|分形|更新条件|杂项 字段|联[排序依据|分组据|更新条件|项 选定字4 大小写 西数和表达式0 入①)」移③ 图10-21“学生选课视图”字段选取 图10-22“学生选课视图”筛选条件
图10-19 选课操作 图10-20 退选操作 图10-21 “学生选课视图”字段选取 图10-22 “学生选课视图”筛选条件