版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
宛枫书社图书管理系统的设计与实现文档信息开发小组:组长:胡孟杰成员:蔡大臣、航单位:信管993/992班文件类型:软件开发用技术文档当前版本:V1.0Beta作者:胡孟杰完成日期:2020年5月1日软件信息软件名称:宛枫书社图书管理系统版本号:V1.0Beta语言类型:简体中文软件主页:.cvsky.授权类型:免费软件/测试版运行环境:Windows95/98/NT/Me/2000/XP等下载地址:.cvsky./download/WFSSBookShopVI.OBeta.zip软件大小:3069KB指导老师:王改性软件作者:胡孟杰参与开发:蔡大臣、航等参与测试:开发人员、考试通书店(明友)、科伟等联系信箱:webmastercvsky.所有:Copyright?2003-2004.Poweredby胡孟杰.开发日期:2003年3月-2003年5月相关站点:华军软件园、PChome21CN经典下载等软件简介:宛枫书社图书管理系统V1.0Beta测试版面向中小型书店、个体书店进行全面的人员、物流管理,旨在实现书店管理信息化。本系统采用会员制管理,将人员分为经理、仓库管理员、售书员、会员、游客等,分别拥有不同的权限,各司其职,以便提高工作效率。系统功能包括:供应商管理、进书管理、图书资料管理、售书管理、会员管理、员工管理、库存统计、售书统计、退货统计、基本统计分析等。TOC\o"1-5"\h\z职业技术师学院信息工程与管理学院信息管理与信息系统专业 99级中国.. 2020-05-01目录\o"CurrentDocument"一、序言 4,\o"CurrentDocument"二、需求分析说明书 4-系统介绍 4系统面向的用户群体 4系统的功能性需求 4系统的非功能性需求 5用户界面需求 5软硬件环境需求 5软件质量需求 5\o"CurrentDocument"三、可行性分析报告 5,技术可行性 5人员可能性 5时间、设备可能性 5系统工作量 5代码工作量 5文档要求 5\o"CurrentDocument"四、开发环境与项目规划 5•开发环境 5项目规划与管理 5开发人员安排 5开发进度安排 6\o"CurrentDocument"五、软件界面设计标准与规 6•编写目的 6界面设计思想 6界面设计原则 6界面设计样式 6常见提示信息样式 6常见错误信息样式 7其他界面约定 7\o"CurrentDocument"六、软件编码设计标准与规 7对象命名约定 7常量和变量命名约定 8结构化编码约定 8数据源的约定 9数据库访问约定 9其他约定 9\o"CurrentDocument"七、数据库分析与设计 10数据库环境说明 10数据库命名标准与规 10数据库逻辑设计 10数据库物理设计 10表、视图汇总 10各表、视图设计详解 11\o"CurrentDocument"八、软件体系结构设计说明书 15系统概述 15设计约束 15设计策略 15系统概要设计说明书 16图例说明 16系统总体结构图 16销售子系统流程图 17进货子系统流程图 17退货子系统流程图 17系统详细设计说明书 17系统模块汇总 17系统核心模块详解 18系统模块详解 28\o"CurrentDocument"九、用户界面设计报告 42界面设计规 42系统窗体汇总 42主界面设计 43子界面设计 43界面资源设计 44\o"CurrentDocument"十、软件测试分析报告 44测试围与主要容 44测试方法 44测试报告 44改进建议与措施 45\o"CurrentDocument"十一、软件使用说明书 45软件概述 45系统安装 45使用说明 45系统登陆 45注销与退出 46办理进货登记 46办理退货登记 48销售图书 48会员管理 49员工管理 49书目检索 50查看统计信息 50修改密码 50关于/帮助 50参考资料 51一、序言宛枫书社图书管理系统的设计与推出是多方面原因促成的,我有一位老乡名叫明友,毕业后经营一家小书店:“考试通书店”,其日常管理工作都是人工操作,历史数据很难保存和利用,对于书店的经营非常不利。而其他的中小型书店、个体书店大多如此。针对这种状况,我计划开发一个面向中小型书店、个体书店的图书管理系统,实现对人员、物流的全面管理,以帮助这些书店早日实现书店管理信息化。正在我考虑系统的规划的时候,我有幸得到王改性老师的指导,我的两位同学:蔡大臣、航也加入了开发队伍,这更加坚定了我完成系统开发任务的决心。为了系统的顺利开发和维护,特编制如下技术文档:二、需求分析说明书系统介绍本系统定位于中小型书店、个体书店,暂时考虑单机环境下的实现;操作系统选择目前常用的Windows98/2000。系统性质为MIS(管理信息系统)或财务软件。本系统采用会员制管理,系统功能应包含进书管理、售书管理、退货管理、库存管理、统计分析、相关人员管理等。系统界面力求简洁、易用,在标准化的基础上考虑界面的美观和新颖。系统计划2003年3月初开始,4月初完成初步开发工作,其余工作根据时间安排进行。系统面向的用户群体系统面向中小型书店、个体书店,用户群体为这些书店的经理、采购员/仓库管理员、图书销售人员、书店的会员/游客等。2.3系统的功能性需求功能序号功能名称功能说明1供应商管理包含供应商信息的登记、修改等2图书种类管理包含图书大类、小类的创建3图书资料管理包含图书资料的添加、修改等4新书入库管理登记新书的来源、数量、单价、折扣、金额等5库存统计分门别类统计图书现有库存量、入库时间等6进货记录查询查询历次进货记录7退货登记登记供应商、图书种类、退货的数量、原因等8退货统计按供应商统计退货记录9退货记录查询查询历次退货记录10图书销售管理登记销售的种类、数量、单价、折扣、顾客/会员等11会员管理包含会员的创建、修改、删除等12优惠政策管理包含优惠政策的制定与执行13本日售书统计统计本日销售图书的数量、金额等14售书记录查询查询历次售书记录15员工管理包含员工的创建、修改、删除等16统计分析按年月日时段统计书店经营状况17图书检索提供按图书的编号、书名、责任者、等途径的检索18系统管理提供上级对下级的资料、密码管理,19个人资料、密码管理提供修改个人资料、密码的工具系统的非功能性需求用户界面需求简洁、易用、易懂,美观、大方、标准,具备一定的兼容性。软硬件环境需求软件环境:兼容当前主流操作系统 Windows95/98/NT/Me/2000/XP等。硬件环境:386以上计算机,打印机、扫描仪等。软件质量需求易用、健壮、兼容性好、运行稳定、有一定安全保障。三、可行性分析报告技术可行性系统的性质为MIS或财务软件,因而数据库的设计与操纵是系统设计的核心。 我在2002年11月至2003年3月曾经成功完成了“蓝色梦幻留言板” 的开发与维护任务,具备一定的系统分析与设计能力,熟悉数据库的设计与操纵;指导老师王改性多年从事数据库的教学与研究工作,因而该系统的实现在技术上是可行的。人员可能性我有“蓝色梦幻留言板”的开发经验,目前时间充足,可以完成开发任务。蔡大臣的计算机功底很深,可以参与系统的数据库设计与开发。航有深厚的文字功底,可以参与用户文档的制作、部文档整理、后期测试等任务。所有人员均可立即投入开发工作。时间、设备可能性系统设计与开发工作预计耗时一个月,所有参与开发的人员均能够保证按时完成任务。实验设备如:计算机、打印机、扫描仪等不足,上机任务可以完成,打印机、扫描仪的实验根据具体条件暂时延缓执行。系统工作量该系统的工作量相对于我们的开发小组来说很大,必须保证按进度完成任务。实际工作量预计超过一个月(每天4-8小时)。如包含软件维护及技术文档的整理、制作,工作量将更大。代码工作量预计需25天左右。
文档要求依据国家《计算机软件产品开发文件编制指南》和《现代软件工程》的理论与原则编制标准的软件技术文档。四、开发环境与项目规划开发环境前台开发环境:MicrosoftVisualBasic6.0后台数据库环境: MicrosoftAccess2000/2002项目规划与管理开发人员安排系统分析与设计:胡孟杰程序编制:胡孟杰数据库设计:胡孟杰、蔡大臣文档整理与制作:蔡大臣、航系统测试:胡孟杰、蔡大臣、航、考试通书店 (明友)等开发进度安排3月1日至3月5日:系统分析,进行需求定义,定义系统概况3月6日至3月7日:数据库分析与设计3月8日至3月9日:软件体系结构设计3月10日至3月31日:软件编码4月1日至4月2日:系统测试五、软件界面设计标准与规编写目的制定界面设计标准规的目的是为了规和统一软件界面设计制定软件界面设计标准与规。界面设计思想首先考虑标准化,在标准化的基础上进行界面的美工设计。界面设计原则简单易用、简洁明了、兼容性好、标准、规。界面设计样式采用标准Windows界面,自上至下依次为:标题栏、菜单栏、工具条、工作区、状态栏工具条等。如下图示: f 、工具条菜单栏
二亳川0礼图》管■至生力-口 剖诚*-I心序管鹿民工靠■林岛」 ,|_||t.X国麻闾靡叫属忌I岫孱舄健和匐'潮近节■]源于通丫之苴酬鹏'士息]t%io”丫口上降.Tm电弊T陋巾丫织骨,■■沼巴杼?伊汗空悯工.仁明4■后理三4Tl.OIt*葩"工十尾M节日耳。芭"手抚,■■沼巴杼?伊汗空悯工.仁明4■后理三4Tl.OIt*葩"工十尾M节日耳。芭"手抚栗乩言至员在:需£,ill析IT®^大.大.।工电二A二矍H也:「1白157日牌*^让玳牙r重领二官占出]、织JillJ-.I1BliilijXA」皿:.hklld.4Ail;El河做审考(力』需上第常见提示信息样式提示信息按以下标准进行:采用标准 Windows对话框样式,添加信息图标,后接提示信息文本和相应按钮。如下图示:图2.常见提示信息样式信息图标图2.常见提示信息样式信息图标常见错误信息样式错误信息依据提示信息样式设计,将信息图标更改为警告图标。提示文本如下图示:提示文本其他界面约定除主界面外,所有子界面均采用模式窗体,即该窗体不消失,不可以在本程序将焦点移出子窗体。六、软件编码设计标准与规6.1对象命名约定对象名对象类型命名约定(前缀码)Form窗体FrmCommand按钮CmdLabel标签LabTextBox文本框TxtComboBox组合框ComBListBox列表框LstBAdodb数据库访问对象Adodb
DataGrid数据表格显示组件DataGridFrame框架FamOption单选框OptCheckBox复选框ChkPictureBox图象显示组件PtBCommonDialog通用对话框组件ComDlgTimer时间组件TimToolBar工具栏TlBarMenu菜单MnuSSTab页框SSTabImageList界面资源组件ImgLst6.2常量和变量命名约定变量名数据类型变量类型含义UserShenFenString全局变量用户身份标志LogOKBoolean全局变量登陆状态UserNameString全局变量用户名GongYingShangIDString全局变量供应商编号GongYingShangString全局变量供应商名称TuShuBianHaoString全局变量图书编号DingJiaSingle全局变量图书定价ShuMingString全局变量书名HuiYuanKaHaoString全局变量会员卡号HYXingMingString全局变量会员HYDengJiString全局变量会员等级6.3结构化编码约定编码应清晰、可读性好,运用缩进、空行,结合大小写区别等方法保持程序结构良好。凡与数据库操作相关的模块一律加上容错代码,涉及多表操作的模块应运用“事务”处理,以保持数据完整性。编码风格参照下例进行:PublicSubCheckUser(userIDAsString,passwdAsString)DimuserDBAsDatabaseDimuserRDAsRecordsetDimdbNameAsStringDimSTRSQLAsStringScreen.MousePointer=11OnErrorGoToerrEnddbName=App.PathIfRight(dbName,1)<>" 、"ThendbName=dbName+"、"dbName=dbName+"DataBase、WFSSDataBase.mdb"STRSQL"select[用户身份]from[Admin]where[用户ID]="""&userID&"""and[用户密码产"""&passwd&""""'打开数据库SetuserDB=DBEngine.Workspaces(0).OpenDatabase(dbName,False,True)'检索用户,验证密码SetuserRD=userDB.OpenRecordset(STRSQL,dbOpenSnapshot)IfuserRD.RecordCount>0Then'设置用户身份UserShenFen=userRD![用户身份]'关闭数据库userRD.CloseSetuserRD=NothinguserDB.CloseSetuserDB=Nothing'进入用户环境LoadFrmMainFrmMain.ShowUnloadFrmLogInlogOK=TrueuserName=userIDScreen.MousePointer=vbDefaultElse'关闭数据库userRD.CloseSetuserRD=NothinguserDB.CloseSetuserDB=NothinglogOK=FalseScreen.MousePointer=vbDefault登陆失败"MsgBox"用户名或密码错误!请重新输入!",vbOKOnly+vbExclamation,登陆失败"EndIfExitSuberrEnd:Screen.MousePointer=vbDefaultMsgBoxErr.Description,vbOKOnly+vbExclamation," 登陆错误"logOK=FalseErr.Clear'关闭数据库userRD.CloseSetuserRD=NothinguserDB.CloseSetuserDB=NothingExitSubEndSub数据源的约定需用数据源的组件如: DataGrid一律采用Adodb控件。有特殊需求的情况如: 身份验证应引用DAO敷据访问对象)。数据库访问约定数据库引擎采用Microsoft.Jet.OLEDB.4.0,由Adodb组件进行数据库的访问,并为其他组件提供数据源。特殊情况、身份验证等由 DAO访问数据库。其他约定无需数据显示的情况由 DA或供数据库支持,有数据显示的情况由ADODB1件提供数据库支持。七、数据库分析与设计数据库环境说明考虑该系统的定位与现有技术力量 ,决定采用MicrosoftAccess2000/2002作为系统的后台数据库开发环境。数据库命名标准与规说明:下表所列为数据库及各表、视图的命名方法,具体信息请参阅 7.4.1表、视图汇名称类型命名办法约定WFSSDataBase系统数据库字母表基本表汉字或字母查询查询汉字字段字段汉字或字母7.3数据库逻辑设计
图4.数据库逻辑结构图7.4数据库物理设计表、视图汇总视图/表名类型说明Admin基本表集中保存系统用户的、密码Book基本表集中存放书目信息员工表基本表存放员工资料供应商基本表供应商资料会员表基本表会员资料会员政策基本表会员标准及优惠政策进书记录基本表进书历史记录客户反馈基本表客户反馈信息售书记录基本表售书历史记录书店简介基本表书店简介图书分类基本表图书类别图书进价表基本表图书进价列表退货记录基本表退货历史记录读者查询查询提供给所有用户的书目查询界面基本统计查询基本的统计分析进书查询查询进书记录查询,含进书统计售书查询查询图书销售记录查询售书统计查询图书销售记录统计退货查询查询退货记录查询退货统计查询退货统计员工信息查询员工信息查询库存统计查询现有库存统计反馈信息查询客户反馈信息查询各表、视图设计详解[说明]:空缺位置表示无要求,主键在约束栏注明。基本表:[Admin]字段类型长度格式约束 一用户ID文本250主键用户密码文本250用户身份文本250基本表:[Book]字段类型长度格式约束 一图书编号文本250主键图书分类号文本150书名文本255丛书文本150作者 [文本255文本255
版次文本150ISBN文本250定价货币库存量数字(整型)容简介备注关键词文本255出版日期文本150入库时间日期/时间长日期Now()基本表:[供应商]字段类型长度格式约束供应商编号文本250主键供应商文本255地址文本255网址文本255联系人文本255文本50传真文本150电子文本150单位简介备注基本表:[会员表]字段类型长度格式约束会员卡号文本50主键会员等级文本50文本150性别文本50地址文本250单位文本250文本50电子文本150人生格言备注注册日期日期/时间长日期基本表:[会员政策]字段类型长度格式约束会员级别文本50主键会员标准数字(整型)打折文本50赠送礼品文本250备注备注基本表:[进书记录]字段类型长度格式约束 -ID自动编号(长整型)主键供应商编号文本250图书编号文本250
数量数字(长整型)单价货币折扣数字(单精度型)金额货币进书日期日期/时间长日期备注备注基本表:[客户反馈]字段类型长度格式约束ID自动编号(长整型)主键文本150身份文本50性别文本50单位文本255地址文本255电子文本150反馈信息备注反馈日期日期/时间长日期基本表:[售书记录]字段类型长度格式约束ID自动编号(长整型)主键图书编号文本250数量数字(整型)会员卡号文本250实际打折数字(单精度型)实收金额货币日期文本50长日期备注备注基本表:[书店简介]字段类型长度格式约束书店名称文本255主键地址文本255网址文本255联系人 ]文本150文本50手机数字(长整型)电子文本150书店简介备注备注备注基本表:[图书分类]字段类型长度格式约束 -图书分类号文本150主键图书分类文本250所属父类编号文本150
基本表:[图书进价表]字段类型长度格式约束图书编号文本150主键进价货币进书日期日期/时间长日期基本表:[退货记录]字段类型长度格式约束ID自动编号(长整型)主键供应商编号文本250图书编号文本250进价:货币退货数量数字(整型)金额货币退货原因备注退货日期日期/时间长日期备注备注基本表:[员工表]字段类型长度格式约束员工文本250主键文本150性别文本50地址文本255文本50手机文本150电子文本150人生格言备注创建日期日期/时间长日期Now()9也易渣同M会导干事旃忤靳穿衣9也易渣同M会导干事旃忤靳穿衣至氨BH图5.基本统计视图结构视图:[读者查询]视图:[退货统计]视图:[售书统计]视图:[售书查询]GTHf-ns图6.读者查询视图结构建有曲蝉种有睢瞥供㈣*叱网壮联象人电招借其市科峥军一节什IlF^R酢舒丹斗二小丛明传青出或社侬视图:[退货统计]视图:[售书统计]视图:[售书查询]GTHf-ns图6.读者查询视图结构建有曲蝉种有睢瞥供㈣*叱网壮联象人电招借其市科峥军一节什IlF^R酢舒丹斗二小丛明传青出或社侬UkN耳府flrrfi内雪僵市xnn壮斯日朋人辛通同图7.退货统计视图结构合!3卡哥富白g鼾F好箜忻岸二q环F/料8.售书统计视图结构国网胃34^H■行量何名言r二步同日萨日期.--JUfln-EF=制世|1南ftm姓tt地单用u-ft力M图9.售书查询视图结构注:其他视图结构:[略]。八、软件体系结构设计说明书系统概述
在单机环境下进行系统安全的考虑,有必要进行用户权限的划分与控制,因而系统在总体上应包含安全子系统之下的各类用户工作环境。 用户权限的合理划分与有效控制是本系统体系结构设计的核心。设计约束系统将实现人员、物流的全面管理,而物流管理是系统的核心部件,怎样实现二者的共存,互不干扰,是本系统设计的难点。本系统必须实现对用户权限的有效合理控制。设计策略由于所有的物流都需要有人员的活动才能够发生,因此,我决定采用一种“人员活动带动物流”的策略来解决人员管理与物流管理的统一管理问题。这个想法是模拟现实而来的,比如说,只有采购人员进行了“采购”或“进书”活动,才会引起“入库登记”或“新书入库”这个物流。系统概要设计说明书图例说明.处理过程: 、寸产~精包过程、模块.数据存储:.条件判断:.数据流:(单向).数据流:(双向).外部实体::数据表-8.4.2系统总体结构图.带有变动历史的数据存储::数据表-8.4.2系统总体结构图图10.系统总体结构图销售子系统流程图图11.销售子系统流程图进货子系统流程图供应商*选择供应商4*供应商登记修改资料■:供应商供应商添加类别添加品种修改资料入库登记(Book图书进价表图10.系统总体结构图销售子系统流程图图11.销售子系统流程图进货子系统流程图供应商*选择供应商4*供应商登记修改资料■:供应商供应商添加类别添加品种修改资料入库登记(Book图书进价表图12.进货子系统流程图8.4.5退货子系统流程图8.5系统详细设计说明书8.5.1系统模块汇总模块名类型原型或声明模块说明CheckUser子程序PublicSubCheckUser(userIDAsString,passwdAsString)用户、密码验证和身份鉴别LogOff子程序PublicSubLogOff()注销模块Sys_exit子程序PublicSubSys_exit()系统退出摸块Form_Load子程序PrivateSubForm_Load()初始化模块,连接数据库GetHYDaZhe函数PublicFunctionGetHYDaZhe(bianHaoAsString)AsString提取会员政策的会员优惠办法GetKuCun函数PublicFunctionGetKuCun(bianHaoAsString)AsString获取、检验图书现有库存量HYShengJi函数PublicFunctionHYShengJi(HYKaHaoAsString)AsBoolean会员升级维护CmdSellBook_Click子程序PrivateSubCmdSellBook_Click()图书销售模块checkGYSID函数PublicFunctioncheckGYSID(UIDAsString)AsBoolean检验数据表主键,避免插入错误checkFenLei函数PublicFunctioncheckFenLei(UIDAsString)AsBoolean检测图书分类是否已经存在CmdNewFenLei_Click子程序PrivateSubCmdNewFenLei_Click()创建类别checkUserID函数PublicFunctioncheckUserID(UIDAsString)AsBoolean检测用户是否存在CmdChgPass_Click子程序PrivateSubCmdChgPass_Click()修改密码CmdRegMe_Click子程序PrivateSubCmdRegMe_Click()创建员工、会员GetJinJia函数PublicFunctionGetJinJia(bianHaoAsString)AsString提取图书进价CmdTH_Click子程序PrivateSubCmdTH_Click()退货模块CmdSaveContinue_Click子程序PrivateSubCmdSaveContinue_Click()供应商信息登记注:其他模块(略)8.5.2系统核心模块详解全局变量定义:‘用户身份标志PublicUserShenFenAsString'登陆状态PubliclogOKAsBoolean'用户名PublicuserNameAsString'供应商编号PublicGongYingShangIDAsString'供应商PublicGongYingShangAsString'图书编号PublicTuShuBianHaoAsString'定价PublicDingJiaAsString'书名PublicShuMingAsString'会员卡号PublicHuiYuanKaHaoAsString'会员PublicHYXingMingAsString'会员等级PublicHYDengJiAsString模块名:CheckUser原型:PublicSubCheckUser(userIDAsString,passwdAsString)代码:PublicSubCheckUser(userIDAsString,passwdAsString)DimuserDBAsDatabaseDimuserRDAsRecordsetDimdbNameAsStringDimSTRSQLAsStringScreen.MousePointer=11OnErrorGoToerrEnddbName=App.PathIfRight(dbName,1)<>"\"ThendbName=dbName+"\"dbName=dbName+"DataBase\WFSSDataBase.mdb"STRSQL="select[用户身份]from[Admin]where[用户ID]="""&userID&"""and[用户密码]="""&passwd&""""'打开数据库SetuserDB=DBEngine.Workspaces(0).OpenDatabase(dbName,False,True)'检索用户,验证密码SetuserRD=userDB.OpenRecordset(STRSQL,dbOpenSnapshot)IfuserRD.RecordCount>0Then'设置用户身份UserShenFen=userRD![用户身份]'关闭数据库userRD.CloseSetuserRD=NothinguserDB.CloseSetuserDB=Nothing'进入用户环境LoadFrmMainFrmMain.ShowUnloadFrmLogInlogOK=TrueuserName=userIDScreen.MousePointer=vbDefaultElse'关闭数据库userRD.CloseSetuserRD=NothinguserDB.CloseSetuserDB=NothinglogOK=FalseScreen.MousePointer=vbDefaultMsgBox"用户名或密码错误!请重新输入!",vbOKOnly+vbExclamation,"登陆失败"EndIfExitSuberrEnd:Screen.MousePointer=vbDefaultMsgBoxErr.Description,vbOKOnly+vbExclamation," 登陆错误"logOK=FalseErr.Clear'关闭数据库userRD.CloseSetuserRD=NothinguserDB.CloseSetuserDB=NothingExitSubEndSub模块名:LogOff模块原型:PublicSubLogOff()代码:PublicSubLogOff()DimretValAsIntegerretVal=MsgBox("你确定要注销吗?",vbOKCancel+vbQuestion,"注销当前用户")IfretVal=vbCancelThenExitSubLoadFrmLogInFrmLogIn.ShowIfUserShenFen="经理"ThenUnloadFrmAdminMainElseIfUserShenFen="仓库管理员"ThenUnloadFrmCangGuanMainElseIfUserShenFen="售书员"ThenUnloadFrmBookSellerMainElseIfUserShenFen="会员"ThenUnloadFrmMemberMainElseUnloadFrmGuestMainEndIfUnloadFrmMainUserShenFen=""logOK=FalseEndSub模块名: Sys_exit模块原型:PublicSubSys_exit()代码:PublicSubSys_exit()DimretValAsIntegerretVal=MsgBox("你确定要退出吗?",vbOKCancel+vbQuestion,"退出系统")IfretVal=vbCancelThenExitSubIfUserShenFen="经理"ThenUnloadFrmAdminMainElseIfUserShenFen="仓库管理员"ThenUnloadFrmCangGuanMainElseIfUserShenFen="售书员"ThenUnloadFrmBookSellerMainElseIfUserShenFen="会员"ThenUnloadFrmMemberMainElseUnloadFrmGuestMainAdodc1.CommandTypeAdodc1.CommandType=adCmdTextEndIfUnloadFrmMainEndEndSub模块名: Form_Load模块原型:PrivateSubForm_Load()代码:PrivateSubForm_Load()DimdbNameAsStringDimconnSTRAsStringOnErrorGoToerrEndChDirApp.PathdbName=App.PathIfRight(dbName,1)<>"\"ThendbName=dbName+"\"dbName=dbName+"DataBase\WFSSDataBase.mdb"connSTR="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&dbName&";PersistSecurityInfo=False"Adodc1.ConnectionString=connSTRExitSuberrEnd:MsgBox"连接数据库失败 !",vbOKOnly+vbExclamation,"打开数据库出错 "EndEndSub模块名:GetHYDaZhe模块原型:PublicFunctionGetHYDaZhe(bianHaoAsString)AsString代码:PublicFunctionGetHYDaZhe(bianHaoAsString)AsStringOnErrorGoToerrEndIfbianHao=" ☆☆☆☆☆ "ThenGetHYDaZhe="1"ExitFunctionEndIfAdodc1.RecordSource="select[Adodc1.Refresh打折]from[会员政策]where[Adodc1.RecordSource="select[Adodc1.RefreshIfAdodc1.Recordset.RecordCount>0ThenAdodc1.Recordset.MoveFirstGetHYDaZhe=Adodc1.Recordset!打折ElseMsgBox"会员政策数据丢失 ,请与经理联系!",vbOKOnly+vbExclamation,"检索错误"GetHYDaZhe="1"EndIfExitFunctionerrEnd:MsgBox"检索数据库出错!",vbOKOnly+vbExclamation,"检索错误"GetDingJia="未知"EndFunction模块名: GetKuCun模块原型:PublicFunctionGetKuCun(bianHaoAsString)AsString代码:PublicFunctionGetKuCun(bianHaoAsString)AsStringOnErrorGoToerrEndAdodc1.CommandType=adCmdTextAdodc1.RecordSource="select[库存量]from[Book]where[图书编号]="""&bianHao&""""Adodc1.RefreshIfAdodc1.Recordset.RecordCount>0ThenAdodc1.Recordset.MoveFirstGetKuCun=Adodc1.Recordset!库存量ElseMsgBox"图书资料数据丢失 ,请与经理联系!",vbOKOnly+vbExclamation,"检索错误"GetKuCun="0"EndIfExitFunctionerrEnd:MsgBox"检索数据库出错!",vbOKOnly+vbExclamation,"检索错误"GetDingJia="未知"EndFunction模块名: HYShengJi模块原型:PublicFunctionHYShengJi(HYKaHaoAsString)AsBoolean代码:Adodc1.Recordset.MoveFirstAdodc1.Recordset.MoveFirstPublicFunctionHYShengJi(HYKaHaoAsString)AsBooleanOnErrorGoToerrEndDimBiaoZhunAsIntegerDimSUMBookAsIntegerIfHYKaHao="Guest"ThenHYShengJi=FalseExitFunctionEndIfBeginTransAdodc1.CommandType=adCmdTextAdodc1.RecordSource="selectsum([实收金额])as[总金额]from[售书记录]where[会员卡号]="""&HYKaHao&""""Adodc1.RefreshIfAdodc1.Recordset.RecordCount>0ThenAdodc1.Recordset.MoveFirstSUMBook=CInt(Adodc1.Recordset!总金额)ElseSUMBook=0EndIfAdodc1.CommandType=adCmdTextAdodc1.RecordSource="select[会员标准]from[会员政策]where[会员级别]='★☆☆☆☆ '"Adodc1.RefreshAdodc1.Recordset.MoveFirstBiaoZhun=CInt(Adodc1.Recordset!会员标准)IfSUMBook>=BiaoZhunThenAdodc1.CommandType=adCmdTextAdodc1.RecordSource="select*from[ 会员表]where[会员卡号]="""&HYKaHao&""""Adodc1.RefreshIfAdodc1.Recordset.RecordCount>0ThenAdodc1.Recordset.MoveFirstAdodc1.Recordset!会员等级="★☆☆☆☆ "Adodc1.Recordset.UpdateEndIfEndIfAdodc1.CommandType=adCmdTextAdodc1.RecordSource="select[会员标准]from[会员政策]where[会员级别]='★★☆☆☆ '"Adodc1.RefreshBiaoZhun=CInt(Adodc1.Recordset!会员标准)IfSUMBook>=BiaoZhunThenAdodc1.CommandType=adCmdTextAdodc1.RecordSource="select*from[ 会员表]where[会员卡号]="""&HYKaHao&""""Adodc1.RefreshIfAdodc1.Recordset.RecordCount>0ThenAdodc1.Recordset.MoveFirstAdodc1.Recordset!会员等级="★★☆☆☆ "Adodc1.Recordset.UpdateEndIfEndIfAdodc1.CommandType=adCmdTextAdodc1.RecordSource="select[会员标准]from[会员政策]where[会员级别]='★★★☆☆ '"Adodc1.RefreshAdodc1.Recordset.MoveFirstBiaoZhun=CInt(Adodc1.Recordset!会员标准)IfSUMBook>=BiaoZhunThenAdodc1.CommandType=adCmdTextAdodc1.RecordSource="select*from[ 会员表]where[会员卡号]="""&HYKaHao&""""Adodc1.RefreshIfAdodc1.Recordset.RecordCount>0ThenAdodc1.Recordset.MoveFirstAdodc1.Recordset!会员等级="★★★☆☆ "Adodc1.Recordset.UpdateEndIfEndIfAdodc1.CommandType=adCmdTextAdodc1.RecordSource="select[会员标准]from[会员政策]where[会员级别]='★★★★☆ '"Adodc1.RefreshAdodc1.Recordset.MoveFirstBiaoZhun=CInt(Adodc1.Recordset!会员标准)IfSUMBook>=BiaoZhunThenAdodc1.CommandType=adCmdTextAdodc1.RecordSource="select*from[ 会员表]where[会员卡号]="""&HYKaHao&""""Adodc1.RefreshIfAdodc1.Recordset.RecordCount>0ThenAdodc1.Recordset.MoveFirstAdodc1.Recordset!会员等级="★★★★☆ "Adodc1.Recordset.UpdateEndIfEndIfAdodc1.CommandType=adCmdTextAdodc1.RecordSource="select[会员标准]from[会员政策]where[会员级别]='★★★★★ '"Adodc1.RefreshAdodc1.Recordset.MoveFirstBiaoZhun=CInt(Adodc1.Recordset!会员标准)IfSUMBook>=BiaoZhunThenAdodc1.CommandType=adCmdTextAdodc1.RecordSource="select*from[ 会员表]where[会员卡号]="""&HYKaHao&""""Adodc1.RefreshIfAdodc1.Recordset.RecordCount>0ThenAdodc1.Recordset.MoveFirstAdodc1.Recordset!会员等级="★★★★★ "Adodc1.Recordset.UpdateEndIfEndIfCommitTransHYShengJi=FalseExitFunctionerrEnd:RollbackHYShengJi=TrueScreen.MousePointer=vbDefaultMsgBox"检查会员是否应升级时操作失败!",vbOKOnly+vbExclamation,"图书销售"CmdOK.Enabled=TrueEndFunction模块名:CmdSellBook_Click模块原型:PrivateSubCmdSellBook_Click()代码:PrivateSubCmdSellBook_Click()OnErrorGoToerrEndDimQDAsIntegerCmdSellBook.Enabled=FalseIfTxtShuLiang.Text=""ThenMsgBox"请输入交易的数量!",vbOKOnly+vbExclamation,"填写数量"TxtShuLiang.SetFocusAdodc1.Recordset.AddNewAdodc1.Recordset.AddNewCmdSellBook.Enabled=TrueExitSubEndIfIfGetKuCun(TuShuBianHao)<=0OrGetKuCun(TuShuBianHao)<TxtShuLiang.TextThenMsgBox"该类图书库存量不足,请与仓库管理员联系!",vbOKOnly+vbExclamation,"库存不足"TxtShuLiang.SetFocusCmdSellBook.Enabled=TrueExitSubEndIfIfTxtZheKou.Text=""ThenMsgBox"请输入交易的实际折扣率!",vbOKOnly+vbExclamation,"填写折扣"TxtZheKou.SetFocusCmdSellBook.Enabled=TrueExitSubEndIfIfTxtZheKou.Text<=0OrTxtZheKou.Text>1ThenMsgBox"实际折扣率填写错误!请在0与1之间选择.",vbOKOnly+vbExclamation,"填写折扣"TxtZheKou.SetFocusCmdSellBook.Enabled=TrueExitSubEndIfIfTxtSJJinE.Text=""ThenMsgBox"请输入交易的实际金额!",vbOKOnly+vbExclamation,"填写金额"TxtSJJinE.SetFocusCmdSellBook.Enabled=TrueExitSubEndIfIfTxtMemo.Text=""ThenTxtMemo.Text="无"QD=MsgBox("确定入帐吗 ?",vbOKCancel+vbQuestion,"确认入帐")IfQD=vbCancelThenCmdSellBook.Enabled=TrueExitSubEndIf'售书入帐Screen.MousePointer=11BeginTransAdodc1.CommandType=adCmdTableAdodc1.RecordSource="售书记录"Adodc1.RefreshAdodc1.Recordset!图书编号Adodc1.Recordset!图书编号=TuShuBianHaoAdodc1.Recordset!数量=TxtShuLiang.TextAdodc1.Recordset!会员卡号Adodc1.Recordset!会员卡号=HuiYuanKaHaoAdodc1.Recordset!实际打折 =TxtZheKou.TextAdodc1.Recordset!实收金额 =TxtSJJinE.TextAdodc1.Recordset!日期=Year(Now)&"-"&Month(Now)&"-"&Day(Now)&Adodc1.Recordset!备注=TxtMemo.TextAdodc1.Recordset.UpdateAdodc1.CommandType=adCmdTextAdodc1.RecordSource="select*from[Book]where[图书编号]="""&TuShuBianHao&""""Adodc1.RefreshIfAdodc1.Recordset.RecordCount>0ThenAdodc1.Recordset.MoveFirstAdodc1.Recordset!库存量=Adodc1.Recordset!库存量-TxtShuLiang.TextAdodc1.Recordset.UpdateElseRollbackScreen.MousePointer=vbDefaultMsgBox"图书资料丢失,请与仓库管理员联系!",vbOKOnly+vbExclamation,"交易失败"CmdSellBook.Enabled=TrueExitSubEndIfIfHYShengJi(HuiYuanKaHao)ThenRollbackCommitTransScreen.MousePointer=vbDefaultMsgBox"恭喜您,交易成功!",vbOKOnly+vbInformation,"交易成功"UnloadMeExitSuberrEnd:RollbackScreen.MousePointer=vbDefaultMsgBoxErr.Description,vbOKOnly+vbExclamation," 操作数据库出错交易失败CmdSellBook.Enabled=TrueEndSub8.5.3系统模块详解模块名:checkGYSID模块原型:PublicFunctioncheckGYSID(UIDAsString)AsBoolean代码:PublicFunctioncheckGYSID(UIDAsString)AsBooleanDimuserDBAsDatabaseDimuserRDAsRecordsetDimdbNameAsStringDimSTRSQLAsStringScreen.MousePointer=11OnErrorGoToerrEnddbName=App.PathIfRight(dbName,1)<>"\"ThendbName=dbName+"\"dbName=dbName+"DataBase\WFSSDataBase.mdb"STRSQL="select[图书分类]from[图书分类]where[图书分类号]="""&UID&""""'打开数据库SetuserDB=DBEngine.Workspaces(0).OpenDatabase(dbName,False,True)'检索用户,验证密码SetuserRD=userDB.OpenRecordset(STRSQL,dbOpenSnapshot)IfuserRD.RecordCount>0Then'关闭数据库userRD.CloseSetuserRD=NothinguserDB.CloseSetuserDB=NothingcheckGYSID=TrueScreen.MousePointer=vbDefaultElse'关闭数据库userRD.CloseSetuserRD=NothinguserDB.CloseSetuserDB=NothingScreen.MousePointer=vbDefaultcheckGYSID=FalseEndIfExitFunctionerrEnd:Screen.MousePointer=vbDefault创建类别 "MsgBoxErr.Description,vbOKOnly+创建类别 "Err.Clear'关闭数据库userRD.CloseSetuserRD=NothinguserDB.CloseSetuserDB=NothingEndFunction模块名:checkFenLei模块原型:PublicFunctioncheckFenLei(UIDAsString)AsBoolean代码:PublicFunctioncheckFenLei(UIDAsString)AsBooleanDimuserDBAsDatabaseDimuserRDAsRecordsetDimdbNameAsStringDimSTRSQLAsStringScreen.MousePointer=11OnErrorGoToerrEnddbName=App.PathIfRight(dbName,1)<>"\"ThendbName=dbName+"\"dbName=dbName+"DataBase\WFSSDataBase.mdb"STRSQL="select[图书分类]from[图书分类]where[图书分类]="""&UID&""""'打开数据库SetuserDB=DBEngine.Workspaces(0).OpenDatabase(dbName,False,True)'检索用户,验证密码SetuserRD=userDB.OpenRecordset(STRSQL,dbOpenSnapshot)IfuserRD.RecordCount>0Then'关闭数据库userRD.CloseSetuserRD=NothinguserDB.CloseSetuserDB=NothingcheckFenLei=TrueScreen.MousePointer=vbDefaultElse关闭数据库userRD.CloseSetuserRD=NothinguserDB.CloseSetuserDB=NothingScreen.MousePointer=vbDefaultcheckFenLei=FalseEndIfExitFunctionerrEnd:Screen.MousePointer=vbDefaultMsgBoxErr.Description,vbOKOnly+vbExclamation," 创建类别 "Err.Clear'关闭数据库userRD.CloseSetuserRD=NothinguserDB.CloseSetuserDB=NothingEndFunction模块名:CmdNewFenLei_Click模块原型:PrivateSubCmdNewFenLei_Click()代码:PrivateSubCmdNewFenLei_Click()OnErrorGoToerrEndIfTxtBianHao.Text=""ThenMsgBox"请填写图书分类号!",vbOKOnly+vbExclamation,"创建分类"TxtBianHao.SetFocusExitSubEndIfIfTxtLeiBie.Text=""ThenMsgBox"请填写图书分类名称!",vbOKOnly+vbExclamation,"创建分类 "TxtLeiBie.SetFocusExitSubEndIfIfcheckFenLei(TxtLeiBie.Text)ThenMsgBox"图书分类名称不唯一,请另选一个!",vbOKOnly+vbExclamation,"创建分类 "TxtLeiBie.SetFocusTxtLeiBie.SelStart=0TxtLeiBie.SelLength=Len(TxtLeiBie.Text)ExitSubEndIf选择父类"ThenIfComboFuLei.Text<>""选择父类"ThenEndSubEndSubIfNotcheckFenLei(ComboFuLei.Text)ThenMsgBox"所选父类不存在!请重试!",vbOKOnly+vbExclamation,"选择父类"ComboFuLei.SetFocusExitSubEndIfAdodc1.CommandType=adCmdTextAdodc1.RecordSource="select[图书分类号 ]from[图书分类]where[图书分类号]=[所属父类编号]and[图书分类]="""&ComboFuLei.Text&""""Adodc1.RefreshAdodc1.Recordset.MoveFirstFuLeiBianHao=Adodc1.Recordset!图书分类号EndIfIfcheckGYSID(TxtBianHao.Text)ThenMsgBox"图书分类编号不唯一,请另选一个!",vbOKOnly+vbExclamation,"创建分类 "TxtBianHao.SetFocusTxtBianHao.SelStart=0TxtBianHao.SelLength=Len(TxtBianHao.Text)ExitSubEndIfIfFuLeiBianHao=""ThenFuLeiBianHao=TxtBianHao.TextAdodc1.CommandType=adCmdTableAdodc1.RecordSource="图书分类"Adodc1.RefreshAdodc1.Recordset.AddNewAdodc1.Recordset!图书分类号=TxtBianHao.TextAdodc1.Recordset!图书分类=TxtLeiBie.TextAdodc1.Recordset!所属父类编号=FuLeiBianHaoAdodc1.Recordset.UpdateMsgBox"创建分类成功!",vbOKOnly+vbInformation,"创建分类"TxtBianHao.Text=""TxtLeiBie.Text=""ComboFuLei.Text="选择父类"FuLeiBianHao=""TxtFuLei.Text=""TxtBianHao.SetFocusExitSuberrEnd:数据库出错 "MsgBox"更新数据库失败 !",vbOKOnly+数据库出错 "Adodc1.CommandTypeAdodc1.CommandType=adCmdText模块名:checkUserID模块原型:PublicFunctioncheckUserID(UIDAsString)AsBoolean代码:PublicFunctioncheckUserID(UIDAsString)AsBooleanDimuserDBAsDatabaseDimuserRDAsRecordsetDimdbNameAsStringDimSTRSQLAsStringScreen.MousePointer=11OnErrorGoToerrEnddbName=App.PathIfRight(dbName,1)<>"\"ThendbName=dbName+"\"dbName=dbName+"DataBase\WFSSDataBase.mdb"STRSQL="select[用户身份]from[Admin]where[用户ID]="""&UID&""""'打开数据库SetuserDB=DBEngine.Workspaces(0).OpenDatabase(dbName,False,True)'检索用户,验证密码SetuserRD=userDB.OpenRecordset(STRSQL,dbOpenSnapshot)IfuserRD.RecordCount>0Then'关闭数据库userRD.CloseSetuserRD=NothinguserDB.CloseSetuserDB=NothingcheckUserID=TrueScreen.MousePointer=vbDefaultElse'关闭数据库userRD.CloseSetuserRD=NothinguserDB.CloseSetuserDB=NothingScreen.MousePointer=vbDefaultcheckUserID=FalseEndIfExitFunctionerrEnd:Screen.MousePointer=vbDefaultMsgBoxErr.Description,vbOKOnly+vbExclamation," 修改密码"Err.Clear'关闭数据库userRD.CloseSetuserRD=NothinguserDB.CloseSetuserDB=NothingEndFunction模块名:CmdChgPass_Click模块原型:PrivateSubCmdChgPass_Click()代码:PrivateSubCmdChgPass_Click()OnErrorGoToerrEndIfTxtUserID.Text=""ThenMsgBox"请输入你的!",vbOKOnly+vbExclamation,"更改密码"TxtUserID.SetFocusExitSubEndIfIfTxtPasswd.Text=""ThenMsgBox"请输入你的旧密码!",vbOKOnly+vbExclamation,"更改密码"TxtPasswd.SetFocusExitSubEndIfIfTxtNewPasswd.Text=""ThenMsgBox"请输入你的新密码!",vbOKOnly+vbExclamation,"更改密码"TxtNewPasswd.SetFocusExitSubEndIfIfTxtNewPasswd.Text<>TxtNewPasswdC.TextThenMsgBox"密码输入不一致,请重试!",vbOKOnly+vbExclamation,"更改密码"TxtPasswd.Text=""TxtNewPasswd.Text=""TxtNewPasswdC.Text=""TxtPasswd.SetFocusExitSubEndIfIfcheckUserID(TxtUserID.Text)ThenEndIfEndIfAdodc1.RecordSource="selectAdodc1.RecordSource="select*from[Admin]where[用户密码]="""&TxtPasswd.Text&"""and[用户ID]="""&TxtUserID.Text&""""Adodc1.RefreshIfAdodc1.Recordset.RecordCount>0ThenAdodc1.Recordset.MoveFirstAdodc1.Recordset!用户密码=TxtNewPasswd.TextAdodc1.Recordset.UpdateElse密码错误"MsgBox"用户密码验证错误!你无权修改密码!",vbOKOnly+vbExclamation,密码错误"TxtPasswd.Text=""TxtNewPasswd.Text=""TxtNewPasswdC.Text=""ExitSubEndIfMsgBox"用户密码修改成功!请牢记!",vbOKOnly+vbInformation,"更改密码"TxtPasswd.Text=""TxtNewPasswd.Text=""TxtNewPasswdC.Text=""ElseMsgBox"该用户不存在!无法修改密码!",vbOKOnly+vbExclamation,"更改密码TxtPasswd.Text=""TxtNewPasswd.Text=""TxtNewPasswdC.Text=""EndIfExitSuberrEnd:操作数MsgBoxErr.Description&vbCrLf&" 更改密码失败!",vbOKOnly+vbExclamation,操作数据库出错 "EndSub模块名: Cm
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吉首大学《高层建筑结构设计》2021-2022学年第一学期期末试卷
- 吉首大学《曲式与作品分析1》2021-2022学年第一学期期末试卷
- 吉林艺术学院《数字虚拟化制作》2021-2022学年第一学期期末试卷
- 车辆赔偿协议书范文文并茂
- 2024年大型烟酒店转让合同范本
- 自来水抢修劳务协议书范文模板
- 2022年辽宁省公务员录用考试《行测》真题及答案解析
- 2014河南中考道德与法治真题及答案
- 环保项目立项管理流程
- 2024个人汽车转让合同范本
- 第七单元 人民解放战争 课件 2024-2025学年部编版八年级历史上学期
- 福建省厦门市2024-2025学年上学期七年级数学期中考模拟卷
- 2023年浙江出版联团招聘考试真题
- 期中测试卷(试题)-2024-2025学年六年级上册数学苏教版
- 社群健康助理员职业技能鉴定考试题库(含答案)
- 2024年全国《劳动教育》基础知识考试题库与答案
- 人力资源规划
- 幼儿园中班社会《节约用纸》课件
- 2024-2030年中国台球的行业市场发展趋势与前景展望战略分析报告
- 仪器设备借用管理制度
- 电池制造过程中的成本控制与降低考核试卷
评论
0/150
提交评论