hen
MsgBox"请填写员工的姓名!",vbOKOnly+vbExclamation,"创建员工帐号"
TxtUName.SetFocus
ExitSub
EndIf
IfComboShenFen.Text=""OrComboShenFen.Text="请选择员工身份"Then
MsgBox"请选择员工的身份!",vbOKOnly+vbExclamation,"创建员工帐号"
ComboShenFen.SetFocus
ExitSub
EndIf
IfTxtUDanWei.Text=""ThenTxtUDanWei.Text="无"
IfTxtUDiZhi.Text=""Then
MsgBox"请填写员工的地址!",vbOKOnly+vbExclamation,"创建员工帐号"
TxtUDiZhi.SetFocus
ExitSub
EndIf
IfTxtUMail.Text=""ThenTxtUMail.Text="无"
IfTxtUDianHua.Text=""ThenTxtUDianHua.Text="无"
IfTxtUMemo.Text=""ThenTxtUMemo.Text="无"
IfcheckUserID(TxtCard.Text)Then
MsgBox"这个员工帐号已经被注册!请另选一个!",vbOKOnly+vbExclamation,"创建员工帐号"
TxtCard.SelStart=0
TxtCard.SelLength=Len(TxtCard.Text)
TxtCard.SetFocus
ExitSub
EndIf
CmdRegMe.Enabled=False
'开始一个事务
BeginTrans
Adodc1.CommandType=adCmdTable
Adodc1.RecordSource="员工表"
Adodc1.Refresh
Adodc1.Recordset.AddNew
Adodc1.Recordset!员工帐号=TxtCard.Text
Adodc1.Recordset!姓名=TxtUName.Text
IfOptionMan.ValueThen
Adodc1.Recordset!性别="男"
Else
Adodc1.Recordset!性别="女"
EndIf
Adodc1.Recordset!地址=TxtUDiZhi.Text
Adodc1.Recordset!手机=TxtUDanWei.Text
Adodc1.Recordset!电子邮件=TxtUMail.Text
Adodc1.Recordset!电话=TxtUDianHua.Text
Adodc1.Recordset!人生格言=TxtUMemo.Text
Adodc1.Recordset!创建日期=Now()
Adodc1.Recordset.Update
Adodc1.CommandType=adCmdTable
Adodc1.RecordSource="Admin"
Adodc1.Refresh
Adodc1.Recordset.AddNew
Adodc1.Recordset!用户ID=TxtCard.Text
Adodc1.Recordset!用户密码=TxtCard.Text
Adodc1.Recordset!用户身份=ComboShenFen.Text
Adodc1.Recordset.Update
CommitTrans
MsgBox"恭喜你,注册成功!"&vbCrLf&"员工的帐号和密码就是你填写的员工帐号!"&vbCrLf&"请员工自行修改密码或立即修改密码。",vbOKOnly+vbQuestion,"注册成功"
TxtCard.Text=""
TxtUName.Text=""
TxtUDanWei.Text=""
TxtUDiZhi.Text=""
TxtUMail.Text=""
TxtUDianHua.Text=""
TxtUMemo.Text=""
CmdRegMe.Enabled=True
ExitSub
errEnd:
Rollback
MsgBox"注册失败,操作数据库发生错误!",vbOKOnly+vbExclamation,"注册失败"
CmdRegMe.Enabled=True
EndSub
模块名:GetJinJia
模块原型:PublicFunctionGetJinJia(bianHaoAsString)AsString
代码:
PublicFunctionGetJinJia(bianHaoAsString)AsString
GoToerrEnd
Adodc1.CommandType=adCmdText
Adodc1.RecordSource="select[单价]from[进书记录]where[图书编号]="""&TuShuBianHao&""""
Adodc1.Refresh
IfAdodc1.Recordset.RecordCount>0Then
Adodc1.Recordset.MoveFirst
GetJinJia=Adodc1.Recordset!单价&""
Else
MsgBox"数据丢失,清重试!",vbOKOnly+vbExclamation,"办理退货"
GetJinJia=""
ExitFunction
EndIf
ExitFunction
errEnd:
MsgBox"找不到该品种的进价!",vbOKOnly+vbExclamation,"检索数据库出错"
GetJinJia=""
EndFunction
模块名:CmdTH_Click
模块原型:PrivateSubCmdTH_Click()
代码:
PrivateSubCmdTH_Click()
GoToerrEnd
DimQDAsInteger
IfTxtShuLiang.Text=""Then
MsgBox"请填写退货的数量.",vbOKOnly+vbExclamation,"办理退货"
TxtShuLiang.SetFocus
ExitSub
EndIf
Adodc1.CommandType=adCmdText
Adodc1.RecordSource="select*from[Book]where[图书编号]="""&TuShuBianHao&""""
Adodc1.Refresh
IfAdodc1.Recordset.RecordCount=0Then
MsgBox"数据丢失,清重试!",vbOKOnly+vbExclamation,"办理退货"
ExitSub
EndIf
Adodc1.Recordset.MoveFirst
IfAdodc1.Recordset!库存量-CInt(TxtShuLiang.Text)<0Then
MsgBox"库存不足,没有足够的图书可以退回!",vbOKOnly+vbExclamation,"库存不足"
TxtShuLiang.SetFocus
TxtShuLiang.SelStart=0
TxtShuLiang.SelLength=Len(TxtShuLiang.Text)
ExitSub
EndIf
IfTxtJinJia.Text=""Then
MsgBox"图书进价信息丢失,无法完成退货操作!",vbOKOnly+vbExclamation,"办理退货"
TxtShuLiang.SetFocus
ExitSub
EndIf
IfTxtJinE.Text=""Then
MsgBox"请填写退货金额.",vbOKOnly+vbExclamation,"办理退货"
TxtJinE.SetFocus
ExitSub
EndIf
IfTxtYuanYin.Text=""Then
MsgBox"请填写退货原因.",vbOKOnly+vbExclamation,"办理退货"
TxtYuanYin.SetFocus
ExitSub
EndIf
IfTxtMemo.Text=""ThenTxtMemo.Text="无"
QD=MsgBox("确定入帐吗?",vbOKCancel+vbQuestion,"确认入帐")
IfQD=vbCancelThen
'UnloadMe
ExitSub
EndIf
CmdTH.Enabled=False
Screen.MousePointer=11
BeginTrans
Adodc1.CommandType=adCmdTable
Adodc1.RecordSource="退货记录"
Adodc1.Refresh
Adodc1.Recordset.AddNew
Adodc1.Recordset!供应商编号=GongYingShangID
Adodc1.Recordset!图书编号=TuShuBianHao
Adodc1.Recordset!进价=TxtJinJia.Text
Adodc1.Recordset!退货数量=CInt(TxtShuLiang.Text)
Adodc1.Recordset!金额=TxtJinE.Text
Adodc1.Recordset!退货原因=TxtYuanYin.Text
Adodc1.Recordset!退货日期=Now()
Adodc1.Recordset!备注=TxtMemo.Text
Adodc1.Recordset.Update
Adodc1.CommandType=adCmdText
Adodc1.RecordSource="select*from[Book]where[图书编号]="""&TuShuBianHao&""""
Adodc1.Refresh
IfAdodc1.Recordset.RecordCount=0Then
Rollback
Screen.MousePointer=vbDefault
MsgBox"数据丢失,清重试!",vbOKOnly+vbExclamation,"办理退货"
CmdTH.Enabled=True
ExitSub
EndIf
Adodc1.Recordset.MoveFirst
Adodc1.Recordset!库存量=Adodc1.Recordset!库存量-CInt(TxtShuLiang.Text)
Adodc1.Recordset.Update
CommitTrans
Screen.MousePointer=vbDefault
MsgBox"本次退货操作成功!",vbOKOnly+vbInformation,"操作成功"
UnloadMe
ExitSub
errEnd:
Rollback
Screen.MousePointer=vbDefault
MsgBox"更新数据库失败!无法完成退货操作!",vbOKOnly+vbExclamation,"更新失败"
CmdTH.Enabled=True
EndSub
模块名:CmdSaveContinue_Click
模块原型:PrivateSubCmdSaveContinue_Click()
代码:
PrivateSubCmdSaveContinue_Click()
GoToerrEnd
IfTxtBianHao.Text=""Then
MsgBox"请输入供应商编号!",vbOKOnly+vbExclamation,"供应商登记"
TxtBianHao.SetFocus
ExitSub
EndIf
IfTxtDanWei.Text=""Then
MsgBox"请输入单位名称!",vbOKOnly+vbExclamation,"供应商登记"
TxtDanWei.SetFocus
ExitSub
EndIf
IfTxtDiZhi.Text=""Then
MsgBox"请输入供应商联系地址!",vbOKOnly+vbExclamation,"供应商登记"
TxtDiZhi.SetFocus
ExitSub
EndIf
IfTxtDianHua.Text=""Then
MsgBox"请输入供应商联系电话!",vbOKOnly+vbExclamation,"供应商登记"
TxtDianHua.SetFocus
ExitSub
EndIf
IfTxtChuanZhen.Text=""ThenTxtChuanZhen.Text="未知"
IfTxtMail.Text=""ThenTxtMail.Text="无"
IfTxtLianXiRen.Text=""Then
MsgBox"请输入联系人姓名!",vbOKOnly+vbExclamation,"供应商登记"
TxtLianXiRen.SetFocus
ExitSub
EndIf
IfTxtWeb.Text=""ThenTxtWeb.Text="无"
IfTxtJianJie.Text=""ThenTxtJianJie.Text="无"
IfcheckGYSID(TxtBianHao.Text)Then
MsgBox"供应商编号不唯一,请另选一个!",vbOKOnly+vbExclamation,"供应商登记"
TxtBianHao.SetFocus
TxtBianHao.SelStart=0
TxtBianHao.SelLength=Len(TxtBianHao.Text)
ExitSub
EndIf
Adodc1.Recordset.AddNew
Adodc1.Recordset!供应商编号=TxtBianHao.Text
Adodc1.Recordset!供应商=TxtDanWei.Text
Adodc1.Recordset!地址=TxtDiZhi.Text
Adodc1.Recordset!网址=TxtWeb.Text
Adodc1.Recordset!联系人=TxtLianXiRen.Text
Adodc1.Recordset!电话=TxtDianHua.Text
Adodc1.Recordset!传真=TxtChuanZhen.Text
Adodc1.Recordset!电子邮件=TxtMail.Text
Adodc1.Recordset!单位简介=TxtJianJie.Text
Adodc1.Recordset.Update
MsgBox"供应商情况登记成功!",vbOKOnly+vbInformation,"登记成功"
TxtBianHao.Text=""
TxtDanWei.Text=""
TxtDiZhi.Text=""
TxtWeb.Text=""
TxtLianXiRen.Text=""
TxtChuanZhen.Text=""
TxtDianHua.Text=""
TxtMail.Text=""
TxtJianJie.Text=""
TxtBianHao.SetFocus
ExitSub
errEnd:
MsgBox"更新数据库失败!",vbOKOnly+vbExclamation,"数据库出错"
EndSub
注:其他模块(略)。
九、用户界面设计报告
9.1界面设计规范
主界面:菜单栏、工具条、工作区(本系统采用SSTab页框)、状态栏等。
界面资源:由ImageList控件提供界面资源。
9.2系统窗体汇总
窗体名称
窗体类型
简要说明
FrmLogIn
启动窗体
系统登陆
FrmMain
MDI主窗体
系统主窗体
FrmAbout
模式窗体
"关于..."窗体
FrmAdminMain
MDI子窗体
经理主界面
FrmAdminMemo
模式窗体
经理个人资料维护
FrmBook
模式窗体
新书入库、选择品种
FrmBookDengJi
模式窗体
新书入库登记
FrmBookMemo
模式窗体
图书资料更正
FrmBookSell
模式窗体
图书销售、选择图书
FrmBookSellerMain
MDI子窗体
售书员主界面
FrmCangGuanMain
MDI子窗体
仓库管理员主界面
FrmChgHYMemo
模式窗体
修改会员资料
FrmChgHYPasswd
模式窗体
修改会员密码
FrmChgPasswd
模式窗体
修改密码,适用于所有用户
FrmChgUserMemo
模式窗体
修改用户资料,适用于会员以上级别用户
FrmChgUserPasswd
模式窗体
强制修改用户密码,适用于经理
FrmDJGYS
模式窗体
登记供应商信息
FrmGuestMain
MDI子窗体
游客级用户主界面
FrmGYS
模式窗体
新书入库、选择供应商
FrmHelp
模式窗体
系统帮助
FrmHuiYuan
模式窗体
图书销售、选择会员或游客
FrmHYmemo
模式窗体
会员资料统一管理
FrmInfo
模式窗体
客户反馈信息统一管理
FrmKuCun
模式窗体
库存统计
FrmMemberMain
MDI子窗体
会员级用户主界面
FrmNewBook
模式窗体
新书入库、添加品种
FrmNewLei
模式窗体
创建图书分类
FrmNewUser
模式窗体
创建员工帐号,适用于经理
FrmRegMe
模式窗体
创建会员帐号
FrmSell
模式窗体
图书销售
FrmSellBook
模式窗体
图书销售统计
FrmTHBook
模式窗体
办理退货、选择品种
FrmTHGYS
模式窗体
办理退货
FrnTHTJ
模式窗体
退货统计
FrmToday
模式窗体
本日销售统计
FrmTongJi
模式窗体
按时段的详细统计分析
FrmTuiHuo
模式窗体
办理退货、选择供应商
FrmUserAdmin
模式窗体
员工帐号、资料集中、统一管理
FrmUserInfo
模式窗体
反馈信息管理,适用于仓库管理员
FrmUserMemo
模式窗体
会员资料维护
9.3主界面设计
主界面的设计采用标准Windows主窗口样式,自上而下依次为:菜单栏、工具条、工作区(本系统采用SSTab页框)、状态栏等。所有系统用户拥有相似的主界面。主界面包含基本的或共享的功能,如书目浏览与检索,基本统计等。
主界面如下图所示:
图14.系统主界面设计样式
9.4子界面设计
除系统中主要的、基本的功能之外,子系统或非共享功能的实现均采用子界面的设计来实现,如图书销售、退货、进货管理、会员管理、员工管理、统计分析等。
子界面设计样式如下图所示:
图15.系统子界面设计样式
9.5界面资源设计
系统图标:
工具栏图标:
帮助、关于对话框显示的图片:
十、软件测试分析报告
10.1测试范围与主要内容
测试范围
主要内容
简要说明
系统登陆验证
验证用户身份,进行权限控制
功能性测试
信息检索功能测试
测试数据库检索代码的健壮性
功能性测试
图书销售管理功能测试
测试系统实用性、方便性
功能性测试
统计分析测试
测试按时段统计的准确性
功能性测试
数据完整性测试
测试登记失败时的数据完整性控制
功能性测试
核心代码复检
检验核心代码的质量
逻辑检错性测试
10.2测试方法
功能性测试:黑盒测试逻辑检错性测试:白盒测试
10.3测试报告
测试项目
测试目的
测试数据
测试结果
改进意见
修改状态
书目检索
信息检索功能的准确性和健壮性
'
SQL语法错误
暂无
尚未修正
登陆验证
系统安全和权限控制
用户名:admin
密码:admin
系统响应正常,权限控制正常
---
---
图书销售
入帐操作的完整性
---
数据类型控制出错,事务处理成功
增强对用户输入数据的控制
尚未修正
统计分析
按时段统计功能的实现
2003-3
响应正常
---
---
核心代码复检
检验核心代码的质量与效率
---
编码风格良好,内部注释不足。
---
---
10.4改进建议与措施
修正建议
说明、意义
措施
添加报表打印功能
增加售书、统计等报表打印功能可以增加系统实用性。
下一版本实施
增加给钱、找余计算
方便图书销售人员
下一版本实施
增加对批发业务的支持
考虑书店实际销售情况,有利于书店拓展业务。
下一版本实施
进行联机版的开发
分布式系统是软件发展的方向
下一版本实施
添加扫描仪输入支持
方便销售管理
下一版本实施
十一、软件使用说明书
11.1软件概述
宛枫书社图书管理系统V1.0Beta测试版面向中小型书店、个体书店进行全面的人员、物流管理,旨在实现书店管理信息化。
本系统采用会员制管理,将人员分为经理、仓库管理员、售书员、会员、游客等,分别拥有不同的权限,各司其职,以便提高工作效率。系统功能包括:供应商管理、进书管理、图书资料管理、售书管理、员工管理、会员管理、库存统计、售书统计、退货统计、基本统计分析等。
用户权限:
(一)经理权限:主要包括各种统计分析、员工管理、制定会员政策等等。
(二)仓库管理员权限:包含进书管理、供应商管理、库存管理、退货管理等。
(三)售书员权限:包含售书管理、会员管理等。
11.2系统安装
下载、解压后,运行setup.exe,然后依据提示点击"下一步"即可安装成功。
安装界面如下图所示:
图16.系统安装界面
11.3使用说明
11.3.1系统登陆
安装成功后,请依次点击"开始"->"程序"->"宛枫书社图书管理系统V1.0Beta测试版"->"宛枫书社图书管理系统V1.0Beta测试版",启动画面如下图所示:
图16.系统登陆界面
依据提示在文本框中分别输入"用户帐号"和"用户密码",然后点击"登陆"按钮。如需查看帮助信息请点"帮助"。系统初始帐号、密码为:
经理级帐号:admin密码:admin
仓库管理员级帐号:仓库管理员密码:admin
售书员级帐号:售书员密码:admin
11.3.2注销与退出
登陆成功后,可选取"系统"->"注销",或点取工具栏"注销"按钮,注销当前用户。选取"系统"->"退出"退出系统,停止程序运行。
图17.注销当前用户
11.3.3办理进货登记
办理进货登记(新书入库)是书店的一项主要业务。启动系统,以仓库管理员身份登陆系统,登陆成功后,选择"书库管理"->"如库登记",或直接点取工具栏"进书"按钮,启动"新书入库"第一步操作,如下图所示:
图18.新书入库操作界面选择供应商
在这一个窗体中,可以进行以下操作:1.进行供应商情况登记。点击"供应商登记",然后输入供应商信息,供应商编号须唯一。然后,选"保存并继续"继续添加供应商信息,选"保存并返回"返回上图所示界面。2.修改资料。请直接在本界面修改资料后,点取"修改资料"。3.选择本次入库操作的供应商。在下拉列表框中选择供应商编号,系统自动列出供应商详细信息,确认后,点取"选中供应商",进入下一步操作。
新书入库操作的第二步操作是:选择入库登记的图书品种。如下图所示:
图19.新书入库操作界面选择图书品种
在这一步,您可以进行以下操作:
1.添加图书分类。点取"添加品种",启动图20所示界面,可以创建两级分类,创建第一级分类,不要选"所属父类",然后点"保存并继续"或"保存并返回"。创建第二级分类,请在所属父类栏选择父类。
图20.新书登记界面添加图书分类
2.添加图书品种。点取"添加品种",启动下图所示界面。依次选择图书所属大类和子类,为该新品种指定唯一的图书编号,然后登记各项书目信息。最后点取"保存..."。如需修改已存在的图书资料,请点击"修改资料"。完成本操作后,点取"保存并返回"或"返回"返回图19界面。
图21.新书登记界面添加图书品种
3.修改图书资料。点取"修改资料",进行现有图书资料修正。
4.选择入库操作的图书品种。依次选择图书的大类、子类和品种编号,系统自动列出图书详细资料,确认后,点击"选中该品种",进行新书入库操作。启动图22所示界面:
确认供应商和品种无误后,请登记图书的数量、单价、折扣、金额等项,最后点击"入帐",完成新书入库登记。入帐操作是一个"事务"处理过程,入帐操作失败不会引起数据不一致的问题。
图22.新书入库操作
11.3.4办理退货登记
以"仓库管理员"身份登陆系统,选取"书库管理"->"办理退货",选取供应商和图书品种,操作步骤与进货操作类似,不再详述。最后启动下图所示界面:
图23.办理退货登记界面
确认无误后登记退货的数量、金额和退货原因,点取"入帐"完成本操作。
11.3.5销售图书
以"售书员"身份登陆系统,依次点取"销售管理"->"图书销售"或点击工具栏"售书"按钮,然后输入所售图书编号,将光标移出,系统自动检索书目信息,确认后,点击"选中图书"。第二步选择会员或游客,如果购书者是本店会员,请输入会员卡号,否则直接点"选中该会员"。
上一篇:
vb图书管理系统(文档+源代码)(论文和程序)
下一篇:
初中团支部学期工作总结