第12章数据库应用系统开发_第1页
第12章数据库应用系统开发_第2页
第12章数据库应用系统开发_第3页
第12章数据库应用系统开发_第4页
第12章数据库应用系统开发_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第12章章 数据库应用系统开发数据库应用系统开发 主要内容主要内容12.1 需求分析需求分析12.2 数据库设计数据库设计12.3 系统设计系统设计12.4 系统实现与调试系统实现与调试12.5 数据库应用系统开发实例数据库应用系统开发实例复习思考题复习思考题12.1 需求分析需求分析 12.1.1 需求调查需求调查12.1.2 需求分析需求分析 1.数据流程分析数据流程分析 12.1 需求分析需求分析 1.数据流程分析数据流程分析 12.1 需求分析需求分析 2.数据字典数据字典(dd)数据字典是数据字典是以特定格式记录下来的,对数据流以特定格式记录下来的,对数据流程图中各个基本要素程图中

2、各个基本要素(数据流、文件、加工等数据流、文件、加工等)的具的具体内容和特征所作的完整的对应和说明。是对数据体内容和特征所作的完整的对应和说明。是对数据流程图的注释和重要补充,它帮助系统分析师全面流程图的注释和重要补充,它帮助系统分析师全面确定用户的要求,并为以后的系统设计提供参考依确定用户的要求,并为以后的系统设计提供参考依据。据。数据字典的内容包括数据字典的内容包括:数据项、数据结构、数:数据项、数据结构、数据流、加工、文件、外部实体等,一切在数据定义据流、加工、文件、外部实体等,一切在数据定义需求中出现的名称都必须有严格的说明。在数据库需求中出现的名称都必须有严格的说明。在数据库设计过程

3、中,数据字典被不断地充实、修改、完善。设计过程中,数据字典被不断地充实、修改、完善。下面以成绩管理数据流图中几个元素的定义加下面以成绩管理数据流图中几个元素的定义加以说明:以说明:12.1 需求分析需求分析 (1)数据项名:成绩数据项名:成绩别名:分数别名:分数描述:课程考核的分数值描述:课程考核的分数值定义:数值型,带一位小数定义:数值型,带一位小数取值范围:取值范围:0100(2)数据结构名:成绩单数据结构名:成绩单别名:考试成绩别名:考试成绩描述:学生每学期考试成绩单描述:学生每学期考试成绩单定义:成绩清单定义:成绩清单=学生号学生号+开课号开课号+学期学期+考试成绩考试成绩(3)加工名

4、:选课登记处理加工名:选课登记处理输入数据流:学期、学生号、开课号、课程号输入数据流:学期、学生号、开课号、课程号输出数据流:选课清单输出数据流:选课清单加工逻辑:把选课者的学生号、所处的学期号、以及所选的开课加工逻辑:把选课者的学生号、所处的学期号、以及所选的开课号、课程号记录进数据库中号、课程号记录进数据库中处理频率:根据学校的学生人数而定,具有集中性处理频率:根据学校的学生人数而定,具有集中性 12.1 需求分析需求分析 (4)文件名:学生信息表文件名:学生信息表简述:用来记录学生的基本情况简述:用来记录学生的基本情况组成:记录学生各种情况的数据项,如学生号、姓名、组成:记录学生各种情况

5、的数据项,如学生号、姓名、性别、政治面貌、专业、班级号等性别、政治面貌、专业、班级号等读文件:提供各项数据的显示,提取学生的信息读文件:提供各项数据的显示,提取学生的信息写文件:对学生情况的修改、增加或删除写文件:对学生情况的修改、增加或删除这一阶段的主要任务是:确认系统的设计范围;调查信这一阶段的主要任务是:确认系统的设计范围;调查信息需求、收集数据;分析、综合系统调查得到的资料;建立息需求、收集数据;分析、综合系统调查得到的资料;建立需求说明文档、数据字典、数据流程图。需求说明文档、数据字典、数据流程图。与本阶段同步,对数据处理的同步分析应产生:数据流与本阶段同步,对数据处理的同步分析应产

6、生:数据流程图、判定树程图、判定树(判定表判定表)以及数据字典中对处理过程的描述。以及数据字典中对处理过程的描述。 12.2 数据库设计数据库设计 12.2.1 数据库设计的策略与方法数据库设计的策略与方法1.数据库设计的策略数据库设计的策略2.数据库设计的主流方法数据库设计的主流方法 (1)er模型加规范化关系的方法模型加规范化关系的方法 (2)数据元素图加规范化关系的方法数据元素图加规范化关系的方法 12.2 数据库设计数据库设计 12.2.2 数据库设计的步骤数据库设计的步骤 12.2 数据库设计数据库设计 12.2.3 概念结构设计概念结构设计概念结构设计的目标是产生反映系统信息概念结

7、构设计的目标是产生反映系统信息需求的数据库概念结构,即概念模式。概念需求的数据库概念结构,即概念模式。概念结构是独立于支持数据库的结构是独立于支持数据库的dbms和使用的和使用的硬件环境的。此时,设计人员从用户的角度硬件环境的。此时,设计人员从用户的角度看待数据以及数据处理的要求和约束,产生看待数据以及数据处理的要求和约束,产生一个反映用户观点的概念模式,然后再把概一个反映用户观点的概念模式,然后再把概念模式转换为逻辑模式。念模式转换为逻辑模式。 12.2 数据库设计数据库设计 12.2.4 逻辑结构设计逻辑结构设计数据库的逻辑设计就是把概念设计得到的数据库的逻辑设计就是把概念设计得到的数据库

8、模型,转化为具体的数据库模型,转化为具体的dbms所能接受所能接受的数据库逻辑结构,包括数据库模式和外模的数据库逻辑结构,包括数据库模式和外模式。而目前大多数式。而目前大多数dbms支持关系数据模型,支持关系数据模型,所以数据库的逻辑设计,首先是将所以数据库的逻辑设计,首先是将er模型模型转换为等价的关系模式。关系数据库的逻辑转换为等价的关系模式。关系数据库的逻辑结构设计的一般步骤如图结构设计的一般步骤如图 12.3所示。所示。12.2 数据库设计数据库设计 从e -r模 式 导 出 初 始 关 系 模 式关 系 模 式 规 范 化模 式 评 价是 否 需 要 调 整否模 式 调 整处 理 需

9、 求e -r模 型d b m s特 性进 入 物 理 设 计 阶 段是图12.3 关系数据库的逻辑设计步骤12.2 数据库设计数据库设计 12.2.5物理结构设计物理结构设计数据库物理结构设计阶段将根据具体计算数据库物理结构设计阶段将根据具体计算机系统机系统(dbms与硬件等与硬件等)的特点,为给定的数的特点,为给定的数据模型确定合理的存储结构和存取方法。据模型确定合理的存储结构和存取方法。为设计数据库物理结构,设计人员必须充为设计数据库物理结构,设计人员必须充分了解所用分了解所用dbms的内部特征;充分了解数的内部特征;充分了解数据库的应用环境,特别是数据应用处理的频据库的应用环境,特别是数

10、据应用处理的频率和响应时间的要求;充分了解外存储设备率和响应时间的要求;充分了解外存储设备的特性。数据库物理结构设计的环境如图的特性。数据库物理结构设计的环境如图12.4所示。所示。 12.2 数据库设计数据库设计 数据库物理结构设计人员逻辑数据库结构(模式、子模式)应用中存取路径的需求数据库物理结构 存储记录格式 记录存放位置 存取方法dbms特性及os限制处理频率及操作要求硬件设备特征数据容量12.2 数据库设计数据库设计 12.2.6 数据库实施和维护数据库实施和维护在数据库正式投入运行之前,还需要完成在数据库正式投入运行之前,还需要完成很多工作。比如,在模式和子模式中加入数很多工作。比

11、如,在模式和子模式中加入数据库安全性、完整性的描述,完成应用程序据库安全性、完整性的描述,完成应用程序和加载程序的设计,数据库系统的试运行,和加载程序的设计,数据库系统的试运行,并在试运行中对系统进行评价。如果评价结并在试运行中对系统进行评价。如果评价结果不能满足要求,还需要对数据库进行修正果不能满足要求,还需要对数据库进行修正设计,直到满意为止。数据库正式投入使用,设计,直到满意为止。数据库正式投入使用,也并不意味着数据库设计生命周期的结束,也并不意味着数据库设计生命周期的结束,而是数据库维护阶段的开始。而是数据库维护阶段的开始。 12.3 系统设计系统设计 12.3.1 系统总体设计系统总

12、体设计系统总体设计主要是总结功能框架设计,系统总体设计主要是总结功能框架设计,涉及数据库设计、数据输入和输出的用户界涉及数据库设计、数据输入和输出的用户界面设计以及程序调试等若干环节,最后需要面设计以及程序调试等若干环节,最后需要将它们连编成可执行的应用程序。将它们连编成可执行的应用程序。vfp6应用应用程序通常由以下几部分组成:程序通常由以下几部分组成:1.应用系统主程序应用系统主程序2.数据库数据库3.用户界面用户界面 4.结果输出结果输出 12.3 系统设计系统设计 12.3.2 系统详细设计系统详细设计1.创建数据库创建数据库数据库应用系统性能的好坏,主要取决于数据数据库应用系统性能的

13、好坏,主要取决于数据库的设计。库的设计。vfp6也提供了与关系数据库理论一致的也提供了与关系数据库理论一致的数据定义环境,如数据库、表、永久关系等,因此,数据定义环境,如数据库、表、永久关系等,因此,应将重点放在考虑整体数据库结构上。应将重点放在考虑整体数据库结构上。 2.定义和引用类定义和引用类vfp提供了一系列有利于开发应用程序、尤其提供了一系列有利于开发应用程序、尤其是用户界面的基类。开发者也可以在基类上创建自是用户界面的基类。开发者也可以在基类上创建自定义类,以实现特殊功能。利用定义类,以实现特殊功能。利用vfp的类库,能协的类库,能协助开发者快速创建原型,并向应用程序中添加功能,助开

14、发者快速创建原型,并向应用程序中添加功能,使代码更易管理和维护。使代码更易管理和维护。 12.3 系统设计系统设计 3.精心设计用户界面精心设计用户界面 用户界面包括菜单、表单、工具栏等,它们可用户界面包括菜单、表单、工具栏等,它们可以将应用程序的所有功能与界面中的控件、菜单命以将应用程序的所有功能与界面中的控件、菜单命令联系起来。每一个界面都直接向用户展示了一个令联系起来。每一个界面都直接向用户展示了一个应用程序的功能。应用程序的功能。4.提供具有交互能力的输出信息提供具有交互能力的输出信息应用系统的信息可以表单、报表、标签等多种应用系统的信息可以表单、报表、标签等多种形式输出。形式输出。v

15、fp中的工具给用户提供了任意选择输中的工具给用户提供了任意选择输出形式的功能,在开发应用程序时应注意设置这些出形式的功能,在开发应用程序时应注意设置这些功能。例如,查询中可以扩展用户控制数据的能力功能。例如,查询中可以扩展用户控制数据的能力(接受用户自定义参数的查询接受用户自定义参数的查询),输出报表时允许用,输出报表时允许用户选择全部打印或部分打印等。户选择全部打印或部分打印等。 12.4 系统实现与调试系统实现与调试 测试和调试应用程序工作贯穿在编程过程的各测试和调试应用程序工作贯穿在编程过程的各个阶段。一般先局部后整体,即分别对每一个应用个阶段。一般先局部后整体,即分别对每一个应用程序调

16、试通过,再在项目管理器中对整体系统进行程序调试通过,再在项目管理器中对整体系统进行联编、联调。测试阶段的任务就是验证系统设计与联编、联调。测试阶段的任务就是验证系统设计与实现阶段中所完成的功能是否能满足用户需求,从实现阶段中所完成的功能是否能满足用户需求,从而确认系统是否可以交付运行。在系统实现阶段,而确认系统是否可以交付运行。在系统实现阶段,一般说来,设计人员也会进行一些测试工作,但这一般说来,设计人员也会进行一些测试工作,但这是由设计人员自己进行的一种局部的验证工作,重是由设计人员自己进行的一种局部的验证工作,重点是检测程序有无逻辑错误,与系统测试在测试目点是检测程序有无逻辑错误,与系统测

17、试在测试目的及全面性方面是有很大差别的。的及全面性方面是有很大差别的。 12.5 数据库应用系统开发实例数据库应用系统开发实例12.5.1 设计思路设计思路学生学籍管理系统的运行以封面表单开始,学生学籍管理系统的运行以封面表单开始,如图如图12.6所示,要求用户输入登录密码,并所示,要求用户输入登录密码,并设置三次检查功能,若三次输入的密码均有设置三次检查功能,若三次输入的密码均有错,则自动退出系统;否则出现系统菜单,错,则自动退出系统;否则出现系统菜单,接收用户的操作,操作完毕后用户可以从系接收用户的操作,操作完毕后用户可以从系统菜单中退出系统。统菜单中退出系统。12.5 数据库应用系统开发

18、实例数据库应用系统开发实例12.5.2 系统功能系统功能系统的功能主要分成十个功能模块,它们是:录入数据、系统的功能主要分成十个功能模块,它们是:录入数据、修改数据、删除数据、查询数据、统计数据、显示数据、打修改数据、删除数据、查询数据、统计数据、显示数据、打印数据、导出数据、导入数据和清空数据。录入数据可以实印数据、导出数据、导入数据和清空数据。录入数据可以实现学生信息的录入;修改数据可以实现学生信息的修改;删现学生信息的录入;修改数据可以实现学生信息的修改;删除数据可以实现学生数据的删除;查询数据可以实现学生信除数据可以实现学生数据的删除;查询数据可以实现学生信息的查询;统计数据可以实现学

19、生人数、党员人数、学生总息的查询;统计数据可以实现学生人数、党员人数、学生总平均成绩、高数平均成绩、英语平均成绩和平均成绩、高数平均成绩、英语平均成绩和vfp平均成绩的平均成绩的统计;显示数据可以实现以字段分布和二维表两种方式显示统计;显示数据可以实现以字段分布和二维表两种方式显示学生信息;打印数据可以实现用报表的形式打印学生的信息;学生信息;打印数据可以实现用报表的形式打印学生的信息;导出数据可以实现学生数据的备份,防止数据丢失;导入数导出数据可以实现学生数据的备份,防止数据丢失;导入数据可以实现学生数据的还原,保证数据的正确性;清空数据据可以实现学生数据的还原,保证数据的正确性;清空数据可

20、以实现学生数据的清空操作。可以实现学生数据的清空操作。12.5 数据库应用系统开发实例数据库应用系统开发实例12.5.3 主要数据表结构主要数据表结构 (可定义表名为可定义表名为xj.dbf) 12.5 数据库应用系统开发实例数据库应用系统开发实例12.5.4 具体设计具体设计1.学生学籍管理系统主程序源代码学生学籍管理系统主程序源代码(程序名为程序名为main.prg) _screen.windowstate=2 &设置窗口规格为第设置窗口规格为第2种系统窗口种系统窗口 _screen.caption=学生学籍管理系统学生学籍管理系统 &设置窗口标题为设置窗口标题为“学生学籍

21、管理系统学生学籍管理系统” _screen.closable=.t. &去掉关闭按钮去掉关闭按钮 _screen.controlbox=.f. &去掉控制按钮去掉控制按钮 _screen.maxbutton=.f. &去掉最大化按钮去掉最大化按钮 _screen.minbutton=.f. &去掉最小化按钮去掉最小化按钮 _screen.backcolor=rgb(50,100,128) &设置窗口的背景色设置窗口的背景色 close all clear all clear 12.5 数据库应用系统开发实例数据库应用系统开发实例set sysmenu o

22、ff set sysmenu to set talk off set safety off set status bar off &关闭关闭vfp6的状态栏的状态栏 do form 封面封面.scx &调用系统登录调用系统登录“封面封面”表单表单 read event &响应用户输入响应用户输入 do菜单菜单.mpx &运行系统菜单运行系统菜单 read event set sysmenu to default &恢复恢复vfp6的系统菜单的默认值的系统菜单的默认值 set sysmenu on &显示显示vfp6的系统菜单的系统菜单 set s

23、tatus bar on &显示显示vfp6的状态栏的状态栏 close all &关闭所有文件关闭所有文件 clear allreturn &返回返回 12.5 数据库应用系统开发实例数据库应用系统开发实例图12.5 登录界面图12.6 录入数据12.5 数据库应用系统开发实例数据库应用系统开发实例2.封面表单源代码封面表单源代码(封面封面.scx) procedure clickset exact onif thisform.text1.value =8888 thisform.release do 菜单菜单.mpxelse thisform.no=thisform

24、.no+1 &将自定义属性将自定义属性no的的值由值由0加加1 if thisform.no=3 &如果自定义属性如果自定义属性no的值为的值为3 =messagebox(密码三次输错,您不能使用本密码三次输错,您不能使用本系统!系统!,0+16+0,警告警告) quit12.5 数据库应用系统开发实例数据库应用系统开发实例else =messagebox(密码错误!密码错误!,48+0+0,警告警告) thisform.text1.value= thisform.text1.setfocus thisform.refresh endif endif set exact off

25、endproc procedure click &取消按钮的单击事件过程取消按钮的单击事件过程 thisform.release &释放封面表单释放封面表单 close allclear event quit endproc 12.5 数据库应用系统开发实例数据库应用系统开发实例3.录入数据表单源代码录入数据表单源代码(录入录入.scx) procedure initset talk offthisformmand4.enabled=.f.thisformmand5.enabled=.f.thisform.txt学号学号. enabled =.f.thisform.txt姓名姓

26、名.enabled=.f.thisform.combo1.enabled=.f.thisform.combo2.enabled=.f.thisform.combo3.enabled=.f.thisform.combo4.enabled=.f.12.5 数据库应用系统开发实例数据库应用系统开发实例thisform.txt邮编邮编.enabled=.f. &设置邮编文本框为不可用状态设置邮编文本框为不可用状态 thisform.txt高数高数.enabled=.f. &设置高数文本框为不可用状态设置高数文本框为不可用状态 thisform.txt英语英语.enabled=.f. &

27、amp;设置英语文本框为不可用状态设置英语文本框为不可用状态 thisform.txtvfp.enabled=.f. &设置设置vfp文本框为不可用状态文本框为不可用状态 thisform.combo5.enabled=.f. &设置组合框设置组合框5为不可用状态为不可用状态 thisform.txt电话电话.enabled=.f. &设置电话文本框为不可用状态设置电话文本框为不可用状态 thisform.txt通信地址通信地址.enabled=.f. &设置通信地址文本框为不设置通信地址文本框为不可用状态可用状态 thisform.edt备注备注.enable

28、d=.f. &设置备注编辑框为不可用状态设置备注编辑框为不可用状态 endproc 12.5 数据库应用系统开发实例数据库应用系统开发实例procedure load &录入数据表单的加载事件过程录入数据表单的加载事件过程 close data &关闭所有数据库关闭所有数据库 use xj存存 &打开打开xj.dbf表文件表文件 set multilocks on &设置锁定一组记录设置锁定一组记录 =cursorsetprop(buffering,5,xj) &打开开放式表缓冲打开开放式表缓冲 endproc 12.5 数据库应用系统开发实例数

29、据库应用系统开发实例procedure interactivechange &录入数据表单的交互改变事件过程录入数据表单的交互改变事件过程 repl 出生年月出生年月 with thisform.combo2.displayvalue + . + thisform.combo3. displayvalue + . + thisform.combo4.displayvaluethisform.refresh &刷新录入数据表单刷新录入数据表单 endproc 12.5 数据库应用系统开发实例数据库应用系统开发实例procedure command1.click &单击命令

30、按钮单击命令按钮1的事件过程的事件过程 append blank &添加一空白记录添加一空白记录 thisform.refresh &刷新录入数据表单刷新录入数据表单 thisformmand1.enabled=.f. &设置命令按钮设置命令按钮1为不可用状态为不可用状态 thisformmand2.enabled=.f. &设置命令按钮设置命令按钮2为不可用状态为不可用状态 thisformmand3.enabled=.f. &设置命令按钮设置命令按钮3为不可用状态为不可用状态 thisformmand4.enabled=.t. &设置命令按钮

31、设置命令按钮4为可用状态为可用状态 thisformmand5.enabled=.t. &设置命令按钮设置命令按钮5为可用状态为可用状态 thisformmand6.enabled=.f. &设置命令按钮设置命令按钮6为不可用状态为不可用状态 thisform.txt学号学号.enabled=.t. thisform.txt姓名姓名.enabled=.t. 12.5 数据库应用系统开发实例数据库应用系统开发实例thisform.combo1.enabled=.t. thisform.combo2.enabled=.t. thisform.combo3.enabled=.t. t

32、hisform.combo4.enabled=.t. thisform.txt邮编邮编.enabled=.t. thisform.txt高数高数.enabled=.t. thisform.txt英语英语.enabled=.t. thisform.txtvfp.enabled=.t. thisform.combo5.enabled=.t. thisform.txt电话电话.enabled=.t. thisform.txt通信地址通信地址.enabled=.t. thisform.edt备注备注.enabled=.t. thisform.txt学号学号.setfocus endproc 12.5

33、数据库应用系统开发实例数据库应用系统开发实例procedure command2.click &单击命令按钮单击命令按钮2的事件过程的事件过程 set delete on &设置打开删除命令设置打开删除命令 delete &删除当前记录删除当前记录 yn=messagebox(确实要删除这条记录?确实要删除这条记录?,4+32+256,删除确认删除确认)do case &运行条件判断语句运行条件判断语句 case yn=6 &当单击当单击“是是”按钮时按钮时 =tableupdate(.t.) &执行更新表函数,删除当前记录执行更新表函数,删除当

34、前记录 case yn=7 &当单击当单击“否否”按钮时按钮时 recall &恢复已作了删除标记的当前记录恢复已作了删除标记的当前记录 endcase thisform.refresh endproc 12.5 数据库应用系统开发实例数据库应用系统开发实例procedure command3.click &单击命令按钮单击命令按钮3的事件过程的事件过程 thisformmand1.enabled=.f. thisformmand2.enabled=.f. thisformmand3.enabled=.f. thisformmand4.enabled=.t. thisf

35、ormmand5.enabled=.t. thisformmand6.enabled=.f. endproc 12.5 数据库应用系统开发实例数据库应用系统开发实例procedure command4.click &单击命令按钮单击命令按钮4的事件过程的事件过程 =tableupdate(.t.) thisformmand1.enabled=.t. thisformmand2.enabled=.t. thisformmand3.enabled=.t. thisformmand4.enabled=.f. thisformmand5.enabled=.f. thisformmand6.en

36、abled=.t. endproc 12.5 数据库应用系统开发实例数据库应用系统开发实例procedure command5.click &单击命令按钮单击命令按钮5的事件过程的事件过程 =tablerevert(.t.) thisformmand1.enabled=.t. thisformmand2.enabled=.t. thisformmand3.enabled=.t. thisformmand4.enabled=.f. thisformmand5.enabled=.f. thisformmand6.enabled=.t. endproc 12.5 数据库应用系统开发实例数据库

37、应用系统开发实例procedure command6.click &单击命令按钮单击命令按钮6的事件过程的事件过程 sele 1 &选择选择1号工作区号工作区 use xj exclusive 打开打开xj.dbf数据表数据表 pack &彻底删除已作了删除标记的记录彻底删除已作了删除标记的记录 thisform.release &释放录入数据表单释放录入数据表单 endproc procedure interactivechange repl 是否党员是否党员 with thisform.combo5.displayvaluethisform.refresh

38、endproc 12.5 数据库应用系统开发实例数据库应用系统开发实例4.修改数据表单源代码修改数据表单源代码(修改修改.scx)thisformmand7.enabled=.t.procedure command1.click if not bof() skip 1 thisform.refresh thisformmand2.enabled=.t. else wait window 已经是第一条记录!已经是第一条记录! endif endproc 12.5 数据库应用系统开发实例数据库应用系统开发实例procedure command2.click if not eof() &如果

39、记录指针没有到记录的结尾如果记录指针没有到记录的结尾 skip &向下跳转一条记录向下跳转一条记录 thisform.refresh thisformmand1.enabled=.t. else wait window 已经是最后一条记录!已经是最后一条记录! endif endproc 12.5 数据库应用系统开发实例数据库应用系统开发实例procedure command3.click go top &将记录指针移到记录的开头将记录指针移到记录的开头 thisform.refresh thisformmand1.enabled=.f. thisformmand2.enabl

40、ed=.t. endproc 图12.7 修改记录12.5 数据库应用系统开发实例数据库应用系统开发实例procedure command4.click go bottom &将记录指针移到记录的结尾将记录指针移到记录的结尾 thisform.refresh thisformmand1.enabled=.t. thisformmand2.enabled=.f. endproc 12.5 数据库应用系统开发实例数据库应用系统开发实例procedure command5.click =tableupdate(.t.) thisformmand1.enabled=.t. thisformma

41、nd2.enabled=.t. thisformmand3.enabled=.t. thisformmand4.enabled=.t. thisformmand5.enabled=.f. thisformmand6.enabled=.f. thisformmand7.enabled=.t. endproc 12.5 数据库应用系统开发实例数据库应用系统开发实例procedure command6.click =tablerevert(.t.) &启用表缓冲,放弃表中对所有记录所做的修改函数启用表缓冲,放弃表中对所有记录所做的修改函数 thisformmand1.enabled=.t.

42、thisformmand2.enabled=.t. thisformmand3.enabled=.t. thisformmand4.enabled=.t. thisformmand5.enabled=.f. thisformmand6.enabled=.f. endproc 12.5 数据库应用系统开发实例数据库应用系统开发实例procedure command7.click use xj exclusive pack thisform.release endproc 12.5 数据库应用系统开发实例数据库应用系统开发实例procedure click if empty(thisform.co

43、mbo1.value) &如果组合框如果组合框1的值为空的值为空 =messagebox(请选择学号!请选择学号!,48+0+0,学生学籍管理系统学生学籍管理系统) endif aa=recno() &用显示记录号的函数将记录号赋给变量用显示记录号的函数将记录号赋给变量aa go aa &将记录指针移到当前记录号将记录指针移到当前记录号 thisform.txt学号学号.refresh &刷新学号文本框的内容刷新学号文本框的内容 thisform.txt姓名姓名.refresh &刷新姓名文本框的内容刷新姓名文本框的内容 thisform.txt性别性别

44、.refresh &刷新性别文本框的内容刷新性别文本框的内容 thisform.txt出生年月出生年月.refresh &刷新出生年月文本框的内容刷新出生年月文本框的内容 thisform.txt邮编邮编.refresh &刷新邮编文本框的内容刷新邮编文本框的内容 12.5 数据库应用系统开发实例数据库应用系统开发实例thisform.txt高数高数.refresh &刷新高数文本框的内容刷新高数文本框的内容 thisform.txt英语英语.refresh &刷新英语文本框的内容刷新英语文本框的内容 thisform.txtvfp.refresh &a

45、mp;刷新刷新vfp文本框的内容文本框的内容 thisform.txt是否党员是否党员.refresh &刷新是否党员文本框的内容刷新是否党员文本框的内容 thisform.txt电话电话.refresh &刷新电话文本框的内容刷新电话文本框的内容 thisform.txt通信地址通信地址.refresh &刷新通信地址文本框的内容刷新通信地址文本框的内容 thisform.edt备注备注.refresh &刷新备注编辑框的内容刷新备注编辑框的内容 thisformmand5.enabled=.t. thisformmand6.enabled=.t. endpr

46、oc 12.5 数据库应用系统开发实例数据库应用系统开发实例5.查询数据表单源代码查询数据表单源代码(查询查询.scx) 图12.8 查询数据图12.9 统计数据12.5 数据库应用系统开发实例数据库应用系统开发实例procedure click if empty(thisform.combo1.value) =messagebox(请选择学号!请选择学号!,48+0+0,学生学籍管理系统学生学籍管理系统) endif aa=recno() go aa thisform.txt学号学号.refresh thisform.txt姓名姓名.refresh thisform.txt性别性别.refr

47、esh 图图12.9 统计数据统计数据thisform.txt出生年月出生年月.refresh thisform.txt邮编邮编.refresh thisform.txt高数高数.refresh thisform.txt英语英语.refresh thisform.txtvfp.refresh thisform.txt是否党员是否党员.refresh thisform.txt电话电话.refresh thisform.txt通信地址通信地址.refresh thisform.edt备注备注.refresh endproc 12.5 数据库应用系统开发实例数据库应用系统开发实例6.统计数据表单源代

48、码统计数据表单源代码(统计统计.scx)procedure clickcount to aa for 是否党员是否党员=是是thisform.text5.value=aathisform.text5.refresh endproc procedure click &单击单击“统计英语平均成绩统计英语平均成绩”按钮时的事件过程按钮时的事件过程 average 英语英语 to aa &对所有记录的英语成绩求平均,并将平均对所有记录的英语成绩求平均,并将平均值赋给变量值赋给变量aa thisform.text3.value=aa &将变量将变量aa的值赋给文本框的值赋给文本框

49、3 thisform.text3.refresh endproc 12.5 数据库应用系统开发实例数据库应用系统开发实例procedure click &单击单击“统计统计vfp平均成绩平均成绩”按钮时的事件过程按钮时的事件过程 average vfp to aa &对所有记录的对所有记录的vfp成绩求平均,并将平均值赋成绩求平均,并将平均值赋给变量给变量aa thisform.text4.value=aa &将变量将变量aa的值赋给文本框的值赋给文本框4 thisform.text4.refresh endproc procedure click &单击单击“

50、统计总平均成绩统计总平均成绩”按钮时的事件过程按钮时的事件过程 average 高数高数 to aa &对所有记录的高数成绩求平均,并将平均值赋对所有记录的高数成绩求平均,并将平均值赋给变量给变量aa average 英语英语 to bb &对所有记录的英语成绩求平均,并将平均值赋对所有记录的英语成绩求平均,并将平均值赋给变量给变量bb average vfp to cc &对所有记录的对所有记录的vfp成绩求平均,并将平均值赋成绩求平均,并将平均值赋给变量给变量cc store (aa+bb+cc)/3 to dd &将三门成绩的平均成绩和除将三门成绩的平均成

51、绩和除3的总平均的总平均成绩赋给成绩赋给dd thisform.text6.value=dd &将变量将变量dd的值赋给文本框的值赋给文本框6 thisform.text6.refresh endproc 12.5 数据库应用系统开发实例数据库应用系统开发实例7.显示数据表单源代码显示数据表单源代码(显示显示.scx)图12.10 显示数据12.5 数据库应用系统开发实例数据库应用系统开发实例7.显示数据表单源代码显示数据表单源代码(显示显示.scx)procedure command1.click &单击单击“上条上条”按钮的事件过程按钮的事件过程 if not bof()

52、skip -1 thisform.refresh thisformmand2.enabled=.t. else wait window 已经是第一条记录了!已经是第一条记录了! endif endproc procedure command2.click &单击单击“下条下条”按钮的事件过程按钮的事件过程 if not eof() skip 12.5 数据库应用系统开发实例数据库应用系统开发实例 thisform.refresh thisformmand1.enabled=.t. else wait window 已经是最后一条记录了!已经是最后一条记录了! endif endproc

53、 procedure command3.click &单击单击“首条首条”按钮的事件过程按钮的事件过程 go top thisform.refresh thisformmand1.enabled=.f. thisformmand2.enabled=.t. endproc 12.5 数据库应用系统开发实例数据库应用系统开发实例procedure command4.click &单击单击“末条末条”按钮的事件过程按钮的事件过程 go bottom thisform.refresh thisformmand1.enabled=.t. thisformmand2.enabled=.f.

54、 endproc procedure command5.click &单击单击“返回返回”按钮的事件过程按钮的事件过程 thisform.release endproc 12.5 数据库应用系统开发实例数据库应用系统开发实例 8.删除数据表单源代码删除数据表单源代码(删除删除.scx)图12.11 删除数据12.5 数据库应用系统开发实例数据库应用系统开发实例 8.删除数据表单源代码删除数据表单源代码(删除删除.scx)procedure clickif empty(thisform.combo1.value) =messagebox(请选择学号!请选择学号!,48+0+0,学生学籍学

55、生学籍管理系统管理系统) thisform.command2.enabled=.f. else thisform.command2.enabled=.t. endif aa=recno() go aa thisform.txt学号学号.refresh thisform.txt姓名姓名.refresh 12.5 数据库应用系统开发实例数据库应用系统开发实例thisform.txt性别性别.refresh thisform.txt出生年月出生年月.refreshthisform.txt邮编邮编.refresh thisform.txt高数高数.refresh thisform.txt英语英语.re

56、fresh thisform.txtvfp.refresh thisform.txt是否党员是否党员.refresh thisform.txt电话电话.refresh thisform.txt通信地址通信地址.refresh thisform.edt备注备注.refresh endproc 12.5 数据库应用系统开发实例数据库应用系统开发实例procedure click &单击单击“删除删除”按钮的事件过程按钮的事件过程 set delete on delete yn=messagebox(确实要删除这条记录?确实要删除这条记录?,4+32+256,删除确认删除确认) do cas

57、e case yn=6 =tableupdate(.t.) =messagebox(记录已成功删除!记录已成功删除!,0+64+0,学生学生学籍管理系统学籍管理系统) thisform.command2.enabled=.f. thisform.combo1.displayvalue=请选择请选择 go top 12.5 数据库应用系统开发实例数据库应用系统开发实例 case yn=7 recall endcase thisform.refreshendproc procedure init &删除数据表单的初始化过程删除数据表单的初始化过程 set talk off thisform

58、.command2.enabled=.f. endproc procedure click use xj exclusive pack thisform.release endproc12.5 数据库应用系统开发实例数据库应用系统开发实例 9.导出数据表单源代码导出数据表单源代码(导出数据导出数据.scx)图12.12 导出数据12.5 数据库应用系统开发实例数据库应用系统开发实例procedure clickset safety off use a:xjgo top if empty(thisform.combo1.value) =messagebox(请选择盘符!请选择盘符!,48+0+0,学生学学生学籍管理系统籍管理系统) else if empty(thisform.text1.value) =messagebox(请输入文件名!请输入文件名!,48+0+0,学生学生学籍管理系统学籍管理系统)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论