




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.引言图书资料的管理在学校图书馆是一项必不可少的工作,在没有电脑的时代,人们使用传统的人工方式来管理图书资料,这种管理方式存在着许多缺点,如:效率低、费时、保密性差、查找较不方便、浪费了很多的劳动力,在实际工作中带来了很多的困难。但是,随着科学技术的发展,目前大多数的高校已经有了自己的图书管理系统,而一些中、小学的图书管理仍然是人工管理,历史证明,这种管理制度不能适应时代的发展,因为这种管理制度将浪费许多物力、人力、及时间。因此,在以计算机技术为基础的当今科学发展中,以计算机为基础的信息管理代替手工操作是历史发展的必然,是生产力发展的结果。图书信息管理作为计算机应用的一个分支,有着许多的优点,如:检索迅速、查找方便、准确率高、使用及时、存储量大、成本低等特点。因此,开发一个图书信息管理系统,是高校非常必要的,也是必不可缺少的。2.系统开发背景3.系统分析3.1可行性分析可行性分析是在进行初步调查后所进行的对系统开发必要性和可能性的研究,所以也称为可行性研究。信息系统也应从技术可行性,经济可行性和社会可行性三方面来论证。通过长时间的观察与实践,我认为图书馆管理系统的可行性分析如下:(1)经济可行性分析作为图书馆这样的商业性质较小的场所,其经济成分比重相对较少,主要是支出的费用:其中包括设备购置费、软件开发费用、管理和维护费、人员工资和培训费等。由于各个图书馆实行统一操作,系统共享,其设备购置,人员工资,维护费用相对较少,前期的资金投入主要集中于购置图书上。建立信息中心,可将来自各方面的信息集中管理,提高图书管理的计划性和预见性,快速地反馈市场信息。(2)技术可行性分析技术上的可行性分析主要分析现有技术条件能否顺利完成开发工作,硬件、软件配置能否满足开发者的需要,各类技术人员的数量,水平,来源等。图书馆管理系统的工作主要是在读者和图书馆之间架起一座桥梁,能相互沟通信息和处理信息。这一特点非常适合计算机特点,通过网络internet技术,发挥计算机的信息传输速度快、准确度高的优势。计算机硬件和软件技术的飞速发展,为系统的建设提供了技术条件。(3)社会可行性分析社会可行性有时也称为操作可行性,主要论证新系统在企业或机构开发和运行的可能性以及运行后可能一起的对企业或机构的影响,即组织内外是否具备接受和使用新系统的条件。在当前信息技术飞速发展的大环境下,计算机技术和软件技术的更新是图书馆完全有可能也有能力采用这样先进的管理技术。它对图书馆带来的影响可以看到:对传统管理理念的冲击,可能引起管理层的变动和人员的调整。对图书馆工作人员的要求提高,使图书馆在一定的可能下进行机构精简,迫使工作人员继续学习新知识,拓宽图书馆在市场环境下的生存空间。对图书馆与读者之间业务方式的转变和扩充。3.2系统的数据流程图 一层数据流程:二层数据流程:3.3数据字典(1)数据流分析数据流编号:D01数据流名称:图书编目信息 简述:图书编目信息数据流来源:图书购买后,由图书馆采编人员编码整理后,输入计算机.数据流去向: 图书表.图书采编信息将采编数据存入数据库数据流组成: 书名+索书号+作者+出版社+内容简介+关键词+条码+字数+页数+出版日期数据流量: 30本/日高峰流量: 100本/日数据流编号: D02数据流名称: 图书借阅单 简述: 图书借阅单数据流来源: 用户填写图书借阅单交给图书馆管理人员,图书馆管理人员审核后,输入计算机.数据流去向:P2-11检查读者身份数据流组成: 借书日期+索书号+读者账号+库室数据流量:500本/日高峰流量: 1500本/日数据流编号: D03数据流名称: 填写借阅记录 简述: 填入借阅表的借书记录数据流来源: P2-13检查合格的借阅图书信息录入到借阅表中数据流去向: 借阅表数据流组成: 借书日期+索书号+读者账号+库室+还书日期数据流量: 500人/日高峰流量: 1500人/日数据流编号: D04数据流名称: 借阅图书数量 简述: 修改图书库中图书数量数据流来源: P2-13修改图书典藏模块中图书数量数据流去向: 图书表数据流组成: 索书号+借阅数量数据流量: 500本/日高峰流量: 1500本/日数据流编号: D05数据流名称: 图书征订信息 简述: 读者征订图书时写的信息数据流来源: 用户填写图书征订信息,要求征订图书数据流去向: P4-11预定信息输入数据流组成: 作者+出版社+出版日期+数量+征订日期数据流量: 20次/日高峰流量: 50次/日数据流编号: D06数据流名称: 填写图书征订信息 简述: 征订图书填写借阅表数据流来源: 用户填写图书征订信息,要求征订图书数据流去向: 借阅表数据流组成: 作者+出版社+出版日期+数量+征订日期数据流量: 20次/日高峰流量: 50次/日数据流编号: D07数据流名称: 还书记录 简述: 还书记录数据流来源: 图书管理人员数据流去向: P2-14图书归还处理数据流组成: 索书号+借阅数量数据流量: 100笔/日高峰流量: 200笔/日数据流编号: D08数据流名称: 填写归还记录 简述: 在图书借阅模块中填写归还记录数据流来源: P2-14图书归还处理数据流去向: 借阅表数据流组成: 索书号+借阅数量+状态数据流量: 100笔/日高峰流量: 200笔/日数据流编号: D09数据流名称: 归还修改在库书量 简述: 还书时修改图书库中的在库数量数据流来源: P2-14图书归还处理数据流去向: 图书表数据流组成: 索书号+借阅数量数据流量: 100笔/日高峰流量: 200笔/日数据流编号: D010数据流名称: 读者登陆信息 简述: 读者登陆信息数据流来源: 图书馆管理人员数据流去向: P7-11读者登陆检查数据流组成: 用户名+密码数据流量: 100人次/日高峰流量: 300人次/日数据流编号: D011数据流名称: 读者信息 简述: 读者信息数据流来源: P7-11读者登陆检查数据流去向: 读者表数据流组成: 用户名+密码+权限数据流量: 100人次/日高峰流量: 300人次/日(2)处理逻辑的描述处理逻辑编号:P1处理逻辑名称:图书编目系统 简述:图书采购入库,经过编目等处理后,将其目录信息存入数据库,提供给读者使用。目录信息包括书名、索书号、作者、出版社、内容简介、关键词、条码、字数、页数、出版日期等。输入的数据流:图书编目信息(D01) 处理逻辑:编目数据录入,要求录入数据正确输出的数据流:D01处理频率:30本/日处理逻辑编号:P1-11处理逻辑名称:编目管理 简述:图书采购入库,经过编目等处理后,将其目录信息存入数据库,提供给读者使用。目录信息包括书名、索书号、作者、出版社、内容简介、关键词、条码、字数、页数、出版日期等。输入的数据流:图书编目信息(D01) 处理逻辑:编目数据录入,要求录入数据正确输出的数据流:D01处理频率:30本/日处理逻辑编号:P2处理逻辑名称:图书借阅系统 简述:读者查找到所需图书后应当到图书馆办理借阅手续。图书借阅系统处理图书借阅、还书、续借等手续。输入的数据流: 图书借阅单D02处理逻辑:图书借阅单输入,检查读者身份,检查图书在库情况,然后填写图书借阅库并修改图书表中的在库数量。输出的数据流:D01处理频率:100本/日处理逻辑编号:P2-11处理逻辑名称:检查读者身份。 简述:检查读者身份,已注册的读者可以借书。输入的数据流:图书借阅单D02处理逻辑:查询读者表,已注册的读者可以借书。输出的数据流:D02合格借书者处理频率:100本/日处理逻辑编号:P2-12处理逻辑名称:检查图书是否在库 简述:检查所借图书是否有足够的库存。输入的数据流:图书借阅单D02 处理逻辑:访问图书表,检查所借图书是否有足够的库存。输出的数据流:D02可以借阅处理频率:100本/日处理逻辑编号:P2-13处理逻辑名称:填写借阅表,修改图书表。 简述:填写借阅表,修改图书表。输入的数据流:图书借阅单D02 处理逻辑:修改图书表中的所借图书的在库数量,在借阅表中填写借书情况。输出的数据流:D02可以借阅处理频率:100本/日处理逻辑编号:P2-14处理逻辑名称:图书归还处理 简述:图书归还处理输入的数据流: 还书记录D07处理逻辑:还书时修改图书表中所借图书的在库量,并在借阅表中填写还书情况。输出的数据流:填写归还记录(D08)+归还修改在库书量(D09)处理频率:100本/日处理逻辑编号: P3处理逻辑名称: 图书征订系统 简述:图书征订系统。读者可从图书馆管理系统信息系统进入图书征订系统,进行图书的征订。输入的数据流: 图书征订信息(D05)处理逻辑:读者填写图书征订信息,系统将检查读者的身份,合格的将写入借阅表,并修改图书库中该书的库存量。输出的数据流:填写图书征订信息(D06)处理频率: 50本/日处理逻辑编号: P3-11处理逻辑名称: 征订信息输入 简述:征订信息输入输入的数据流: 图书征订信息(D05)处理逻辑:读者填写图书征订信息输出的数据流:P3-12读者身份检查处理频率: 50本/日处理逻辑编号:p3-12处理逻辑名称: 读者身份检查 简述:读者身份检查输入的数据流: 图书征订信息(D05)处理逻辑:检查读者身份。输出的数据流:P3-13征订信息处理频率: 50本/日处理逻辑编号: P3-13处理逻辑名称: 征订处理 简述:征订处理输入的数据流: 图书征订信息(D05)处理逻辑:合格的征订将写入借阅表,并修改图书表中该书的在库数量。输出的数据流:填写图书征订信息(D06)处理频率: 50本/日处理逻辑编号: P4处理逻辑名称: 维护系统 简述:系统维护对读者的管理。只有系统中注册的用户才能在本馆中借阅图书。输入的数据流: 读者登陆信息(D010)处理逻辑:读者登陆信息录入输出的数据流:读者信息(D011)处理频率: 100人次/日处理逻辑编号:P4-11处理逻辑名称:读者登陆检查 简述:审查用户信息,合格的用户信息输入读者库。输入的数据流: 读者登录信息(D010)处理逻辑:读者登录信息录入输出的数据流:读者信息(D011)处理频率:100人次/日(3)数据存储的描述数据存储编号: F01数据存储名称:读者表简述:读者信息,读者在本馆注册后成为注册读者。数据存储组成:用户名+密码关键字: 用户名相关联的处理:P2-11 P3-12 P4-11数据存储编号: F02数据存储名称:图书库简述:存储本图书馆图书信息数据存储组成:书名+索书号+作者+出版社+内容简介+关键词+条码+字数+页数+出版日期关键字: 书名相关联的处理:P1-11 P2-12 P2-13 P2-14 P3-13数据存储编号: F03数据存储名称:借阅表简述:存储本馆图书借书信息数据存储组成:借书日期+索书号+读者账号+库室+还书日期+借书量+还书量关键字: 索书号相关联的处理:P2-13 P2-14 P3-13(4)外部实体描述外部实体编号:S01外部实体名称:读者简述:图书馆用户输入的数据流:D10输出的数据流:D05外部实体编号:S02外部实体名称:图书馆管理人员简述:图书馆管理人员输入的数据流:D01 D02 D03 D07 D08 D1输出的数据流:D04 D06 D094.系统设计及实施4.1系统运行环境1.硬件环境要求: (1)Pentium 或更高的处理器,或任何运行于Microsft Windows NT Workstation 的Alpha处理器。 (2)Microsft Windows 支持的VGA 或分辨率更高的监视器。 (3)64MB内存以上。 (4)鼠标或其他定点设备。2.软件环境要求:本系统是在Microsft Windows XP 下开发的,所采用的开发工具是Microsft 公司的Visual Basic 6.0 中文版,后台采用了Microsft 的 SQL Server 2000数据库,这样合理的应用,提高了数据处理的速度。(1)操作系统:Windows 9X/ME/2000/XP系列(2)数据库:Microsoft SQL Server 7.0、Microsoft SQL Server 20003语言种类:简体中文版4显示参数:分辩率:800600;色彩:256 色以上4.2系统各功能模块说明4.2.1 主窗体设计 主窗体MainForm是应用程序的控制核心,在主窗体中可完成其他窗体之间的切换。主窗体的界面如图所示。 用到的主要组件对象的属性设置见表所示:组件对象名 属性 属性值 说明Lable1 Caption 欢迎使用图书管理信息系统 显示字体组件对象名 属性 属性值 说明Image1 Picture (设置一幅位图) 主窗体中的背景图 Stetch True Autosize TrueMainMenu1 Items 制作一些菜单项 菜单制作最后效果图为: 在主窗体中通过单击菜单项按钮来选择所需的窗体,每个菜单项的功能就是显示对应的窗体。它们的单击事件的程序代码如下: procedure TMainForm.N2Click(Sender: TObject);beginbookform.show; /显示图书管理窗体end;procedure TMainForm.N3Click(Sender: TObject);beginreaderform.show; /显示读者管理窗体end;procedure TMainForm.N4Click(Sender: TObject);beginlendform.show; /显示借阅管理窗体end;procedure TMainForm.N6Click(Sender: TObject);beginclose; /关闭主窗体end;procedure TMainForm.N8Click(Sender: TObject);beginqueryform.Show; /显示信息查询窗体end;4.2.2登录窗体 其界面如图所示: 用户登录窗体运行时是让用户输入密码,以确定用户是否合法,能否进入系统。用户登录是最多可输入三次密码,如果密码仍不正确系统将关闭,所以我们可以定义一个变量来记录密码输入次数,在LoginForm窗体的变量定义部分定义:entertime:integer;并在LoginForm窗体的Oncreate事件的处理过程中初始化该变量。程序代码如下:procedure TLoginForm.FormCreate(Sender: TObject);beginentertime:=0;end;l 确定按钮功能的实现确定按钮的功能是用来检测用户输入的密码是否正确。其单击事件OnClick的处理代码如下: procedure TLoginForm.BitBtn1Click(Sender: TObject);varpwfile:textfile;possword:string;beginAssignfile(pwfile,config.sys); /从文件config.sys中读取密码reset(pwfile);readln(pwfile,possword);closefile(pwfile);inc(entertime); /密码输入次数增加1if edit1.text=possword thencloseelsebegin label1.Caption:=密码输入错误,请重新输入:;if entertime=3 then /超过输入次数beginmessagebox(handle,输入密码错误超过三次,程序退出!,信息,MB_OK);close;application.Terminate; /应用程序结束end elsebeginedit1.Text:=;edit1.SetFocus;end;end;end;其中config.sys文件用记事本来创建,保存时必须以.sys作为扩展名。登录窗体它将在主窗体初次激活之前被显示,这样才能起到合法性检查的作用。所以在主窗体(MainForm)变量定义部分定义变量HaveLogin,它的作用是判断是否已经登录。在主窗体的OnCreate事件的处理过程中初始化变量HaveLogin,OnActivate事件的处理过程中显示用户登录窗体,代码实现为: procedure TMainForm.FormCreate(Sender: TObject);beginhavelogin:=false; /初始化,说明还没有登录end;procedure TMainForm.FormActivate(Sender: TObject);beginif not havelogin then /还没有登录beginloginform.show;havelogin:=true;end;end;l 修改按钮的实现: 建立一个窗体(PsForm)用来实现修改密码,从而维护系统。它要求原密码输入正确并且新密码与确认密码相同。其界面如图所示: 其中“确认”按钮单击事件的代码为:procedure TPsForm.Button1Click(Sender: TObject); varpwfile:textfile;possword:string;begin assignfile(pwfile,config.sys); reset(pwfile); readln(pwfile,possword); closefile(pwfile); if oldedit.Textpossword then showmessage(原密码不对,不能修改密码!) else if newedit.Text=confirmedit.Text then begin assignfile(pwfile,config.sys); rewrite(pwfile); writeln(pwfile,newedit.text); closefile(pwfile); showmessage(密码修改成功!); end else begin showmessage(新密码和确认密码不一致!); newedit.SetFocus; end;end;4.2.3新书入库新书入库的界面如图所示,其中用到的组件对象可以从图中看出:主要是Lable,Edit组件。 在新书入库页显示时,需要清空几个编辑框并将输入焦点放在输入书号的编辑框CodeEdit上,这在TabSheet1(新书入库页)的OnShow事件的处理程序中实现,代码如下:procedure TBookForm.TabSheet1Show(Sender: TObject);begincodeedit.SetFocus;codeedit.SelectAll;nameedit.Text:=;authoredit.Text:=;outtimeedit.Text:=;costedit.Text:=;pressedit.Text:=;memo1.Lines.Clear;end;单击“入库”按钮将在几个编辑框中填入的新书的数据加入到数据库中,其只要内容有:(1) 检查新书书号是否正确,如果不正确则退出入库操作;(2) 检测此书号是否已经存在,如存在则退出入库操作;(3) 将新书的数据假如到数据库中。在这里我们用到SQL语言来向数据库中插入数据,其语法为:insert into 表名字段名,字段名-values ()Query 组件的赋值语句为:ParamByname(FieldName).Value:=s1;而ADOQuery组件的赋值语句为:Parameters.ParamByname(FieldName).Value:=s1;综上知识,可以得出入库按钮的Onclick事件的代码:procedure TBookForm.Button1Click(Sender: TObject);beginif length(codeedit.Text)10 then /新书书号长度是否10beginmessagedlg(书号不正确 ,mterror,mbok,0);codeedit.SetFocus;exit;end; with DataModuleADO.ADOQuery1 do /检查新书的书号是否已经存在 begin SQL.Clear; SQL.Add(select Code from Book where Code =:Code); Parameters.ParamByName(Code).Value :=CodeEdit.Text; Open; if RecordCount 0 then /此书号已经存在 begin MessageDlg(书号已经存在,mtError,mbok,0); CodeEdit.SetFocus; Exit; end; Close; end; try with DataModuleADO.ADOQuery1 do begin SQL.Clear; SQL.Add(insert into book(Code,Name,Author,Press,OutDate,Cost,Num)+ values (:Code,:Name,:Author,:Press,:OutDate,:Cost,:num); Parameters.ParamByName(Code).value := CodeEdit.Text; Parameters.ParamByName(Name).value := NameEdit.Text; Parameters.ParamByName(Author).value := AuthorEdit.Text; Parameters.ParamByName(Press).value := PressEdit.Text; Parameters.ParamByName(num).value := numEdit.Text; try Parameters.ParamByName(OutDate).value := StrToDate(OutTimeEdit.Text); except MessageDlg(参数设置错误,mtError,mbok,0); Exit; end; try Parameters.ParamByName(Cost).value := StrToFloat(CostEdit.Text); except MessageDlg(参数设置错误,mtError,mbok,0); Exit; end; ExecSQL; end; TabSheet1Show(Sender); except MessageDlg(入库出错,mtError,mbok,0); end;end; 4.2.4 图书管理的实现图书管理页主要完成对数据库中图书数据的修改,其界面如图所示: 其中我们用到的主要组件是:组件对象名 属性 属性值 说明DataSource1 DataSet DataModuleADO.ADOTable1Label1 Caption 书号 显示“书号”ComboBox1 用于输入或显示书号DBName DataSorce DataSource1 DBEdit组件,连接数据表字段 按图可以知道所用的组件,在这里我们用到 TDataSource和TDBNavigator组件,TdataSource组件是联系数据集组件与数据控制组件的桥梁。它主要为数据控制组件提供服务。数据控制组件通过数据源组件可以从数据集中取得数据,数据在数据控制中显示,用户在数据控制组件中对数据进行操作,其只要属性是:l DataSet属性:该属性用来指明与当前数据源组件相联系的数据集组件对象的名字。l Enabled属性:此属性用来决定与此数据源组件相连的数据控制组件是否显示数据。TDBNavigator组件:TDBNavigator组件主要用于在数据集中进行记录导航和为用户操纵数据集中的记录提供一组简单明了的控制按钮。它包含一组控制按钮,如图所示: 单击其中的按钮可以向前或向后移动记录指针、插入记录、修改现存记录、提交对记录的修改、取消修改、删除记录以及刷新记录的显示等。表描述了它的各个控制按钮的功能。(从左到右) 按钮名称 功能 First 将当前记录指针移到数据库表中的第一条记录处Prior 将记录指针移到当前记录的前一条记录处Next 将记录指针移到当前记录的后一条记录处Last 将当前记录指针移到数据库表中的最后一条记录处Insert 在当前记录的前面插入一条新记录,并将数据集组件置为插入状态Delete 删除当前记录Edit 将数据集组件置为编辑状态,以便用户修改当前的记录Post 提交对当前的记录修改Cancle 取消对当前的记录修改,并将数据集组件置为浏览状态Refresh 用与其相连的数据集组件(Ttable或Tquery)中的记录刷新显示缓冲区其几个重要的属性:l VisibleButtons属性:该属性包含着多个可选的扩展子属性,只要用于选择TDBNavigator组件中的各个控制按钮的显示与否。l ShowHint与Hints属性:ShowHint属性决定是否显示TDBNavigator组件中各按钮的提示信息,Hints属性是用来设置提示信息。下面来具体实现该页面的实现:l 在图书管理页面显示时,将数据库中所有图书的书号插入到ComboBox1中供用户选择,这在TabSheet2(图书管理页面)的OnShow事件的处理程序中实现,代码如下: procedure TBookForm.TabSheet2Show(Sender: TObject);var i:integer;beginComboBox1.Items.Clear; with DataModuleADO.ADOQuery1 do begin SQL.Clear; SQL.Add(select Code from book ); Open; First; for i:=0 to RecordCount-1 do /将所有图书号加入到ComboBox1中 begin ComboBox1.Items.Add(FieldbyName(Code).AsString); Next; end; Close; end;end;l 用户可以在ComboBox1的编辑框中输入需要修改的图书的书号,也可以从ComboBox1的下拉列表框中选择书号。当ComboBox1的编辑框的书号发生变化时将触发ComboBox1的OnChange事件,在这个事件中,将该书号图书的信息在几个DBEdit中显示,代码如下: procedure TBookForm.ComboBox1Change(Sender: TObject);beginif Length(ComboBox1.Text) = 10 then begin try with DataModuleADO.ADOTable1 do TableName:=book; / ADOTable1的表名为图书数据表BOOK begin DBOutDate.DataField:= OutDate; DBName.DataField:= Name; /DBName 连接数据表中Name字段 DBAuthor.DataField:= Author; / DBAuthor连接数据表中Author字段 DBPress.DataField:= Press; /DBPress 连接数据表中Press字段 DBCost.DataField:= Cost; /DBCost 连接数据表中OutDate字段 DBMemo.DataField:= Memo; Active:=True; Locate(code,ComboBox1.Text,);/在数据库中查找 ComboBox1.Text中的书号 Edit; end; except MessageDlg(数据操作出错,mtError,mbok,0); end; end;end;l 如果用户在ComboBox1的编辑框中输入需要修改的图书的书号,输入完成后敲回车键。相应的实现代码为:procedure TBookForm.ComboBox1KeyDown(Sender: TObject; var Key: Word;l Shift: TShiftState);l beginl if Key = 13 then /敲回车键l ComboBox1Change(Sender);l end; 通过以上的过程,图书管理界面的功能基本已经实现。下面介绍读者管理窗体的设计。4.2.5读者管理窗体设计 读者管理窗体可以完成新读者数据的录入和老读者数据的修改,可以刷新读者信息、删除读者信息等功能。其大体的界面如图所示: 在这里首先介绍下窗体要用到的Delphi组件:l TGroupBox组件:它是标准的分组框组件,它在组件面板的Standard标签页上。在该组件里可以放置其他组件如Radiobutton组件、Checkbox组件等。放进去的组件将会自动成为一组。通过它的Caption属性可以修改该组件的标题。l ListView控件在Win3.2标签页上,它用来以大图标、小图标、列表或报表方式来显示用户信息。该界面用到的组件如表所示:组件对象名 属性 属性值 说明GroupBox1 Caption 操作RadioButton1 Caption 添加RadioButton2 Caption 修改Label1 Caption 借书证号Edit1 Text (空) MaxLength 10 借书证号最大长度Label2 Caption 姓名Edit2 text (空)Label3 Caption 性别ComboBox1 text (空)Label4 Caption 身份证号Edit3 text (空)Button1 Caption 关闭Button2 Caption 确定ListView1 以列表形式显示所有读者信息:Button3 Caption 刷新Button4 Caption 删除1 刷新读者信息单击“刷新”按钮将在读者列表ListView1中显示所有读者的信息,这主要在“刷新”按钮的OnClick事件的代码中实现:l 首先将读者数据表Reader中所有记录加入到ListView1中,主要用到SQL查询语言,实现代码为:select * from Reader order by ReaderID;l 然后是把查询到的记录加入到ListView1中并把有关记录显示出来,用 SubItems.add()方法就可实现。主要代码实现为:ListView1.Items.Clear; while not Eof do begin with ListView1.Items.Add do begin Caption := FieldByName(ReaderID).AsString; SubItems.Add(FieldByName(Name).AsString); if FieldByName(Sex).AsString = 1 then SubItems.Add(女) else SubItems.Add(男); SubItems.Add(FieldByName(IDCardNo).AsString); end; Next; end;Close;2 删除读者信息:单击“删除”按钮将读者列表ListView1中当前选中的读者信息从数据库中删除。其中,在删除之前需要查看该读者所借的图书是否全部归还,“删除”按钮的Button Onclick事件的只要处理代码是:对于两个变量:var i:integer;Checked:integer;l 判断当前行是否被选中:l 图书归还判断:if RecordCount = 0 then /该读者所借图书已全部归还 Checked := IDYES else begin /还有图书没有归还 if MessageDlg(此读者还有图书没有归还,是否删除?, mtConfirmation, mbYes, mbNo, 0) = mrYes then begin SQL.Clear; SQL.Add(delete from Lend where ReaderID=:ReaderID);l Parameters.ParamByName(ReaderID).Value := ListView1.Itemsi.Caption; ExecSQL; Checked := IDYES; end else Checked := IDNO;l 从数据表中删除读者数据表:if Checked = IDYES then begin with DataModuleADO.ADOQuery1 do / delete reader begin SQL.Clear; SQl.Add(delete from Reader where ReaderID=:ReaderID); Parameters.ParamByName(ReaderID).Value :=ListView1.Itemsi.Caption; ExecSQL; end; ListView1.Items.Delete(i); end else if Checked = IDNO thenExit;3 添加读者的实现过程可以参考图书入库的实现。4 修改读者信息:当读者信息发生变化时,可以在系统中对其进行修改。首先在读者列表ListView1中选中需要修改信息的读者,该读者的信息将在读者信息栏的相应编辑框中显示,对其进行修改后单击“确定”按钮提交修改后的数据。其实现代码可以参考源代码中的具体实现!4.2.6借阅管理窗体设计借阅管理窗体可以完成图书的借出和归还操作。在这里我们用到了两个ADOQuery组件,和一个Tdatasource组件,最终于界面如图所示: 用到的组件可以从图中简单的看出,具体功能的实现可以分为以下几步:l 选择需要借出/归还的图书用户可以从ComboBox1的下拉列表中选择书号或直接在ComboBox1的编辑框中输入书号。ComboBox1的编辑框中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河北省秦皇岛市实验中学2025-2026学年高二上学期开学考试语文试卷
- 部队办公室安全培训总结课件
- 绵阳市东辰学校2025-2026学年高一上学期开学分班检测英语试卷(含答案)
- 河北省邢台市2025年中考一模道德与法治试卷(含答案)
- 2025-2026学年陕西省西安市高新一中高二(上)开学物理试卷(含答案)
- 人机协同作业优化-洞察及研究
- 古环境矿物示踪-洞察及研究
- 四川省眉山市青神县共同体2024-2025学年九年级上学期11月期中物理试题(学生版)
- 达州安全驾驶培训课件
- 智能化管理探索-洞察及研究
- 2025年公证员助理招聘考试题库及模拟题答案
- 婴幼儿发展引导员岗前考核试卷及答案
- 2025湖北省监督数据分析应用中心专项招聘22人考试参考试题及答案解析
- 2025年全国企业员工全面质量管理知识竞赛题库及答案
- 超星尔雅学习通《军事理论(中北大学)》2025章节测试附答案
- 实验室常规玻璃仪器的操作及注意事项课件
- 沪教五年级数学上册第一单元测试卷
- 地下停车库设计统一规定
- 建筑装饰设计收费管理规定
- 电子课件-《市场营销》-A45-2298完整版教学课件全书电子讲义(最新)
- 工程施工资源配置计划施工资源配置计划
评论
0/150
提交评论