毕业设计(论文)-基于VFP的图书管理系统设计.doc_第1页
毕业设计(论文)-基于VFP的图书管理系统设计.doc_第2页
毕业设计(论文)-基于VFP的图书管理系统设计.doc_第3页
毕业设计(论文)-基于VFP的图书管理系统设计.doc_第4页
毕业设计(论文)-基于VFP的图书管理系统设计.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1 高等教育自学考试 计算机信息管理专业(本科) 毕业设计 基于基于 vfp 的图书管理系统设计的图书管理系统设计 2 摘摘 要要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实 施在技术上已逐步成熟。管理信息系统是一个不断发展的新型学科,企业 要生存要发展,要高效率地把企业活动有机地组织起来,就必须加强企业 管理,即加强对企业内部的各种资源(人、财、物等)的有效管理,建立 与自身特点相适应的管理信息系统。 本文介绍了在 powerbuider 环境下采用“自上而下地总体规划,自下 而上地应用开发”的策略开发一个管理信息系统的过程。通过分析传统的 人工管理图书馆的不足,创建了一套行之有效的计算机管理图书馆的方案。 文章详细介绍了图书管理信息系统的系统分析部分,包括可行性分析、组 织机构分析、管理职能分析、业务流程分析、数据流程分析、数据字典、 处理描述等等;系统设计部分主要介绍了系统功能设计和数据库设计;系 统实现部分列出了几个主要的程序框图,并附带了一些主要的窗口和程序。 本系统界面友好,操作简单,比较实用。 【关键字关键字】管理信息系统、图书管理、powerbuider 应用。 3 目目 录录 一一 前前 言言.1 1 mis 系统开发方法1 2 mis 系统开发过程2 二二 系统需求分析系统需求分析.4 1 现行业务描述4 2 现行系统存在问题的分析5 3 解决方案6 三三 系统总体结构设计系统总体结构设计.7 1 系统目标设计7 2 系统功能分析8 4 数据流图9 四四 数据库设计数据库设计.13 1 数据库需求分析13 2 数据库逻辑结构设计14 五五 图书管理系统主要窗体设计图书管理系统主要窗体设计19 六六 结束结束语41 1 一一 前前 言言 随着人类社会的发展,人类对知识的需求也不断地增长。在这种形势 下,书籍就渐渐地成为人们获取并增长知识的主要途径,而图书馆就自然 而然地在人们的生活中占据了一定的位置,如何科学地管理图书馆不但关 系到读者求知的方便程度,也关系到图书馆的发展,因此,开发一套完善 的图书馆管理系统就必不可少了。 管理信息系统(简称 mis)是介于信息论,经济管理理论,统计学与运 筹学及计算机科学之间的一门边缘性,综合性,系统性的交叉科学,它是 随着管理科学,信息技术,计算机技术等的发展而产生和发展起来的。 图书馆管理系统是典型的信息管理系统,其开发主要包括后台数据库的 建立和维护以及前端的应用程序的开发两个方面。对于前者要求建立数据 的一致性和完整性,对于后者则要求应用程序功能的完备,易用等的特点。 基于上述考虑本系统主要利用 powerbuilder 8 作前端的应用开发工具 , 利用 adaptive server anywhere 7 作为后台的数据库,利用 windows 作 为系统平台开发的图书管理系统。另外本图书馆管理系统利用软件工程化 思想和方法,总体上是采用结构化生命法进行系统分析和设计的,而系统 实现等步骤则采用了原型法和面对对象的方法。 1 mis 系统开发方法系统开发方法 管理信息系统的开发方法有生命周期法、原型法和面向对象的开发方法等: 生命周期法(life cycle method)是 20 世纪 60 年代发展起来的一种应用广泛 且比较成熟的管理系统开发方法,它的基本思想是将系统的开发工作从开始到结束 划分为若干个阶段,每个阶段都有明确的任务,而系统开发出来后,并不意味着生 2 命周期的结束,而意味着根据组织的需要对系统的修改和重建的开始。 原型法(prototyping method)是 20 世纪 80 年代发展起来的,旨在改变生命周 期法的缺点的一种系统开发方法,该法的开发思路是首先根据用户的要求,由用户 和开发者共同确定系统的基本要求和主要功能,利用系统快速生成工具,建立一个 系统模型,再在此基础上与用户交流,将模型不断补充、修改、完善,如此反复, 最终直至用户和开发者都比较满意为止,从而形成一个相对稳定、较为理想的管理 信息系统。 面向对象(object oriented)的开发方法于 20 世纪 80 年代开始兴起的,是一 种基于问题对象的自底向上的一种系统开发方法,这种方法的特点是以对象为基础, 对象是分析问题和解决问题的核心。 2 mis 系统开发过程系统开发过程 一个 mis 系统的开发过程一般包括如下几个步骤: (1)需求分析:需求分析主要是了解用户的需求。需求了解得越详细, 程序的后期开发与维护费用就会越少。一般的开发团队中,需求分析都是 由资历较深的系统分析员或项目经理担当,可见它的重要性。需求分析制 订好后,需要反复修改。将最后的结果交给用户审定,确认无误后,由系 统分析员完成需求分析文档,再开始下一步工作。 (2)概要设计:概要设计紧跟在需求分析之后。用户需求明确后,将得 到的数据分析后,开始构建数据库的逻辑结构。此时,数据库中的表格还 未成形,通过各种分析工具(如 powerdesigner 等)画出数据流图,最后 就可抽象出数据库的具体表结构。这时由系统分析人员反复审核。确认所 有的需求都考虑在内,没有遗漏后,就可以开始制订概要设计文档。概要 设计文档形成后,整个程序的逻辑框架也就形成了。 (3)详细设计:概要设计完成后,根据设计中制订的业务模块。就可以 进行详细分析设计了。详细设计就是将各个业务模块的窗口全部建好,各 3 个窗口控件的处理代码全部用语言表达出。所以详细设计是整个系统中最 繁琐的环节。详细设计完成后,整个程序就确定了,再由编程人员根据详 细设计文档将代码完成。整个开发工作就宣告结束。 1) 程序编码:程序编码相对于其他环节来说比较简单,程序员只需要根 据详细分析文档写程序编码,保证代码没有错误即可。程序编码需要 注意的是整个程序书写中命名的规范化与编程风格的规范化,这需要 较长时间的培养来形成。需要在不断的实践中形成自己独特的风格。 总的来说,不要过分地追求复杂的算法,因为那可能会导致后期维护 人员无法读懂你的代码而造成维护的困难。 (4)测试:程序编码完成后,就需要测试。测试有几种类型,主要是测 试代码有无逻辑错误以及在加载数据环境下程序的稳定性问题。测试工作 中发现的错误应及时改正,然后将它记录到测试文档中。 (5)打包:测试完成,确认无误后。程序就可以打包发行了。打包一般 使用工具如 pwise 等。 以上是一个完整的 mis 系统开发过程,其实不仅 mis 系统,其他类型 的程序开发也基本相同。 4 二二 系统需求分析系统需求分析 整个软件生命周期中,开发所占的费用和时间都很小。后期维护工作 一般要占整个软件生命周期的 80% 以上。所以系统分析很重要,一个好 的系统分析可以减少很多后期维护工作。 1 1 现行业务描述现行业务描述 下面以一所学校的图书馆为例子进行分析,画出图书馆的组织结构图如下: 图 2.1 该图书馆各个部门负责的主要业务如下: (1)采编组主要负责图书采编工作,包括购置新书、打印编目、增加 数量。 (2)目录厅主要负责读者查询工作,包括可借图书(按图书类别、图 书名称或图书作者查询) ;新书目录(按图书类别、日期查询) 。 (3)借阅组主要负责图书流通、查询统计、借阅查询等工作。 (4)阅览室、工具书室主要负责读者阅览工作,包括:阅览各种杂志、 馆 长 采 编 组 书 库 阅 览 室 工 具 书 室 目 录 厅 借 阅 室 5 报纸、阅览各种工具书。 下面绘制出图书馆流通业务中借书的流程图: (1)读者在目录厅查阅索引卡; (2)读者写出所借图书的分类号、种次号、交给图书管理员,并出示 本人的借书证; (3)图书管理员根据图书的分类号、种次号到书库找书; (4)将图书交给读者,并由读者填写所借图书的借书卡。 (5)图书管理员把借书卡保存到写有该读者借书证号的口袋里。 得出该图书馆业务流程图如下所示: 图 2.2 2 2 现行系统存在问题的分析现行系统存在问题的分析 该图书馆工作大部分还是进行着手工管理,工作起来效率很低,由于 不可避免的人为因素,经常造成数据的遗漏、误报。计算机信息化管理有 着储存信息量大、速度快等许多优点,提供给我们的处理信息及时快捷, 6 同时也提高了我们工作人员的自身素质。 3 3 解决方案解决方案 基于以上的对问题的分析,利用计算机给我们提供信息,及时地调整 学校图书馆图书结构,并且对学生们的借阅过程形成一整套动态的管理就 十分必要了。 图书馆信息系统的建立,需要进行用户的需求调查与分析,以确定 系统目标,提出解决 问题的详细方案,这是系统建设的重要环节。 学校图书馆规模相对于商业图书馆小,但要有着完善的图书信息,对 每一册书要有详细的记录信息,功能上对系统的需求是全面的。因此对用 户的需求可分为四个方面:一方面是图书馆工作人员通过计算机来管理各 类图书,分类编号,调整图书结构,增加图书库存,适应学生的需求;二 方面是学生们能通过计算机来查询浏览图书馆中的图书,来确定自己需要 的书籍,为借阅做好准备;三方面是工作人员对学生们的借书证发放;四 方面也是图书馆的核心工作,对图书的借阅管理。 这四个方面形成了学校图书馆一个工作整体,采用计算机自动化信息 处理,可方便快捷地共享信息、交流信息,高效地协同工作。 在软、硬件方面对系统的需求,软件要求易学,界面友好,容易掌握, 可以很简单方便的管理各种图书信息。硬件的配置要求不能太高,这样可 以很好的适应当前的学校图书馆。 在开发方式上对系统的需求,由于学校图书馆是一种无商业利益的,所以 系统设计开发的周期要短,在短时间内完成,减少开发成本,提高开发效 率,方便、简单、实用作为系统开发的指导思想。 7 三三 系统总体结构设计系统总体结构设计 如果要完成一个完整的图书管理系统,需要的相关信息很多。由于种 种条件的限制,同时考虑到开发成本,所以本系统仅实现基本的管理功能。 并不能完全满足上面例子所描述的图书馆,使用前应进行二次开发。 1 1 系统目标设计系统目标设计 系统开发的总目标是实现内部图书借阅管理的系统化、规范化和自动 化。 能够对图书进行注册登记,也就是将图书的基本信息(如:书名、作 者、价格等)预先存入数据库中,供以后检索。 能够对借阅人进行注册登记,包括记录借阅人的姓名、地址、电话等 信息。 提供方便的查询方法。如:以书名、作者、出版社、出版时间(确切 的时间、时间段、某一时间之前、某一时间之后)等信息进行图书检索, 并能反映出图书的借阅情况;以借阅人编号对借阅人信息进行检索;以出 版社名称查询出版社联系方式信息。 提供统计分析功能。可以展现出图书类型比例、库存与借出比例。 提供旧书销毁功能,对于淘汰、损坏、丢失的书目可及时对数据库进 行修改。 能够对使用该管理系统的用户进行管理,按照不同的工作职能提供不 同的功能授权。 提供较为完善的差错控制与友好的用户界面,尽量避免误操作。 8 2 2 系统功能分析系统功能分析 根据以上功能,将图书管理系统的数据分为: 数据输入部分:主要包括图书基本信息的录入、借阅人基本信息的录 入、用户基本信息的录入。 数据输出部分:主要是各种统计查询,包括:根据图书信息(如书名、 作者、出版社等)查阅图书及其借阅信息、统计输出 图书类型比例等。 数据处理部分:主要涉及借阅和归还的处理,如一本书借出后,必须 在数据库中将该书标记为已借出,以防出现数据库中 有书但图书馆无书的情况;一本书归还后,同样必须 在数据库中将其标记为已经归还,以便再次借出。 3 3 系统各功能模块设计系统各功能模块设计 在系统功能分析的基础上,考虑 visual foxpro 程序编制的特点,得 到如图所示的系统功能模块图: 9 图 3.1 4 4 数据流图数据流图 图书管理信息系统 书 籍 信 息 管 理 借 阅 信 息 管 理 系 统 管 理 读 者 信 息 管 理 还 书 信 息 管 理 借 书 信 息 管 理 设 置 书 籍 管 理 设 置 书 籍 种 类 设 置 读 者 信 息 设 置 读 者 种 类 密 码 管 理 用 户 管 理 还 书 信 息 管 理 还 书 信 息 修 改 还 书 信 息 修 改 借 书 信 息 查 询 借 书 信 息 修 改 借 书 信 息 添 加 书 籍 信 息 管 理 书 籍 信 息 修 改 书 籍 信 息 修 改 书 籍 类 别 修 改 书 籍 类 别 添 加 读 者 信 息 查 询 读 者 信 息 查 询 读 者 信 息 修 改 读 者 种 类 修 改 读 者 种 类 添 加 10 四四 数据库设计数据库设计 读者种类设置书籍类别设置 基本信息输入基本信息输入 读者种类信息管理书籍类别信息管理 基本信息输入基本信息输入 借阅信息输入读者信息返回书籍信息返 回 借阅信息返回 读者登记 书籍登记 11 数据库的设计是 mis 系统的核心部分,设计数据库,首先要进行需 求分析,然后进行数据库的概念结构设计、逻辑结构设计、数据库结构 实现等步骤。 1 1 数据库需求分析数据库需求分析 根据以上的需求分析和数据组织,开始设计数据结构,即根据需求勾 画出实体/关系图(e/r) 。在概念上,e/r 图代表的是系统需要的数据及 其这些数据之间的关系。 如图所示的实体/关系图: 设计好的全局 er 图如下: 读者类别信息 书籍类别信息 读者信息登记 书籍信息登记 读者信息管理 书籍信息管理 借阅书籍 借阅信息管理 12 从图中可以看出,在这个系统中实际存在的实体:图书和借阅人,其 中借阅人和图书是多对多关系,针对本系统,通过对图书借阅管理的内容 和数据流程分析,设计数据项和数据结构如下: (1) 图书基本信息,其数据项有图书编号、图书名称、作者、出版社等。 (2)借阅人基本信息,其数据项有借阅人编号、借阅人姓名、电话 等。 (3)图书借阅登记,其数据项有借阅序号、借阅图书编号、借阅人 编号等。 为了实现图书信息录入的方便性与规范性以及相关的统计功能,还应 增加出版社信息 与图书分类信息: (4)图书分类信息,其数据项有分类编号、分类名称、同一类型图书数 目。 同时针对于本系统的多用户使用特点,增加用户信息表: (6)用户信息表,其数据项有用户名、密码、用户权限。 为了实现图书借阅超期罚款制度,还应增设罚金规则表: 2 2 数据库逻辑结构设计数据库逻辑结构设计 数据库设计有几个范式,一般我们要做到的是第三范式,即数据表中 没有冗余字段以及同一个表中的字段没有函数依赖关系,冗余字段即在一 个表中已经保存过的信息,在另一个表中就不应该存在,如果需要的话, 可以通过表间的关联来得到,函数依赖性就是一个表中的字段间不应该有 计算关系,如一个表中有单价字段、数量字段,就不应该有一个总金额字 段。如果程序运行过程中需要总金额,可以实时计算。不过在一些较常用 的表中,我们可以适当地保留冗余字段,这样,在程序运行过程中可以减 13 少由于表间互相关联而使用速度降低等问题。这就是所谓的第四范式。数 据表设计时,最好不要使用用户输入的信息作为主键,每一个数据表自己 定义一个主键,添加信息是由程序自动添加,这样就可以减少数据更新时 产生的错误。表与表相关联的外键最好是由程序自动生成的主键,这样数 据库就比较规范了。 另外,数据表设计时一般都应该有一些标志字段,标志字段可以定义 成 char(1)或 bit 型。建议实际应用中定义成 char(1)字段可以存储多种可能的状态,在最 初设计时,可能我们没有考虑到的一些情况,在程序后来的开发中,可以 通过设计标志字段为不同的 值来解决,这样就避免了修改数据库结构。 数据库初期设计时一定要谨慎,把所有可能的情况都考虑进去,即使 当时没有用到,也要将它留在数据库中作为备用字段以便将来扩充。 程序一旦开始编码,就应该尽量避免再修改数据库。因为如果数据库 结构一旦改变, 所有与修改的数据表相关的业务都有可能受到影响,而某些影响还很难看 到,这样就容易形成一个恶性循环。错误越改越多,越改越乱,最终导致 程序的失败。pb 的数据窗口与其他语言的数据控件不一样,它的很多东 西是预编译的。即使你一个模块已经调试无误,但只要数据库结构改动。 相应的模块就一定要重新修改,否则一定会出问题。 图书借阅管理系统数据库中各个表的设计结果如下面几个表格所示。 每个表格表示为数据库中的一个表。 读者种类信息表 说明:记录借阅人的基本情况,种类编号设为主键、索引。 表 4.1 列名数据类型可否为空 种类编号字符型(4)否 种类名称字符型(10)否 结束数量字符型(4)是 14 借书期限字符型(4)是 有效期限字符型(4)是 备注字符型(20)是 读者信息表格 说明:记录系统用户的用户名、密码与权限,读者编号设为主键。 表 4.2 列名数据类型可否为空 读者编号字符型(10)否 读者姓名字符型(10)否 读者性别字符型(3)是 读者种类字符型(10)是 工作单位字符型(40)是 家庭地址字符型(40)是 电话号码字符型(10)是 电子邮件地址字符型(20)是 登记日期日期型(8)是 备注字符型(40)是 书籍类别信息表 说明:记录图书类别,信息。类编编号设为主键、索引 表 4.3 列名数据类型可否为空 类别编号字符型(10)否 类别名称字符型(20)是 关键词字符型(20)是 备注字符型(40)是 书籍信息表 说明:记录书籍,书籍编号。 表 4.4 列名数据类型可否为空 书籍编号字符型(10)否 书籍名称字符型(40)否 书籍类别字符型(20)否 书籍作者字符型(20)否 出版社名称字符型(20)是 出版日期日期型(8)是 书籍页码整型(4)是 15 关键词字符型(20)是 登记日期日期型(8)是 是否被借出字符型(3)是 备注字符型(40)是 借阅信息表 说明:记录借阅信息,借阅编号为主键建立索引 表 4.5 列名数据类型可否为空 借阅编号字符型(10)否 读者编号字符型(10)否 读者姓名字符型(10)否 书籍编号字符型(10)否 书籍名称字符型(20)否 借出日期日期型(8)是 还书日期日期型(8)是 备注字符型(40)是 (1)规划有效的索引 a.在组合表的列中创建索引,包括主关键字和外部关键字所在的列。 b.在列或类组合中创建唯一的索引能增强唯一性。 c.浏览索引并卸载不使用的索引。索引需要一定硬盘空间和时间来维 护。具有较高数据插入操作频率的数据库最好不要索引。有较高读 操作频率的数据库应该有更多的索引。 d.避免在簇索引中包括不必要的列。在可能的情况下,使用较小的数 据类型,例如用 varchar 替代 char。 e.考虑使用簇索引来支持排序和范围化查询。在为数据检索优化表时, 簇索引必须支持数据的分组索引。为簇关键字选择列或列组,簇关 键字以经常需要的顺序排序数据或以必须被一起访问的记录而分组 记录。 16 f.创建支持一般查询的查找参数索引。具有高选择性的列是索引的最 好候选列。具有高密度的列是索引糟糕的候选列。 (2)使用约束实现数据的完整性 primary key 约束在表中定义了主关键字,它是行唯一的标识符, 它可以强制实体完整性。在使用 primary key 约束时考虑以下事实: a.每个表只能有一个 primary key 约束。 b.键入的值必须是唯一的。 c.不允许有空值。 d.primary key 约束在指定的列创建唯一的索引,可以指定簇索引 和非簇索引(如果 非簇索引先前并不存在,簇索引是默认的) 。 unique 约束指定,在一列中的两行不能有相同的值。该约束使 用唯一的索引来强制实体的完整性。在已有一个主关键字时 unique 约束很有用,例如雇员号,但是必须保证其他标识符(例如,雇员驾 驶证号)也是唯一的。在使用 unique 约束时,考虑以下事实; a.允许有空值。 b.在一个表中可以设置多个 unique 约束。 c.可以将 unique 约束运用于具有唯一值的单列或多列,但不能用于 表的主关键字。 d.通过在指定的列或列组中创建唯一的索引,可以使 unique 索引 得到强制 17 五五 图书管理系统图书管理系统主要窗体设计主要窗体设计 (1)管理员登陆窗口 图 5.1 功能介绍:本窗口主要是检查操作员输入的用户名及密码是否正确,如果 正确,允许登录。如果错误,显示出错误提示。 18 操作方法:填写“用户名”与“密码”后,点击“登录”按钮进行验证, 点击“放弃”退出。 代码分析: sele adminer use booksdatabaseadminser *此为管理员信息数据表的相对路径 cx=alltrim(thisform.text1.value) cy=alltrim(thisform.text2.value) *获得文本框 1 2 的输入信息 set order to 用户名 seek cx *查找输入的信息 this form release *释放本菜单 (2)读者种类信息表窗口 功能介绍;本窗口主要用于图书管理员查询图书馆读者的信息 操作坊法;“第一个”用于查找读者种类表的第一个读者;“前一个”用于查 19 找当前读者的第一个读者, “下一个”和“最后一个”同“上一个”和“第一 个”功能相似;“删除”用于删除当前的读者, “添加”用于添加新的读者 “编辑”用于在表中填入息的读者的信息;“退出”退出本窗口 代码分析; “前一个”按钮的功能代码: skip -1 *记录后退一个 if bof() tmand1.enable=.f. tmand2.enable=.f. skip * 记录前进一个,使之仍显示第一个记录 else mand1.enable=.t. mand2.enable=.t. mand3.enable=.t. mand4.enable=.t. *根据状况选择各按钮的状态 thisform.refresh *功能向前翻页 “第一个”按钮功能代码 goto top *到第一个记录 mand1.enable=.f. mand3.enable=.t. mand4.enable=.t. *根据状况选择各按钮的状态 thisform.refresh *功能:翻页第一个记录 “下一个”按钮的功能代码 skip *记录前进一个 if eof() skip -1 tmand3.enable=.f. tmand4.enable=.f. else tmand3.enable=.t. tmand4.enable=.t. end if tmand1.enable=.t. tmand2.enable=.t. *根据状况选择个按钮的状态 thisform.reform 20 *功能:向后翻一页 “最后一个”按钮功能代码 goto bottom mand3.enabled=.f. mand1.enabled=.t. mand2.enabled=.t. *根据情况选择各按钮的状态 thisform.refresh *功能:翻页到最后一个记录 “添加”按钮功能代码 innumber=alltrim(thisform.pageframe1.page8.text1.value) inname=alltrim(thisform.pageframe1.page8.text2.value) inbooknumber=alltrim(thisform.pageframe1.page8.text3.value) inbookdates=alltrim(thisform.pageframe1.page8.text4.value) indeadline=alltrim(thisform.pageframe1.page8.text5.value) inremark=alltrim(thisform.pageframe1.page8.text6.value) *功能向表里输入新用户的信息 “编辑”按钮功能代码 thisfrom.pageframe1.page9.text1.value= thisfrom.pageframe1.page9.text2.value= thisfrom.pageframe1.page9.text3.value= thisfrom.pageframe1.page9.text4.value= thisfrom.pageframe1.page9.text5.value= thisfrom.pageframe1.page9.text.value= “退出”按钮功能代码 thisform.release *释放本表单 do form booksformmain *打开主表单 功能:回代主界面 21 (3)读者信息表窗口 功能;用于图书管理员修改和查找读者信息 操作方法和代码和”读者种类信息表”一样就不再重复 22 (4)书籍类别信息表窗口 功能:用于图书管理员进行图书类别管理 代码和功能和“读者类别信息表”类似,就不再重复 23 (5)书籍信息表窗口 功能:用于图书管理员进行图书的增加和删除 代码和操作和“读者信息种类表”类似就不再重复 24 (6)借阅信息表窗口 功能:添加和删除读者的借阅信息 代码分析: 由于数据库中我们把读者编号和书籍编号作为主键,因此通过读者编号就能在 读者信息中找到对应得读者姓名,同样书籍信息表中也能找到对应的书籍编名 this.clear *清空组合框里的 item local acountry ,country *定义临时变量 di mension a countries1 *定义变量 select distinct 读者编号 from 读者信息库 into array a countries for each m.country in a countries *将所选出的不同记录添加到组合框的选项中 if !empty(m.country) this.additem(m.ccountry) end if end for 在组合框的 interactivechange 事件中添加代码 select 读者姓名 from 读者信息表 25 where (读者编号=thisfrom.读者编号.1.value) into arrary result thisform.读者姓名 1.value=resule(1) *根据选择的读者编号把读者姓名回现到文本框中 insert into 借阅信息表(借阅编号,读者编号,书籍名称,书籍编号,读者姓 名,借出日期,备注信息) ; values(thisform.借阅编号 1.value, thisform .读者编号 1.value,thisform.书籍名称 1.value,.thisform.书籍编号 1.value,thisform 读者姓名 1.value)ctod (thisform . 借出日 期 1.value),ctod (thisform.还书日期 1.value) *将结束信息保存到借阅信息表中 this form . release *释放当前表单 thisform.release (7)添加还书信息窗口 功能:用于图书管理员添加所还书的信息

温馨提示

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

评论

0/150

提交评论