基于VF的图书馆管理系统的开发与实现_第1页
基于VF的图书馆管理系统的开发与实现_第2页
基于VF的图书馆管理系统的开发与实现_第3页
基于VF的图书馆管理系统的开发与实现_第4页
基于VF的图书馆管理系统的开发与实现_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

1、 图书馆管理系统的开发与实现 学 号:学生姓名:专 业: 指导教师:提交时间: 第 57 页 摘要本文首先介绍了数据库管理系统(DBMS)的基本概念及关系模型等。然后对问题的来源进行深入分析,指出图书借阅者、图书馆工作人员和图书馆管理人员是问题主要来源,并指出本数据管理系统的实用性功能就是管理好图书馆信息,提高工作效率,避免数据处理手工操作,工作量大,出错率高的弊端。接着对需求分析进行细致的分析,特别对图书借阅者、图书馆工作人员和图书馆管理人员三者权限进行分配。接着对系统功能模块进行分析,指出本系统功能模块主要分为“图书资料管理”模块、“学生资料管理”模块、“借还书操作”模块。总的来说,本图书

2、管理系统,介绍了该系统组成结构、功能特点、使用原理和方法,本系统实现了系统登陆、图书管理、学生管理图书的借阅与归还、图书借阅排行榜和查看逾期未还图书以及各种信息的打印等功能。有了这个系统就使图书馆的工作变得简单了许多,使图书馆的图书管理形成了一个整体自动化管理模式。摘要 1第1章 基础理论知识3§1.1  数据库应用系统开发简介3§1.2  数据库管理系统3§1.3 VisualFoxPro简介4第2章 问题来源5第3章 总体设计7§3.1 应用需求分析 7§3.2 模块分析7§3.2.1 功能模块图8§

3、3.2.2 模块分析8第4章 详细设计 10§4.1 设计创建数据库10§4.1.1 设计数据库10§4.1.2 创建数据库10§4.2 创建系统主程序13§4.3 创建系统常用类13§4.3.1 创建“移动记录工具栏”类14§4.3.2 创建“命令按钮工具栏”类14§4.4创建系统主表单 16§4.4.1系统主表单的功能16§4.4.2创建系统主表单界面 16§4.4.3 添加表单代码 24§4.4.4 创建系统主表单辅助表单30§4.5 创建“读者借书记录”模块

4、37§4.5.1 主表单的功能 37§4.5.2 创建主表单界面 38§4.5.3 添加主表单代码 43§4.5.4 创建辅助表单45§4.6 创建系统打印功能50第5章 结果分析52结束语53致谢54参考文献55第1章 基础理论知识1.1 数据库应用系统开发简介在数据库应用系统开发之前,对开发数据库的基本概念应当了解,对数据库的结构、开发数据库应用程序的步骤、开发体系及方法都应当有相当清晰的了解和认识。数据库应用系统开发的目标是建立一个满足用户长期需求的产品。开发的主要过程为:理解用户的需求,然后,把它们转变为有效的数据库设计。把设计转变为实

5、际的数据库,并且这些数据库带有功能完备、高效能的应用。数据库技术在计算机软件邻域研究中一直是非常重要的主题,产生于60年代,40多年来数据库技术得到了迅速发展,并已形成较为完整的理论体系和一大批实用系统。并且,近年来,随着World Wide Web(WWW)的猛增及Internet技术的迅速发展,使得数据库技术一时成为最热门技术之一。1.2 数据库管理系统数据库管理系统(DBMS)是指数据库系统中管理数据的软件系统。DBMS是数据库系统的核心组成部分。对数据库的一切操作,包括定义、更新及各种控制,都是通过DBMS进行的。DBMS总是基于某种数据模型,可以把DBMS看成是某

6、种数据模型在计算机系统上的具体实现。根据数据模型的不同,DBMS可以分成层次型、网状型、关系型、面向对象型等。Visual FoxPro就是一种关系型数据库管理系统。关系模型。关系模型主要是用二维表格结构表达实体集,用外键表示实体间联系。关系模型是由若干个关系模式组成的集合。关系模式相当于前面提到的记录类型,它的实例称为关系,每个关系实际上是一张二维表格。关系模型和层次、网状模型的最大判别是用关键码而不是用指针导航数据,表格简单用户易懂,编程时并不涉及存储结构,访问技术等细节。关系模型是数学化模型。SQL语言是关系数据库的标准化语言,已得到了广泛的应用。1.3 VisualFoxPro简介Vi

7、sual FoxPro 6.0(简称VFP) 是由Microsoft公司推出的,它是xBase数据库家族的一员,是其前身FoxPro与可视程序设计相结合的产物。VFP 可以简化数据管理,而且使应用程序的开发流程更为合理。它使组织数据、定义数据库规则和建立应用程序等工作变得简单易行。利用可视化的设计工具和向导,可以快速创建表单、查询和报表。在VFP中,可以使用数据库组织和建立表和视图间的关系,在使用数据库时,你可以在表一级进行功能扩展,如创建字段级规则、设置默认字段值和触发器等。VFP 提供了真正无模式操作,能够轻松的进行对多个表单的自动协调,而且很容易的运行一个表单的多个实例。还有提供的丰富有

8、事件处理机制,给用户提供一个更丰富的交互环境。利用表单,可以让用户在熟悉的环境下查看数据或将数据输入数据库。但表单提供的远不止一个界面:它还提供丰富的对象集,这些对象能响应用户(或系统)事件,这样就能使用户尽可能方便和直观的完成信息管理工作。V FP提供了一个功能强大的表单设计器,使得表单的设计变得又快又容易。表单和表单集是拥有自己的属性、事件和方法程序的对象,在表单设计器中可以设置这些属性、事件和方法程序。第2章 问题来源当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不

9、仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好图书馆信息而设计的。图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。

10、数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统、规范的信息管理手段。尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。数据处理手工操作,工作量大,出错率高,出错后不易更改。图书馆采取手工方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管理工作混乱而又复杂;一般借阅情况是记录在借书证上,图书的数目和内容记录在文件中,图书馆的工作人员和管理员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。如要对很长时间以前的图书进行更改就更

11、加困难了。基于这些问题,我认为有必要建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。第3章 总体设计3.1 应用需求分析图书管理系统需要满足来自三方面的需求,这三个方面分别是图书借阅者、图书馆工作人员和图书馆管理人员。图书借阅者的需求是查询图书馆所存的图书、个人借阅情况及个人信息的修改;图书馆工作人员对图书借阅者的借阅及还书要求进行操作,同时形成借书或还书报表给借阅者查看确认;图书馆管理人员的功能最为复杂,包括对工作人员、图书借阅者、图书进行管理和维护及系统状态的查看、维护并生成催还图书报表

12、。图书借阅者可直接查看图书馆图书情况,如果图书借阅者根据本人借书证号和密码登录系统,还可以进行本人借书情况的查询和维护部分个人信息。一般情况下,图书借阅者只应该查询和维护本人的借书情况和个人信息,若查询和维护其他借阅者的借书情况和个人信息,就要知道其他图书借阅者的借书证号和密码。这些是很难得到的,特别是密码,所以不但满足了图书借阅者的要求,还保护了图书借阅者的个人隐私。图书馆工作人员有修改图书借阅者借书和还书记录的权限,所以需对工作人员登陆本模块进行更多的考虑。在此模块中,图书馆工作人员可以为图书借阅者加入借书记录或是还书记录,并打印生成相应的报表给用户查看和确认。图书馆管理人员功能的信息量大

13、,数据安全性和保密性要求最高。本功能实现对图书信息、借阅者信息、总体借阅情况信息的管理和统计、工作人员和管理人员信息查看及维护。图书馆管理员可以浏览、查询、添加、删除、修改、统计图书的基本信息;浏览、查询、统计、添加、删除和修改图书借阅者的基本信息,浏览、查询、统计图书馆的借阅信息。 3.2 模块分析3.2.1 功能模块图 还书操作 借书操作借还书操作图书资料管理图书管理系统学生资料管理 资料打印 资料查询 资料删除资料修改 逾期图书 书籍排行资料添加3.2.2 模块分析 “图书资料管理”模块“图书资料管理”模块主要实现图书资料的分条浏览、添加、修改、删除、查询和打印功能。在表单

14、的“书籍资料”页框中可以通过“移动记录工具栏”分条查看系统内所有的图书的详细资料,包括图书的名称、类别、作者、出版社、购买日期等。单击“命令按钮工具栏”中的按钮可以对 “书籍资料”页框中的记录进行相应的操作。 “学生资料管理”模块“学生资料管理”模块主要实现学生资料的分条浏览、添加、修改、删除、查询和打印功能。在表单的“学生资料”页框中可以通过“移动记录工具栏”分条查看系统内所有的学生详细资料,包括学生姓名、性别、系别、班级等资料。单击“命令按钮工具栏”中的按钮可以对“学生资料”页框中的记录进行相应的操作。 “借还书操作”模块“借还书操作”模块主要实现读者借书记录的

15、查看、借还书操作、图书借阅排行榜、查看逾期未归还图书和记录打印等功能。读者借书记录查看功能可以查看所有的借书记录 ,也可以只查看目前尚未归还的借书记录。在“读者借书记录”表单中单击“借书”按钮 ,在打开的“输入”表单中 ,输入要借出的图书编号 ,如果该图书在馆中而且该读者还能借书 , 则借书成功。“读者借书记录”表单中单击“还书”按钮 , 在打开的“输入”表单中输入要归还的图书的图书编号 ,如果该图书是被当前读者借出 ,则还书成功。当表单中显示的是读者未归还的图书列表时 , 在列出借书记录的表格中双击要归还的图书的“图书编号”栏即可将此图书还入。在“读者借书记录”表单中 , 单击“过期”按钮

16、, 可以查看系统内到了归还日期而未归还的图书的借阅记录。在“读者借书记录”表单中 ,单击“排行”按钮 ,可以查看系统内借阅次数在所有图书内排行前10名的图书的列表。第4章 详细设计4.1 设计创建数据库4.1.1 设计数据库本系统实现了系统登录功能 , 而系统登录需要账号和密码 , 这就需要 创建一个“系统帐号”(Accounts) 数据表 , 用来存储系统登录用的账号和密码。本系统要实现图书资料和学生资料的管理 , 所以需要创建 “学生信息” (Student)数据表和“图书信息 ”(Book) 数据表。 “学生信息 ”(Student) 数据表中包含了学生的“系别”信息 , 在本系统中为了

17、简化系别的管理 , 另外创建了一个“系别”(Xibie)数据表用来存储系别的信息 , 在“学生信息”(Student) 数据表中只存储系别的编号。由于系统要实现读者借还书功能、还要实现读者借还书记录的查看 ,所以还需创建一个“读者借书记录 ”(JyRec) 数据表来保存读者的借阅记录。4.1.2 创建数据库“图书借阅管理系统”作为一个完整的数据库管理系统 , 在创建阶段利用项目管理器可以更好组织管理各种格式的文件 , 因此首先需要创建一个项目 , 然后在项目管理器创建其他格式的文件。在 VFP 主窗口中选择“文件”菜单下“新建”子菜单 , 在打开的“新建”对话框的“文件类型“区域中选中”项目”

18、,然后单击右侧的”新建文件”按钮,打开”创建“对话框中的”项目文件“文本框中输入项目名称 , 在此输入 "Tushu”,单击“保存”按钮即创建了一个项目。在项目管理器的“数据”选项卡中选中“数据库”单击右侧的“新建”按钮,在弹出的“新建数据库”对话框中单击“新建数据库”, 在弹出的“创建”对话框的“数据库名”文本框中输入数据库的名称 , 在此输入“Tushu”作为数据库名 , 单击“保存“按钮即创建了一个空的数据库。在项目管理器的“数据”选项卡中打开刚才创建的“Tushu”数据库的目录树,选中“数据表”,单击右侧的“新建”按钮即可开始数据表的创建。本系统中要用到的数据表的字段的属性设

19、置分别设置如下。“系统账号”(Accounts) 数据表的宇段属性设置如表 1 所示。表1“系统帐号”(Accounts)数据表字段属性设置字段名数据类型说明帐号字符型字段宽度20,主索引字段,不能为空密码字符型字段宽度20姓名字符型字段宽度20创建“系统账号”(Accounts) 数据表后向数据库中添加一条记录作为系统的默认帐号,该记录的各字段的值如下 :“cyr”,“cyr”,“楚雅茹”。“学生信息”(Student) 数据表各字段的属性设置如表 2 所示。表2“学生信息”(Student)数据表字段属性设置字段名数据类型说明学号字符型字段宽度6,主索引字段,输入掩码为“999999”姓名

20、字符型字段宽度20性别字符型字段宽度2系别字符型字段宽度4,为普通索引班级字符型字段宽度10电话字符型字段宽度12,输入掩码为“999#9999999”邮件字符型字段宽度30续表2字段名数据类型说明地址字符型字段宽度30“系别信息”(Xibie)数据表各字段的属性设置如表3所示表3“系别信息”(Xibie)数据表字段属性设置字段名数据类型说明系别号字符型字段宽度4,主索引字段,输入掩码为“9999”名称字符型字段宽度20“图书信息”(Book)数据表各字段的属性设置如表4所示表4“图书信息”(Tushu)数据表字段属性设置字段名数据类型说明图书编号字符型字段宽度6,主索引字段,输入掩码为“AA

21、9999”图书类别字符型字段宽度10图书名称字符型字段宽度40图书作者字符型字段宽度20出版社字符型字段宽度40购买日期日期型字段宽度8购买价格货币型字段宽度8借阅次数数值型字段宽度4,默认值0是否借出逻辑型字段宽度1,默认值“.F.”对“图书信息”(Book)数据表的字段属性设置需要说明的是“借阅次数”和“是否借出”字段的默认值一定要设置,因为对于新添加的图书,其一定是没有被借出的,而且其借阅次数一定是0,所以在表单中向数据表添加记录时,这两个字段应该是不需要添加的,可以由默认值生成。“读者借书记录”(JyRec)数据表的字段属性如表5所示。表5“读者借书记录”(JyRec)数据表字段属性设

22、置字段名数据类型说明学号字符型字段宽度6,普通索引字段,输入掩码为“999999”图书编号字符型字段宽度6,普通索引字段,输入掩码为“AA9999”借阅日期日期型字段宽度8归还日期日期型字段宽度8数据表之间的关系,将在具体表单的数据环境中设置。4.2 创建系统主程序VFP 应用程序系统需要创建一个主程序来驱动各个表单 , 在项目管理器的“代码”选项卡中选中“程序”, 单击“新建”按钮 , 即可打开程序编辑窗口本系统中需要创建一个程序main.prg, 用来设置系统的工作环境 , 并驱动其他的程序和表单。将一个文件设为项目主文件的方法是在项目管理器中选中该文件 , 然后在右键快捷菜单中选择“设为

23、主文件”子菜单或者选择“项目”菜单下“设为主文件”子菜单即可。一个文件设为项目的主文件后 , 该文件的将以粗体显示main.prg程序的代码为:(见附表)4.3 创建系统常用类系统主表单中“学生资料”和“书籍资料”页框控件中都需要用到“移动记录工具栏”和“命令按钮工具栏”, 这两个命令按钮工具栏如果在表单中分别创建会使工作变得繁琐,可以采用创建工具栏类 , 然后在表单中用实例化的方式来简化工作。4.3.1 创建“移动记录工具栏”类“移动记录工具栏”类基于“CommandGroup”基类,存储于“AdminButton”可视类库中,命名为“MoveRecord”。“移动记录工具栏”类包括“首记录

24、”、“上一个”、“下一个”和“末记录”4个按钮,在表单中可以利用这 4 个按钮定位数据表中的记录指针。创建好的 " 移动记录工具栏 " 类效果如下图所示。需要指出的是,在本系统中当鼠标移动到按钮上时,鼠标指针变为一个特定指针,这就需要一个鼠标指定文件,在本系统中使用“H_point.cur”文件,将该鼠标指针文件放在系统的根目录下,添加按钮“MouseMove”事件如下:(见附表)4.3.2 创建“命令按钮工具栏”类“命令按钮工具栏”类基于“CommandGroup”基类,存储于“AadminButton”可视类库中,命名为“AdmButGrp”。“命令按钮工具栏”类中包含

25、“增加”(CmdAdd)、“修改”(Cmdmod)、“删除”(Cmddel)、“查询”(CmdSer)、“打印”(Cmdpri)、“保存”(CmdSave)、“取消”(CmdCancel)和“退出”(CmdExit)8个按钮。由于“命令按钮工具栏”类中的按钮在不同的表单中的作用不同,所以不必在类中添加控钮的代码,可以采用在表单中将类实例化后再添加代码的方式。设置“命令按钮工具栏”类及其控件的属性如表6所示。表6“命令按钮工具栏”类及其控件属性控件属性属性取值ambutgrpButtonCount8Height330Width60按钮控件FontBold.T.FontSize15FontName

26、楷体GB_2312Height35Width60cmdaddCaption新增ToolTipText新增记录cdmodCapion修改ToolTipText修改当前记录cmddelCapion删除ToolTipText删除当前记录mdserCapion查询ToolTipText查询当前记录cdsaveCapion保存ToolTipText保存修改cdcancelCapion取消ToolTipText取消修改cmdpriCapion打印续表6控件属性属性取值ToolTipText打印当前记录CmdexitCapion退出ToolTipText退出当前表单创建好的表单效果如下图所示与“移动记录工具

27、栏”类相同,为了改变鼠标停留在按钮时的指针,还需添加按钮的“MouseMove”事件,代码与“移动记录工具栏”类中的相同。4.4 创建系统主表单系统主表单由两个选项卡组成,下面分别介绍这两个选项卡的创建。4.4.1 系统主表单的功能系统主表单在提供系统界面的同时还包含一个含有两个页框的页框控件,系统利用这两个页框控件来管理“学生信息”(Student) 数据表和“图书信息”(Book)数据表中的数据,利用这两个页框可以对这两张数据表中的数据进行查看、添加、修改、删除、查询和打印等操作。同时 ,系统主表单还将用来调用系统的借还书模块。4.4.2 创建系统主表单界面在“表单设计器”中创建一个表单作

28、为系统主表单,命名为“MainForm”。创建好的表单效果中有两个页框,其中“学生资料”页面效果如下图所示。创建好的“书籍资料”页框效果如下图所示。将“学生信息”(Student)数据表、“系别信息”(Xibie)数据表、“图书信息”(Book)数据表、“读者借书记录”(JyRec)数据表添加到表单的数据环境中,用“系别信息”(Xibie)数据表的“系别号”字段和“学生信息”(Student)数据表的“系别”索引建立关联。在表单的数据环境中,“学生信息”(Student)数据表和“图书信息”(Book)数据表的BufferModeOverRide属性设置为“3-开放式缓冲”,Exclusive

29、属性设置为“.T.”。设置系统主表单属性如表7所示。表7系统主表单(MainForm)属性设置表单属性取值AutoCenter.T.BorderStyle2-固定对话框BufferMode0ControlBox.T.Caption图书借阅管理系统Closable.F.DeskTop.F.Hight385Width612NameMainFormMdiForm.T.MaxButton.T.Picturebg.bmpMinButton.T.ShowWindow2-作为顶层表单ShowTips.T.TitleBar1-打开WindowState0-普通WindowType1-模式设置好系统主表单属性后

30、向表单中添加两个页框控件,将页框控件的第一个页面作为“学生资料”(StuPage)页面,使页框控件处于编辑状态,然后从数据环境中将要在“学生资料”页面中显示的字段拖放到表单中,并将“性别”字段生成的文本框控件删除,再添加一个选项按钮组控件来显示该字段的数据,将“系别”字段生成的文本框控件删除,再添加一个组合框控件来显示该字段的数据,另外将“系别信息”(Xibie)数据表中的“名称”字段添加到“学生资料”页面中。将“移动记录工具栏”(MoveRecord)和“命令按钮工具栏”(CmdButGrp)类在“学生资料”(StuPage)页面中实例化,并命名为“StuAbg”和“StuMr”。在向页面中

31、添加控件时一定要注意使页框处于可编辑状态,即页框外一个蓝色的虚框,如果只是选择了页框控件,则此时向表单中添加控件只是向表单中添加控件,其在表单结构中的位置是与页框控件平行的。设置“学生资料”(StuPage)页面及其控件的属性如表8所示。表8系统主表单“学生资料”(StuPage)页面及控件属性设置控件属性属性取值StuPageCaption学生资料FontBlod.T.FontSize14FontName隶书PictureBgl.bmp标签控件AutoSize.T.BackStyle0-透明FontBlod.T.ForeColor0,0,0FontSize16FontName楷体GB_231

32、2续表8控件属性属性取值WordWrap.F.文本框控件FontSize12Height25StuMrHeight35Width320StuAbgHeight132Width168Txt学号ControlSourceStudent.学号IMEMode2-关闭IMEReadOnly.T.StuogpControlSourceStudent.性别Txt姓名ControlSourceStudent.姓名IMEMode1-打开IMEReadOnly.F.Txt班级ControlSourceStudent.班级IMEMode1-打开IMEReadOnly.F.Cmb系别ControlSourcestud

33、ent.系别RowSourcexibie.系编号RowSourceType6-字段续表8控件属性属性取值Style2-下拉列表框Txt名称ControlSourceXibie.名称IMEMode1-打开IMEReadOnly.T.Txt地址ControlSourcestudent.地址IMEMode1-打开IMEReadOnly.F.Txt电话ControlSourcestudent.电话IMEMode1-打开IMEReadOnly.F.Txt邮件ControlSourcestudent.邮件IMEMode1-打开IMEReadOnly.F.CmdjhCaption借还书页框的两个页面中的另一

34、个页框用来作为“书籍资料”(BookPage) 页面,从表单的数据环境中将需要在“书籍资料”(BookPage) 页面中显示宇段拖放到页面中,并添加到页面中的控件进行一些调整,包括将“是否借出”字段生成的控件删除,添加一个标签控件,再根据该字段的值显示图书的状态。将“移动记录工具栏”类和“命令按钮工具栏”类在“书籍资料”(BookPage)页面中实例化 ,并重新命名为“BookMr”和“BookAbg”。向表单中添加一个按钮 ,再添加一个名为“MicroSoft MonthView Contro1,Verdion6.0”的ActiveX控件,并命名为“SjOleRq”。设置“书籍资料”(Boo

35、kPage)页面及页面中控件的属性如表9所示。表9系统主表单“书籍资料”(BookPage)页面及控件属性设置控件属性属性取值BookPageCaption书籍资料FontBold.T.FontSize14ForeName隶书PictureBgl.bmp标签控件AutoSize.T.BackStyle0-透明FontBold.T.ForeColor0,0,0FontSize16ForeName楷体GB_2312WordWrap.F.文本框控件FontSize12Height25BookMrHeight35Width320BookAbgHeight132Width168LblStausAutoS

36、ize.T.续表9控件属性属性取值BackStyle1-不透明Caption在馆中FontBold.T.FontSize16ForeName楷体GB_2312Txt图书编号ControlSourceBook.图书编号IMEMode1-打开IMEReadOnly.F.Txt图书名称ControlSourceBook.图书名称IMEMode1-打开IMEReadOnly.F.Txt图书类别ControlSourceBook.图书类别IMEMode1-打开IMEReadOnly.F.Txt图书作者ControlSourceBook.图书作者IMEMode1-打开IMEReadOnly.T.Txt购买

37、日期ControlSourceBook.购买日期IMEMode2-关闭IMEReadOnly.F.续表9控件属性属性取值Txt出版社ControlSourceBook.出版社IMEMode1-打开IMEReadOnly.F.Txt购买价格ControlSourceBook.购买价格IMEMode2-关闭IMEReadOnly.F.Txt购买价格ControlSourceBook.借阅次数IMEMode2-关闭IMEReadOnly.T.CmdrqCaptionSjOleRqVisible.F.4.4.3 添加表单代码 为了方便描述,系统主表单中的代码将分为三部分来介绍,其中主表单中整个表单的代

38、码和两个页面的代码将分开介绍。 添加表单中的代码 需要在系统主表单中添加4个属性“StuFM”、“StuOR”、“BookFM”和“BookOR”,分别用来识别表单中“学生信息”(StuPage)页面的状态,页面中的数据记录的指针的位置,“书籍信息”(BookPage)页面的状态和页面中数据记录指针的位置。在表单中添加完这4个属性后,将这4个属性初始值设为“cbrowse”、0、“cbrowse”和0。添加4个表单的方法属性“StuModeBrse”、“StuModeMody”、“BookModeBrse”和“BookModeMody”,分别用来使“学生信息”(StuPage)和

39、“书籍信息”(BookPage)页面进入浏览和非浏览状态。“StuModeBrse”方法属性用来使“学生信息”(StuPage)页面进入浏览状态。“学生信息”(StuPage)页面的浏览状态是指页面中与数据绑定的控件中的数据处于不可编辑状态,“移动记录工具栏”处于可用状态,“命令按钮工具栏”中除了“保存”和“取消”按钮外都处于可用状态,“借还书”按钮处于可用状态。“StuModeBrse”方法属性的代码如下:(见附表)“StuModeMody”方法属性用来使表单的“学生信息”(StuPage)页面进入非浏览状态,该页面的非浏览状态是指页面中与数据绑定的控件中的数据处于可修改状态,“移动记录工具

40、栏”处于不可用状态,“命令按钮工具栏”中除了“保存”和“取消”按钮外其他按钮都处于不可用状态,“借还书”按钮处于可用状态,“书籍信息”页面处于不可用状态。“StuModeMody”方法属性的代码如下:(见附表)“BookModeBrse”方法属性用来使“书籍信息”(BookPage)页面进入浏览状态。“书籍信息”(BookPage)页面的浏览状态是指页面中与数据绑定的控件中的数据处于不可编辑状态,“移动记录工具栏”处于可用状态,“命令按钮工具栏”中除了“保存”和“取消”按钮外都处于可用状态,“借还书”按钮处于可用状态,“学生信息”(StuPage)页面处于可用状态。“BookModeBrse”

41、方法属性的代码如下:(见附表)“BookModeMody”方法属性用来使“书籍信息”(BookPage)页面进入非浏览状态,“书籍信息”(BookPage)页的非浏览状态是指页面中与数据绑定的控件中的数据处于可修改状态,“移动记录工具栏”处于不可用状态,“命令按钮工具栏”中除了“保存”和“取消”按钮外其他按钮都处于不可用状态,“购买日期”栏后的“.”按钮处于可用状态,“学生信息”页面处于不可用状态。“BookModeMody”方法属性的代码如下:(见附表)添加完表单的属性后,由于系统中需要利用几个全局变量在表单中传递数据,所以需要在主表单中声明这几个全局变量。添加表单的Init事件代码如下:

42、PUBLIC StudentNO,StuTj,BookTj,DbName这几个全局变量的作用分别如下:“StudentNO”是当系统主表单调用“读者借书记录”表单时,向该表单传递系统主表单的“学生信息”页面中记录的学号值,以便让“读者借书记录”表单显示该学号的资料。“StuTj”和“BookTj”用在“学生信息”和“书籍信息”两个页面的“输入查询条件”表单和“查询结果”表单之间传递查询条件的值。“DbName”用在“学生信息”和“书籍信息”两个页面共用一个“选择打印类型”表单时,用于区分该全局变量是应该打印那一张报表。 添加“学生信息”页面代码在“学生信息”(StuPage)被激

43、活时,应该将“学生信息”(Student)数据表所在工作区作为表单的当前工作区,取消由其他表单设置的过虑条件,并且使页面进入浏览状态。添加“学生信息”页面的Activate事件代码如下:(见附表)“学生信息”页面中的“系别”组合框中选择某一个系编号后,要在“名称”栏显示系统编号所代码的系别名称,由于在数据环境中将两者做了关连,所以在选择了某个系编号后只需要刷新表单即可。添加“cmb系别”组合框的Valid事件代码如下:THISFORM.PF.StuPgge.txt系别.REFRESH()“移动记录工具栏”中按钮的代码已经在类中创建,而且这些代码在各个表单中完全相同,不需要再另行添加。“命令按钮

44、工具栏”中“增加”(Cmdadd)按钮的作用是先保存页中当前的记录号,标记表单的状态为新增状态,然后在表单的数据缓冲区新建一条记录,并且使当前页面进入非浏览状态。“增加”(Cmdadd)按钮的Click事件代码如下:(见附表)“命令按钮工具栏”中“修改”(Cmdmod)按钮的作用是保存页面在当前记录的记录号,标记表单的状态为修改状态,然后使表单中的当前页面进入非浏览状态。“修改”(Cmdmod)按钮的Click事件代码如下:(见附表)“命令按钮工具栏”中“删除”(Cmddel)按钮的作用首先弹出确认对话框,如果确认则进行删除操作。由于本系统中学生的信息也会在别的数据表中出现,如果在该数据表中删

45、除了学生的数据,而在其他数据表中保存会造成信息的多余与不便,所以本系统采取的方式是如果在“学生信息”数据表中删除了某一个学生的数据,则在其他的数据表(主要是指“读者借书记录”数据表)删除与该学生有关的一切记录,但是如果该学生在删除时仍有未归还的图书,系统将不允许删除。“删除”(Cmddel)按钮的Click事件代码如下:(见附表)“命令按钮工具栏”中“查询”(CmdSer)按钮的作用是调用“输入查询条件”表单,其Click事件代码如下:DO FORM StuSer“命令按钮工具栏”中“保存”(CmdSave)按钮的作用是检查表单中各数据栏中数据的输入完整情况,如果无误,则保存记录。“保存”(C

46、mdSave)按钮的Click事件代码如下:(见附表)“命令按钮工具栏”中“取消”(CmdCancel)按钮的作用是删除表单的数据缓冲区的数据,并使当前页面回到浏览状态。“取消”(CmdCancel)按钮的Clixk事件代码如下:(见附表)“命令按钮工具栏”中“打印”(Cmdpri)按钮的作用是将“DbfName”全局变量赋值,表明要进行打印的是“学生信息”数据表,并调用“选择打印类型”表单。“打印”(CmdPri)按钮的Click事件代码如下:DbfName=”StuDbf”DO FORM PrintLX“命令按钮工具栏”中“退出”(Cmdexit)按钮的作用是弹出确认对话框,如果确认则是退

47、出当前表单,清除事件循环并退出系统。“退出”(Cmdexti)按钮的Click事件代码如下(见附表)“学生信息”页面中“借还书”(Cmdjh)按钮的作用是将页面中当前记录的“学号”值赋给全局变量“StudentNO”,并调用“读者借书记录”表单。“借还书”(Cmdjh)按钮的Click事件代码如下:StudentNO=ALLTRIM(THISFORM.PF.StuPage.txt学号.VALUE)DO FORM JyRec 添加“书籍信息”页面代码在“书籍信息”(BookPage)页面被激活时,表单中的当前数据工作期应该变为“图书信息”数据表所在的工作期,将可能由其他表单对该数据

48、表设置的过虑条件去掉,同时要使该页面进入浏览状态。添加该页面的“Activate”事件代码如下:(见附表)由于该页面要在刷新表单时,显示表单中当前记录的书籍是否借出,故添加该页面的Refresh事件代码如下:(见附表)在“书籍信息”(BookPage)页面在通过添加的MonthView控件(SjOleRq)来输入图书的购买日期,在该页面处于非浏览状态时单击“.”按钮即可调用该控件。添加“.”(Cmdrq)按钮的Click事件代码如下:THISFORM.PF.BookPage.Sjolerq.VISIBLE=.T.如果要从“SjOlerRq”控件中获得日期值还需要添加“SjOlerRq”的“Da

49、teClick”事件代码如下:(见附表)如果在页面中打开了该控件,但却发现不需要对日期值进行更改,这时应该提供一种可以在不对日期进行更改就退出该控件的方法。在这时采用右键单击隐藏控件的方法。添加“SjOlerRq”的MouseDown事件代码如下:(见附表)“命令按钮工具栏”中“增加”(Cmdadd)按钮的作用是保存页面中数据记录的指针位置,将页面的状态标记为新增状态,再在表单事件缓冲区内新建一条记录,并使页面进入非浏览状态。“添加”(Cmdadd)按钮的Click事件代码如下:(见附表)“命令按钮工具栏”中“删除”(Cmdadd)按钮的作用是弹出确认对话框,如果确认,则检查要删除的图书是否在

50、库中,如查不在则弹出出错对话框,如果在库中则首先删除“读者借书记录”(Jyrec)数据表中的与要删除的图书有关的所有记录,再删除该图书记录,删除成功后弹出“删除成功”对话框。“删除”(Cmddel)按钮的Click事件代码如下:(见附表)“命令按钮工具栏”中“查询”(CmdSer)按钮的作用是调用“输入查询条件”表单,该按钮的Click事件代码如下:DO FORM BookSer“命令按钮工具栏”中“保存”(CmdSave)按钮的作用是在单击按钮时,检查页面中数据的输入情况,如果无误则保存数据,并弹出“保存成功”对话框,否则指出错误,并将光标定位在错误处,等待用户修改。“保存”(CmdSave

51、)按钮的Click事件代码如下:(见附表)“命令按钮工具栏”中“取消”(CmdCancel)按钮的作用是将表单的数据缓冲区的数据删除并使表单回到浏览状态。“取消”(CmdCancel)按钮的Click事件代码如下:(见附表)“命令按钮工具栏”中“打印”(Cmdpri)按钮的作用是将全局变量“DbfName”赋值,并调用“选择打印类型”表单。“打印”(Cmdpri)按钮的Click事件代码如下: DbfName=”BookDbf”DO FORM PrintLX“命令按钮工具栏”中“退出”(Cmdexit)按钮的作用是弹出确认对话框,如果确认则退出当前表单,清除事件循环并退出系统。“退出”(Cmdexit)按钮的Click事件代码如下:(见附表)4.4.4 创建系统主表单辅助表单系统主表单的辅助表单主要包括“学生信息”页面和“图书信息”页面的查询功能和一个“选择打印类型”表单。4

温馨提示

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

评论

0/150

提交评论