编辑: 人间点评 | 2013-01-09 |
快速图书查找 操作简单,直观,实用. 系统数据关系的E-R图:图1 系统设计 功能设计 图书借阅 图书归还 借书证办理与退还 图书入库与报废 数据库设计(book.dbc) 借书证表(reader.bdf) Dzbh C(8) 读者编号 Xm C(8) 读者姓名 Gzdw C(30) 工作单位 Dh C(8) 电话号码 Dz C(20) 住址 Bzrq D 办证日期 hzrq d 退证日期 图书登记表(booker.dbf) Tsbh C(8) 图书编号,同种图书有同一编号 Tsmc C(30) 图书名称 Zz C(8) 作者 Cbs C(30) 出版社 Lb C(8) 图书类别,由图书类型数据表规定 Dj N(5,1) 图书价格 Nrty M 内容提要 Kcs I 库存数 zks i 在库数,zks=zcs-本书外借册数 图书类型表(typer.bdf) Lb C(8) 图书类别,按图书管理专业规定编制 借阅登记表(brower.bdf) Dzbh C(8) 读者编号,由reader.bdf表引入的外键 Tsbh C(8) 图书编号,由booker.dbf表引入的外键 Jyrq D 借阅日期 ghrq d 归还日期 模块设计 一个菜单、一个报表、四个表单 系统实现 菜单设计:如图2 控件 属性/过程 值Form Name Form1 ShowWindow
2 Init do d:\tsgl\menu.mpr with this,.t. 借书证管理 do form tsz.scx 命令 借书登记 do form jsdj.scx 命令 还书登记 do form hsdj.scx 命令 退出 quit 命令 表单设计: 图书证办理与退还 表单与reader.bdf相连,用户从"借书证编号"文本框中输入一个借书证号,如果表中已存在则显示,否则为空,点击办理按钮,可输入新资料并赋时间为当前日期.退出表单时,系统自动将新数据存到对应表中;
但即"退还"则把当前日期赋给相应的字段.表示归还. 数据环境:cursor1:reader 控件 属性/过程 值Label Caption 借书证编号: name Label1 Text Name Text1 interactivechange thisform.dataenvironment.cursor1.filter='dzbh='+"'"+trim(this.value)+"'" thisform.refresh return lostfocus thisform.dataenvironment.cursor1.filter='dzbh='+"'"+trim(this.value)+"'" thisform.refresh return command Name Command1 Caption 办理借书证 Click select(thisform.dataenvironment.cursor1.alias) append blank replace dzbh with thisform.text1.value,bzrq with date() thisform.dataenvironment.cursor1.filter='dzbh='+"'"+;
trim(thisform.text1.value)+"'" thisform.refresh return command Name Command2 Caption 退还借书证 Click thisform.grid1.column7.text1.value=date() return command Name Command3 Caption 退出 Click close all thisform.release Grid Name Grid1 RecordSource reader 借书登记 涉及表"reader.dbf,booker.bdf,brower.bdf,typer.bdf"用户选择图书类型,读者编号,图书后点击借阅按钮,系统自动登记借阅信息 数据环境:cursor1 typer.bdf cursor2 reader.bdf cursor3 brower.bdf cursor4 booker.bdf 数据关系:relation1 reader.dzbh-brower.dzbh relation2 typer.lb-booker.lb 控件 属性/过程 值combo Name Combo1 RowSource Reader.dzbh RowSourceType
6 interactivechange thisform.refresh lostfocus thisform.refresh combo Name Combo2 RowSource Typer.lb RowSourceType
6 interactivechange thisform.refresh lostfocus thisform.refresh Text Name Text1 ControlSource Reader.xm Text Name Text2 ControlSource Reader.dh Grid Name Grid1 RecordSource booker Grid Name Grid1 RecordSource bower Command Name Command1 Caption 借阅 Click tdbf=alias() select(thisform.dataenvironment.cursor2.alias) append blank replace dzbh with thisform.combo1.value replace tsbh with thisform.grid1.column1.text1.value replace jyrq with date() thisform.refresh select(thisform.dataenvironment.cursor1.alias) replace zks with (zks-1) select &tdbf thisform.refresh return 还书登记 涉及表"reader.dbf,booker.bdf,brower.bdf"用户在借书证编号文本框中输入一个编号后,系统自动在后面的文本框内显示与该号对应的读者信息,并显示未归还的图书,后由用户在表格中用鼠标选择其要归还的图书,选中后单击还书按钮程序进行两项工作,将系统日期赋给brower.bdf,再booker.bdf中修改zks字段 控件 属性/过程 值Combo Name Combo1 RowSource Reader.dzbh RowSourceType