层次结构的若干个模块,每层模块在分解成下一层子模块,如此自顶向下,逐步细分,就可以把复杂的大模块分解成功能单一的小模块。在这些小模块完成设计之后,再按其逻辑结构,层层向上组织起来,大的程序就得到了解决。而近几年出现的面向对象程序设计方法,以对象和类为基本构件,以方法、消息和继承为基本机制,其基本思想和手段是提高软件开发的抽象层次与软件的重用性,把程序设计的焦点集中在类和类层次结构的设计、实现和重用上,从而使程序设计更加符合人类对现实世界的理解和描述,大大提高了程序设计的能力。
基于上述特点,决定了采用结构化程序设计和面向对象程序设计相结合的方法,以MicrosoftVisualBasic6.0为开发工具进行程序设计,不仅实现了系统各模块的功能,而且具有直观友好的用户界面,使用户操作简单、方便、快捷,也大大减轻了管理员的工作量,提高了图书馆管理的自动化程度。
我负责读者和流通两大模块的设计工作,以下对两大模块的程序设计工作分别做详细的介绍。
6.1.1流通
选择【流通】菜单中的【柜台出纳】命令,出现如图6-1所示窗口。
图6-1【柜台出纳】窗口
【柜台出纳】主要功能:
流通柜台是图书馆对外的窗口,实现图书馆柜台出纳的各项操作,是图书馆业务的主要环节之一。馆员可在"柜台出纳"作业中按读者证号查询读者相关资料及其借书、还书、续借等情况,并进行借书、还书、续借等各项操作。
【柜台出纳】主界面由以下三部分组成
1.左侧『查询条件』框架。
2.右侧『借书』选项卡。
3.右侧『还书』选项卡。
1.『查询条件』
『查询条件』主要功能:
可以根据输入的读者证号查询出符合条件的读者资料。
读者资料包括读者姓名、单位所系、读者状况、读者身份、已借册数、可借册数、读者备注以及借书、还书、续借情况。
『查询条件』有3个功能按钮:确认、刷新、退出
(1)确认按钮:(Command1)
【功能】
为本框架内与数据库有联系的文本框、列表框及表格控件TDBGrid1和TDBGrid2等连接数据源,并在右侧列表中显示出该读者前次借阅图书信息和归还情况。
【代码】
PrivateSubCommand1_Click()
DimdzRSAsNewADODB.Recordset
dzRS.Open"select*fromreaddzwherereadID='"+Trim(txtdz(0).Text)+"'",g_CN,adOpenKeyset
IfdzRS.RecordCount>0Then
txtdz(1).Text=dzRS!readNA
txtdz(2).Text=dzRS!sdeptype
txtdz(3).Text=dzRS!readzk
txtdz(4).Text=dzRS!readsf
txtdz(5).Text=dzRS!yjycs
txtdz(6).Text=dzRS!kjycs
txtdz(11).Text=dzRS!readmemo
Label11.Caption="前次借阅"+Trim(dzRS!yjycs)+"本"
EndIf
Setdqkk=Nothing
dqkk.Open"select*fromreadjlwherereadID='"+txtdz(0).Text+"'andbz='0'",g_CN,adOpenKeyset
Ifdqkk.RecordCount>0Then
TDBGrid2.DataSource=dqkk
TDBGrid2.Refresh
EndIf
Setdqkk=Nothing
dqkk.Open"select*fromreadjlwherereadID='"+txtdz(0).Text+"'andbz='1'",g_CN,adOpenKeyset
Ifdqkk.RecordCount>0Then
TDBGrid1.DataSource=dqkk
TDBGrid1.Refresh
EndIf
EndSub
(2)刷新按钮:(Cmd1)
【功能】
调用Command1_Click,功能同上。
【代码】
PrivateSubcmd1_Click()
CallCommand1_Click
EndSub
(3)退出按钮:(Cmd2)
【功能】
退出流通柜台界面,回到程序主窗口。
【代码】
PrivateSubcmd3_Click()
UnloadMe
EndSub
2.『借书』
『借书』窗口如图6-2所示。
图6-2『借书』窗口
『借书』主要功能:
使读者有效地完成图书借阅工作,并查询出未还书情况,对过期未还或即将到期的图书进行续借。
『借书』有4个功能按钮:借书、本次借阅、未还书查询、续借
(1)借书按钮:(Command10)
【功能】
用SQL语句定义表格控件TDBGrid2的各个字段并赋予数据源,读者借阅图书后更新馆藏的图书状态、已借阅册数、借阅记录等信息,将操作中出现的错误用对话框的方式加以提示。
【代码】
PrivateSubCommand10_Click()
DimcsRSAsNewADODB.Recordset
DimbmRSAsNewADODB.Recordset
DimjyRSAsNewADODB.Recordset
DimjyRS1AsNewADODB.Recordset
Iftxtdz(0).Text=""Then
rt=MsgBox("请输入读者证号!",vbOKOnly,"提示")
txtdz(0).SetFocus
ExitSub
EndIf
Iftxtdz(3).Text<>"有效读者"Then
rt=MsgBox("读者状况无效,不可借阅!",vbOKOnly,"提示")
ExitSub
EndIf
IfVal(txtdz(5).Text)>=Val(txtdz(6).Text)Then
rt=MsgBox("读者借阅册数超过规定,不可借阅!",vbOKOnly,"提示")
ExitSub
EndIf
Setdqkk=Nothing
dqkk.Open"select*fromgcwherebookbh='"+Trim(txtdl)+"'",g_CN,adOpenKeyset
csRS.Open"select*fromjygz",g_CN,adOpenKeyset
Ifdqkk.RecordCount>0Then
Ifdqkk!tszt<>"未借出"Then
rt=MsgBox("本借阅数据状态未不可借阅,请查明数据状态!",vbOKOnly,"提示")
ExitSub
EndIf
Ifdqkk!tszt<>"未借出"Then
rt=MsgBox("本借阅数据状态未不可借阅,请查明数据状态!",vbOKOnly,"提示")
ExitSub
EndIf
bmRS.Open"select*frombmwherebookID='"+Trim(dqkk!bookID)+"'",g_CN,adOpenKeyset
SQL="insertintoreadjl(readID,bookbh,bookna,jyrq,yhrq,place,author,cbs)"
SQL=SQL+"values('"&Trim(txtdz(0).Text)&"',"'readID
SQL=SQL+"'"&Trim(txtdl.Text)&"',"'bookbh
SQL=SQL+"'"&Trim(dqkk!bookna)&"',"'bookna
SQL=SQL+"'"&Format(Date,"yyyy-mm-dd")&"',"'jyrq
SQL=SQL+"'"&Format(Date+csRS!wjts,"yyyy-mm-dd")&"',"'yhrq
SQL=SQL+"'"&Trim(dqkk!gcadd)&"',"'place
IfbmRS.RecordCount>0Then
SQL=SQL+"'"&Trim(bmRS!author)&"',"'author
SQL=SQL+"'"&Trim(bmRS!cbs)&"')"'cbs
EndIf
g_CN.ExecuteSQL
strsql="Updategcsettszt='已被外借'"
strsql=strsql&"wherebookbh='"
strsql=strsql&Trim(txtdl.Text)&"'"
g_CN.Executestrsql
strsql="Updatereaddzsetyjycs='"+Trim(Str(Val(txtdz(5).Text)+1))+"'"
strsql=strsql&"wherereadID='"
strsql=strsql&Trim(txtdz(0).Text)&"'"
g_CN.Executestrsql
jyRS.Open"select*fromreadjlwherereadID='"+txtdz(0).Text+"'",g_CN,adOpenKeyset
IfjyRS.RecordCount>0Then
TDBGrid2.DataSource=jyRS
TDBGrid2.Refresh
jyRS1.Open"select*fromreadjlwherereadID='"+txtdz(0).Text+"'andjyrq='"+Format(Date,"yyyy-mm-dd")+"'",g_CN,adOpenKeyset
Label14.Caption="本次借阅"+Trim(Str(jyRS1.RecordCount))+"本"
EndIf
CallCommand1_Click
Else
rt=MsgBox("查无此图书登录号!",vbOKOnly,"提示")
txtdl.SetFocus
ExitSub
EndIf
EndSub
【使用说明】
a.输入读者证号,单击或按回车键(列出读者基本情况)
b.输入图书登录号,单击或按回车键(完成借阅)
备注:
a.如果未输入读者证号,单击或按回车键,则弹出对话框(图6-3)。
图6-3
b.若输入图书登录号错误或典藏中不存在,则弹出对话框(图6-4)。
图6-4
c.如果输入的读者证号是非有效读者,则弹出对话框(图6-5)。
图6-5
d.如果所借阅图书状态为不可借阅,则弹出对话框(图6-6)。
图6-6
e.如果读者的借阅册数超过可借阅册数,则弹出对话框(图6-7)。
图6-7
(2)本次借阅:(Command9)
【功能】
查看本次借阅的图书信息,将借阅记录集中存储的数
上一篇:
dekphi贸易公司信息管理系统+论文(论文和程序)
下一篇:
天亮之后