




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、图书借阅管理系统本系统由VFP开发,实现了系统登录、图书管理、学生管理、图书的借阅与归还、图书借阅排行榜和查看逾期未还图书以及各种信息的打印等功能。在执行本程序时,首先弹出“系统登录”表单,在输入正确的账号和密码后即可登录系统,在此界面单击“进入”按钮,进入系统主表单。系统主表单由两个页框组成:“学生资料”页框和“书籍资料”页框。在两个页框中可以分别完成学生资料和书籍资料的添加、修改、删除、查询和打印等功能。在“学生资料”页框中单击“借还书”按钮,打开“读者借书记录”表单。在此表单中首先将显示出在单击“借还书”按钮前“学生资料”页框中显示的学生的当前借出未还记录。如果需要查看其他学生的借书记录
2、,可以单击“”按钮输入要查看的学生的学号。单击“借书”按钮将弹出一个“输入”表单,用来输入要借出的图书的编号,如果该图书在库中而且该学生所借的图书的数目未到规定的数目则为该学生办理借出该图书的手续。在此表单中单击“过期”按钮,打开“过期图书”表单。在此表单中显示的是该系统的所有的逾期未还图书的列表,在此表单中单击“打印”按钮可以将表单中列表的数据打印输出。在“读者借书记录”表单中单击“排行”按钮,将打开“书籍借阅排行榜”表单。目 录一、 系统设计分析 -41、 需求分析-42、 模块分析-4二、 分析与创建数据库-61、 设计数据库-62、 创建数据库-6三、 创建系统主程序-8四、 创建系统
3、常用类-9五、 创建系统主表单-91、 系统主表单的功能-92、 创建系统主表单界面-93、 添加表单代码-104、 创建系统主表单辅助表单-19六、 创建“读者借书记录”模块-231、 主表单的功能-232、 创建主表单界面-233、 添加主表单代码-244、 创建辅助表单-28七、 创建系统打印功能-30八、 连编与运行-30九、 参考文献-30一、系统分析与设计1、需求分析历史已经跨入了一个崭新的21世纪,面对新世纪,人们最基本,也是最可见的一条设想是我们所生活的社会将彻底成为一个信息社会。现在我们所能感觉到随着信息技术和计算机技术的发展,周围的各种信息每天都在急剧膨胀。在生活中,一般人
4、对大量的数据总有一种恐惧感,面对密密麻麻的数据,的确很容易让人望而却步。 随着计算机普及教育的不断深入,有了它的帮助,人们就不用再去面对堆积如的文件。取而代之的是用信息管理中最核心的技术之一数据库来系统管理。数据库管理系统是处理数据的有效工具。而Visual FoxPro6.0关系数据库系统是新一代小型数据库管理系统的杰出代表。它以功能强大,性能良好,工具丰富而易用,处理速度快,界面友好等特点,深受广大用户的好评。在机关,学校得到广泛的应用。它提供了创建和管理数据库应用程序及组件的工具。它所包含的强大工具和以数据为中心的面向对象的程序设计语言,使之成为一个创建结合客户机/服务器处理的、现代的、
5、可伸缩的、多级应用程序的理想选择。在我们的生活中,一个图书馆或者图书室中的图书的数目必定是有一定的规模,而且来图书馆或者图书室中借书的读者也不只是某几个特定的读者,要管理这些图书和学生的资料以及学生的借阅情况,如果仅仅凭手工操作其工作量很大的,而且很难对其实优化管理。VFP具有强大的数据管理功能,可以利用VFP开发一个能够管理图书数据、学生资料和学生借阅情况的“图书借阅管理系统”来实现这些管理。2、模块分析1)功能模块图如下图所示。 图书资料管理借还书操作2)模块分析 (1)“图书资料管理”模块“图书资料管理”模块包括图书资料的分条浏览、添加、修改、删除、查询和打印功能。在表单的“书籍资料”页
6、框中可以通过“移动记录工具栏”分条查看系统内所有的图书的详细资料,包括图书的名称、类别、作者、出版社、购买日期等。单击“命令按钮工具栏”中的按钮可以对“书籍资料”页框中的记录进行相应的操作。(2)“学生资料管理”模块“学生资料管理”模块包括学生资料的分条浏览、添加、修改、删除、查询和打印功能。在表单的“学生资料”页框中可以通过“移动记录工具栏”分条查看系统内所有的学生的详细资料,包括学生姓名、性别、系别、班级等资料。单击“命令按钮工具栏”中的按钮可以对“学生资料”页框中的记录进行相应的操作。(3)“借还书操作”模块“借还书操作”模块包括读者借书记录的查看、借还书操作、图书借阅排行榜、查看逾期未
7、归还图书和记录打印等功能。读者借书记录查看功能可以查看所有的借书记录,也可以只查看目前尚未归还的借书记录。在“读者借书记录”表单中单击“借书”按钮,在打开的“输入”表单中,输入要借出的图书的图书编号,如果该图书在馆中而且该读者还能借书,则借书成功。在“读者借书记录”表单中单击“还书”按钮,在打开的“输入”表单中输入要还入的图书的图书编号,如果该图书是被当前读者借出,则还书成功。当表单中的显示的是读者未归还的图书列表时,在列出借书记录的表格中双击要归还的图书的“图书编号”栏即可将此图书还入。在“读者借书记录”表单中,单击“过期”按钮,可以查看系统内到了归还日期而未归还的图书的借阅记录。在“读者借
8、书记录”表单中,单击“排行”按钮,可以查看系统内借阅次数在所有图书内排行前10名的图书的列表。二、分析和创建数据库1、设计数据库本系统实现了系统登录功能,而系统登录需要账号和密码,这就需要创建一个“系统账号”(Accounts)数据表,用来存储系统登录用的账号和密码。本系统要实现图书资料和学生资料的管理,所以需要创建“学生信息”(Student)数据表和“图书信息”(Book)数据表。由于系统要实现读者借还书功能、还要实现读者借还书记录的查看,所以还需要创建一个“读者借书记录”(JyRec)数据表来保存读者的借阅记录。2、创建数据库“图书借阅管理系统”作为一个完整的数据库管理系统,在创建阶段利
9、用项目管理器可以更好组织管理各种格式的文件,因此首先需要创建一个项目管理器,文件名为“Tushu”,然后在其中创建其它格式的文件。在项目管理器的“数据”选项卡中创建一个名为“Tushu”的数据库。在此数据库下创建数据表。本系统中要用到的数据表的字段的属性设置分别如下。“系统账号”(Account)数据表的字段属性如表所示:字段名数据类型说明账号字符型字段宽度20,主索引字段,不能为空密码字符型字段宽度20姓名字符型字段宽度20“系别信息”(Xibie)数据表的字段属性如表所示:字段名数据类型说明系编号字符型字段宽度4,主索引字段,输入掩码为“9999”名称字符型字段宽度20“学生信息”(Stu
10、dent)数据表的字段属性如表所示:字段名数据类型说明学号字符型字段宽度6,主索引字段,输入掩码为“999999”姓名字符型字段宽度20性别字符型字段宽度2系别字符型字段宽度4,为普通索引班级字符型字段宽度10电话字符型字段宽度12,输入掩码为“999#9999999”邮件字符型字段宽度30地址字符型字段宽度30 “读者借书记录”(JyRec)数据表的字段属性如表所示:字段名数据类型说明学号字符型字段宽度6,普通索引字段,输入掩码为“999999”图书编号字符型字段宽度6,普通索引字段,输入掩码为“AA9999”借阅日期日期型字段宽度8归还日期日期型字段宽度8“图书信息”(Book)数据表的字
11、段属性如表所示:字段名数据类型说明图书编号字符型字段宽度6,主索引字段,输入掩码为“AA9999”图书类别字符型字段宽度10图书名称字符型字段宽度40图书作者字符型字段宽度20出版社字符型字段宽度40购买日期日期型字段宽度8购买价格货币型字段宽度8借阅次数数值型字段宽度4,默认值0是否借出逻辑型字段宽度1,默认值“.F.”三、创建系统主程序 VFP应用程序系统需要创建一个主程序来驱动各个表单,在项目管理器的“代码”选项卡下创建一个名为“main.prg”程序,用来设置系统的工作环境,并驱动其他的程序和表单。把该文件设为项目的主文件。main.prg程序的代码为:SET TALK OFFSET
12、SAFETY OFF & 覆盖时不要确认SET STAT BAR OFF & 将状态栏关闭SET SYSMENU OFF & 可关掉VFP系统菜单之区域SET SYSMENU TO & 关闭系统菜单SET CENTURY ON & 显示四位年代_Screen. VISIBLE=.F.DO FORM LogonREAD EVENTS四、创建系统常用类1、创建“移动记录工具栏”类 “移动记录工具栏”类基于“CommandGroup”基类,存储于“AadminButton”可视类库中,命名为“MoveRecord”。此类包括“首记录”、“上一个”、“下一个”和“末记录”4个按钮,在表单中可以利用这4
13、个按钮定位数据表中的记录指针。2、创建“命令按钮工具栏”类“命令按钮工具栏”类基于“CommandGroup”基类,存储于“AadminButton”可视类库中,命名为“AdmButGrp”。此类中包括“增加”、“修改”、“删除”、“查询”、“打印”、“保存”、“取消”和“退出”8个按钮。五、创建系统主表单系统主表单由两个选项卡组成,下面分别介绍这两个选项卡的创建。1、系统主表单的功能系统主表单在提供系统界面的同时还包含一个含有两个页框的页框控件,系统将利用这两个页框控件来管理“学生信息”(Student)数据表和“图书信息”(Book)数据表中的数据,利用这两个页框可以对这两张数据表中的数据
14、进行查看、添加、修改、删除、查询和打印等操作。同时,系统主表单还将用来调用系统的借还书模块。2、创建系统主表单界面在“表单设计器”中创建一个表单作为系统主表单,命名为“MainForm”。创建好的表单效果中有两个页框,其中“学生资料”页框和“书籍资料”页框如下图所示。设置主表单、页面及其控件的属性。3、添加表单代码(1)添加主表单中的代码需要在系统主表单中添加4个属性“StuFM”、“StuOR”、“BookFM”和“BookOR”,分别用来标识表单中“学生信息”页面的状态,页面中的数据记录的指针的位置,“书籍信息”页面的状态和页面中数据记录指针的位置。添加4个表单的方法属性。“StuMode
15、Brse”方法属性的代码如下:*以下代码使“移动记录工具栏”可用THISFORM.PF*以下代码控制“命令按钮工具栏”中按钮的可用状态*以下代码用来控制“学生信息”页面与数据绑定的控件状态txt姓名.READONLY=.T.系别.ENABLED=.F.班级.READONLY=.T.地址.READONLY=.T.电话.READONLY=.T.邮件.READONLY=.T.*以下代码用来控制“借还书”按按钮的可用状态CmdJh.ENABLED=.T.*以下代码用来控制表单中页面的可用状态THIS.ENABLED=.T.“StuModeMody”方法属性的代码如下:*以下代码使“移动记录工具栏”不可
16、用*以下代码控制“命令按钮工具栏”中按钮的可用状态*以下代码用来控制“学生信息”页面与数据绑定的控件状态姓名.READONLY=.F.系别.ENABLED=.T.班级.READONLY=.F.地址.READONLY=.F.电话.READONLY=.F.邮件.READONLY=.F.*以下代码用来控制“借还书”按按钮的可用状态*以下代码用来控制表单中页面的可用状态THIS.ENABLED=.T.“SjModeBrse”方法属性的代码如下:*以下代码使“移动记录工具栏”可用*以下代码使“.”按钮不可用*以下代码控制“命令按钮工具栏”中按钮的状态.T.*以下代码控制页面中与数绑定的控件中数据的可编辑
17、状态图书编号.READONLY=.T.图书名称.READONLY=.T.图书类别.READONLY=.T.图书作者.READONLY=.T.购买日期.READONLY=.T.出版社.READONLY=.T.购买价格.READONLY=.T.*以下代码用来控制表单中页面的可用状态THIS.ENABLED=.T.“SjModeMody”方法属性的代码如下:*以下代码使“移动记录工具栏”不可用*以下代码使“.”按钮可用*以下代码控制“命令按钮工具栏”中按钮的状态mdadd.ENABLED=.F.*以下代码控制页面中与数绑定的控件中数据的可编辑状态图书编号.READONLY=.T.图书名称.READO
18、NLY=.F.图书类别.READONLY=.F.图书作者.READONLY=.F.购买日期.READONLY=.F.txt出版社.READONLY=.F.购买价格.READONLY=.F.*以下代码用来控制表单中页面的可用状态THIS.ENABLED=.T.(2)添加“学生资料”页面代码在“学生信息”被激活时,应该将“学生信息”数据表所在的工作区作为表单的当前工作区,取消由其他表单设置的过滤条件,并且使页面进入浏览状态。“增加”按钮的Click事件代码:SELECT StudentTHISFORM.StuOR=RECNO()GO BOTTOMAPPEND BLANKTHISFORM.StuMo
19、deMody()THISFORM.StuFM=cadd学号.READONLY=.F.THISFORM.REFRESH()“修改”按钮的Click事件代码:THISFORM.StuFM=cmodTHISFORM.StuOR=RECNO()THISFORM.StuModeMody()THISFORM.REFRESH()“删除”按钮的Click事件代码:YN=MESSAGEBOX(确定删除,4+32,图书借阅管理系统) &确认对话框IF YN=6 &如果确认 THISFORM.StuOR=RECNO() &保存记录指针位置 SET EXACT ON &严格比较 SELECT JyRec LOCATE
20、 FOR 学号学号.VALUE) AND EMPTY(归还日期) &查找是否有未还图书 IF FOUND() &如果有 MESSAGEBOX(该学生有未还书,不能删除,48,图书借阅管理系统)&弹出对话框 SELECT Student &回到原记录 SET FILTER TO GO THISFORM.StuOR ELSE &如果没有未还书 SELECT JyRec &选择“读者借阅记录”所在的工作区 GO TOP &到数据表顶部 DO WHILE NOT EOF() &删除与要删除的学生有关的借阅记录 IF 学号学号.VALUE) DELETE PACK ENDIF SKIP ENDDO SE
21、LECT Student &在“学生信息”数据表中删除记录 DELETE PACK MESSAGEBOX(删除成功,64,图书借阅管理系统) &“删除成功”对话框 SELECT Student GO TOP ENDIF THISFORM.REFRESH() SET EXACT OFFENDIF“保存”按钮的Click事件代码:LOCAL OK &声明一个本地变量OK=.T. &假设各数据栏中数据无误DO CASE学号.VALUE) &如果学号为空 MESSAGEBOX(学号不能为空,48,图书借阅管理系统)学号.SETFOCUS() OK=.F.姓名.VALUE)&如果姓名为空 MESSAGE
22、BOX(姓名不能为空,48,图书借阅管理系统)姓名.SETFOCUS() OK=.F.系别.VALUE) &如果系别为空 MESSAGEBOX(系别不能为空,48,图书借阅管理系统)系别.SETFOCUS() OK=.F.地址.VALUE) &如果地址为空 MESSAGEBOX(地址不能为空,48,图书借阅管理系统)地址.SETFOCUS() OK=.F.电话.VALUE) &如果电话为空 MESSAGEBOX(电话不能为空,48,图书借阅管理系统)姓名.SETFOCUS() OK=.F.ENDCASEIF OK=.T. &如果各数据栏无误为空 YN=MESSAGEBOX(确定保存,4+32,
23、图书借阅管理系统) &弹出确认对话框 IF YN=6 &如果确认 CanSave=TABLEUPDATE(.F.) &试图保存 IF CanSave=.F. &如果保存失败 MESSAGEBOX(学号错误,48,图书借阅管理系统)学号.SETFOCUS() ELSE &如果保存成功 MESSAGEBOX(保存成功,64,图书借阅管理系统) THISFORM.StuModeBrse() IF THISFORM.StuFM=cmod GO THISFORM.StuOR ELSE学号.READONLY=.T. ENDIF ENDIF THISFORM.REFRESH() ENDIF ENDIF“取消
24、”按钮的Click事件代码:YN=MESSAGEBOX(确定取消,4+32,系统消息)IF YN=6 TABLEREVERT(.F.) IF THISFORM.StuFM=cadd GO THISFORM.StuOR ENDIF THISFORM.StuModeBrse()学号.READONLY=.T. THISFORM.REFRESH()ENDIF(3)添加“书籍资料”页面代码在“书籍信息”页面被激活时,表单中的当前数据工作期应该变为“图书信息”数据表所在的工作期,将可能由其他表单对该数据表设置的过滤条件去掉,同时要使该页面进入浏览状态。添加该页面的“Activate”事件代码:SELECT
25、 BOOKSET FILTER TOGO TOPTHISFORM.SjFM=cbrowseTHISFORM.SjModeBrse()THISFORM.REFRESH() “增加”按钮的Click事件代码: SELECT BookTHISFORM.SjOR=RECNO()GO BOTTOMAPPEND BLANKTHISFORM.SjFM=caddTHISFORM.SjModeMody()图书编号.READONLY=.F.THISFORM.REFRESH() “修改”按钮的Click事件代码: THISFORM.SjOR=RECNO()THISFORM.SjFM=cmodTHISFORM.SjM
26、odeMody()THISFORM.REFRESH() “删除”按钮的Click事件代码:YN=MESSAGEBOX(确定删除,4+32,图书借阅管理系统) &确认对话框IF YN=6 &如果确认 THISFORM.SjOR=RECNO() &保存记录号借出中&如果该图书不在库中 MESSAGEBOX(该图书尚未归还,48,图书借阅管理系统)&不能删除 ELSE &如果在库中 SELECT JyRec &对图书借阅记录表进行修改 SET EXACT ON &精确比较 GO TOP &到数据表的顶部 DO WHILE NOT EOF() &删除所有与要删除的图书有关的记录 IF 图书编号图书编号
27、.VALUE) DELETE PACK ENDIF SKIP ENDDO SELECT Book &删除图书记录 GO THISFORM.SjOR DELETE PACK MESSAGEBOX(删除成功,64,图书借阅管理系统)&“删除成功”对话框 SET EXACT OFF THISFORM.REFRESH() ENDIFENDIF “保存”按钮的Click事件代码:LOCAL OKOK=.T.DO CASE图书编号.VALUE) &如果图书编号为空 MESSAGEBOX(图书编号不能为空,48,图书借阅管理系统)图书编号.SETFOCUS() OK=.F.图书名称.VALUE) &如果图书
28、名称为空 MESSAGEBOX(图书名称不能为空,48,图书借阅管理系统)图书名称.SETFOCUS() OK=.F.图书类别.VALUE) &如果图书类别为空 MESSAGEBOX(图书类别不能为空,48,图书借阅管理系统)图书类别.SETFOCUS() OK=.F.图书作者.VALUE) &如果图书作者为空 MESSAGEBOX(图书作者不能为空,48,图书借阅管理系统)图书作者.SETFOCUS() OK=.F.购买日期.VALUE) &如果购买日期为空 MESSAGEBOX(购买日期不能为空,48,图书借阅管理系统)购买日期.SETFOCUS() OK=.F.出版社.VALUE) &如
29、果出版社为空 MESSAGEBOX(出版社不能为空,48,图书借阅管理系统)出版社.SETFOCUS() OK=.F.购买价格.VALUE=0 &如果购买价格小于或者为0 MESSAGEBOX(购买价格错误,48,图书借阅管理系统)购买价格.SETFOCUS() OK=.F.ENDCASEIF OK=.T. &如果各数据项无误 YN=MESSAGEBOX(确定保存,4+32,图书借阅管理系统) IF YN=6 &如果确认 SaveOk=TABLEUPDATE(.F.) &试图保存 IF SaveOk=.T. &如果保存成功 MESSAGEBOX(保存成功,64,图书借阅管理系统) THISFO
30、RM.SjModeBrse()图书编号.READONLY=.T. ELSE &如果保存失败 MESSAGEBOX(图书编号错误,48,图书借阅管理系统)图书编号.SETFOCUS() ENDIF ENDIFENDIF4、创建系统主表单辅助表单 系统主表单的辅助表单主要包括“学生资料”页面和“图书资料”页面的查询功能和一个“选择打印类型”表单。(1)创建“学生资料”页面查询功能“学生资料”页面的查询功能由“输入查询条件”和“学生信息查询结果”表单组成。1)创建“输入查询条件”表单“输入查询条件”表单用来向用户收集要查询的条件,查询的条件可以是根据某一个字段进行查询,也可以指定多个查询条件,这些条
31、件将以“AND”连接,然后根据条件查询。 该表单中的作用是向用户收集查询条件,而这个作用也主要由“查询”按钮来完成,当用户单击该按钮时检查表单的文本框中数据的输入情况,如果文本框中有数据则将该文本框中的数据作一个查询条件,如果有多个查询条件则用“AND”将这些条件连接起来,然后调用“学生信息查询结果”表单。“查询”按钮的Click事件代码:StuTJ=.T.IF NOT EMPTY(ALLTRIM(THISFORM.txt学号.VALUE) &如果学号栏非空 StuTJ=+ALLTRIM(Thisform.txt学号.Value)+$学号ENDIFIF NOT EMPTY(ALLTRIM(TH
32、ISFORM.txt姓名.VALUE) &如果姓名栏非空 StuTJ=StuTJ+AND+ALLTRIM(THISFORM.txt姓名.VALUE)+$姓名ENDIFIF NOT EMPTY(ALLTRIM(THISFORM.txt邮件.VALUE) &如果邮件栏非空 StuTJ=StuTJ+AND+ALLTRIM(THISFORM.txt邮件.VALUE)+$邮件ENDIFIF NOT EMPTY(ALLTRIM(THISFORM.txt地址.VALUE) &如果地址栏非空 StuTJ=StuTJ+AND+ALLTRIM(THISFORM.txt地址.VALUE)+$地址ENDIFTHISF
33、ORM.RELEASE()DO FORM StuSerout 2)创建“学生信息查询结果”表单 “打印”按钮不可用时,表单的Init事件代码:SELECT StudentSET FILTER TO &StuTJCOUNT FOR &StuTJ TO nNumberIF nNumber=0ENDIF(2)创建“书籍资料”页面查询功能 “书籍资料”页面的查询功能由“输入查询条件”表单和“图书信息查询结果”表单组成。1)创建“输入查询条件”表单“查询”按钮的Click事件代码:BookTJ=.T.IF NOT EMPTY(ALLTRIM(THISFORM.txt图书编号.VALUE) &如果图书编号
34、栏非空 BookTJ=BookTJ+AND 图书编号=+ALLTRIM(THISFORM.txt图书编号.VALUE)+ENDIFIF NOT EMPTY(ALLTRIM(THISFORM.txt图书名称.VALUE) &如果图书名称栏非空 BookTJ=BookTJ+AND 图书名称=+ALLTRIM(THISFORM.txt图书名称.VALUE)+ENDIFIF NOT EMPTY(ALLTRIM(THISFORM.txt图书作者.VALUE) &如果图书作者栏非空 BookTJ=BookTJ+AND 图书作者=+ALLTRIM(THISFORM.txt图书作者.VALUE)+ENDIFI
35、F NOT EMPTY(ALLTRIM(THISFORM.txt出版社.VALUE) &如果出版社栏非空 BookTJ=BookTJ+AND 图书作者=+ALLTRIM(THISFORM.txt出版社.VALUE)+ENDIFTHISFORM.RELEASE()DO FORM BookSerout2)创建“图书信息查询结果”表单“图书信息查询结果”表单用来显示“图书信息”数据表中符合查询条件的记录。要使表单中的表格控件中只显示符合查询条件的记录,需要对表单的数据环境进行设置,并且如果符合查询条件的记录数如果为0则“打印”按钮不可用。添加表单的Init事件代码:SELECT BookSET FI
36、LTER TO &BookTJCOUNT FOR &BookTJ TO nNumberIF nNumber=0ENDIF(3)创建“选择打印类型”表单“选择打印类型”表单用在当在系统主表单中单击“打印”按钮时,弹出来供用户选择是打印全部记录还是只打印当前记录,用户选择后单击“打印”按钮即可以用预览的方式查看打印结果。 “打印”按钮的Click事件代码:IF DbfName=StuDbf REPORT FORM StuInfo FOR 学号=StuNO PREVIEW ELSE REPORT FORM StuInfo PREVIEW ENDIFELSE REPORT FORM BookInfo
37、FOR 图书编号=BookNO PREVIEW ELSE REPORT FORM BookInfo PREVIEW ENDIFENDIFTHISFORM.RELEASE()六、创建“读者借书记录”模块“读者借书记录”模块由1个主表单“读者借书记录”表单和3个辅助表单“输入”表单、“过期图书”表单和“图书借阅排行榜”表单组成。1、主表单的功能“读者借书记录”表单首先用来显示读者借书的情况,可以显示读者当前已经借出并且尚未归还的图书的记录,还可以显示读者所有的借书记录。单击“学号”后面的“”按钮可以调用“输入”表单输入学号来改变表单中显示的读者。单击“借书”按钮,可以调用“输入”表单用来输入要借的
38、图书编号,如果该图书在馆中,而且该读者所借的图书的数目没有到达规定的数目(这里设定为7本),则借书成功,否则借书失败。单击“还书”按钮,可以调用“输入”表单用来输入要还入的图书编号,如果该图书是被当前读者借出,则还书成功。另外,当表单中的表格控件中显示的是当前读者的“已借出”图书记录时,可以通过双击列表中的某本书的“图书编号”栏来快速还书。单击“过期”按钮可以查看系统中的逾期未归还的图书的借阅记录。单击“排行”按钮,可以查看系统内借阅次数在所有图书内排行前10名的图书的列表。单击“打印”按钮可以将表单中的表格控件中数据打印出来,并且以预览的方式查看打印结果。2、创建主表单界面 在“表单设计器”
39、中创建一个表单作为“读者借书记录”表单,命名为“JyRec”。 利用“表格生成器”在表单中添加一个表格控件。利用“表格生成器”时要注意,用“表格生成器”生成的表格控件中只能出现一个数据中数据,而本表单中的表格控件要求出现两个数据表中数据,所以在经过“表格控件”生成后还要采用手工的方式向表格控件中添加列。在某种意义上来说,“表格生成器”在此只是充当了一种设计外观的作用。3、添加主表单代码向表单添加一个表单属性OldRecord来保存数据表的记录指针的位置,并将其初始值设置为0。在进入表单时,要显示全局变量“StudentNO”传递过来的学号的学生的借书记录,而且表单设定进入时显示已经借出的图书的
40、列表。表单中的选项按钮组是用来让用户选择表单中显示的记录的类别的,应该在做出选择后立即在表单中显示出来。当用户单击“已借出”按钮时,表单中只显示当前读者的未归还的图书的列表。添加选项按钮组的Valid事件代码:IF THIS.VALUE=1 SELECT JyRec SET FILTER TO EMPTY(归还日期)双击图书编号可双书ELSE SELECT JyRec SET FILTER TOENDIFTHISFORM.REFRESH()添加“”按钮的Click事件代码:SELECT StudentSET FILTER TOTHISFORM.OldRecord= RECNO() &将记录编号
41、储存DO FORM Input WITH 输入学号,999999 TO StuNO &调用输入表单SET EXACT ON &改为精确比较IF StuNO &表示有输入学号 SELECT Student LOCATE FOR 学号=StuNO IF NOT FOUND() & 表示找不到时 MESSAGEBOX(无此学号,16,信息窗口) GO Thisform.OldRecord & 回到原记录 ENDIFENDIFTHISFORM.Refresh() & 重新显示表单上各对象的数据SET EXACT OFF & 改回模糊比较当在表单中的选项按钮组中选择的“已借出”按钮时双击表格控件中某条记录的“图书编号”列就可以还书,所以还需要添加“图书编号”列的DbClick事件代码。一本书的还入需要进行的操作是在“图书信息”数据表中将所还图书的“是否借出”字段更改为“.F.”,将“读者借书记录”数据表中该记录的“还书日期”更改为当前日期。添加“图书编号”列的“Text1”的DblClick事件代码: SELECT JyRec REPLACE 归还日期 WITH DATE() FOR 图书编号=THIS.VALUE AND EMPTY(归还日期) SELECT Book REPLACE 是否借出 WITH .F. FOR 图书编号=THIS.VAL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- ERP系统选型教学课件
- 全媒体运营师岗位要求分析及试题及答案
- 全媒体运营师内容规划技能试题及答案
- 2024年陪诊师考试的结构性分析试题及答案
- 员工流失率分析与对策试题及答案
- 2024年陪诊师考试护理记录试题及答案
- 2024年人力资源管理师考试的应考技巧试题及答案
- 2024监理工程师题库建设试题及答案
- 黑龙江省哈尔滨六十九重点名校2024-2025学年中考物理试题压轴试卷含解析
- 黑龙江省哈尔滨第六中学2025届高三假期自主综合能力测试(三)语文试题含解析
- 2025春人教版七年级英语下册重点知识默写
- 2025年驻马店全域矿业开发有限公司招聘27人笔试参考题库附带答案详解
- DB32T 5013-2025镉污染耕地土壤减污修复黏土矿物-四氧化三铁-海藻酸钠基功能材料制备技术规程
- 高中语文整本书阅读教学研究
- 2025年全国质量月活动总结参考(2篇)
- 中国近现代史纲要心得体会
- 缝纫培训课件
- 中建落地式脚手架施工方案
- 《中华人民共和国机动车驾驶人科目一考试题库》
- 倪海厦天纪学习笔记以及讲义
- 医疗安全不良事件报告制度培训
评论
0/150
提交评论