首页 毕业设计(论文)-VB超市管理系统

毕业设计(论文)-VB超市管理系统

举报
开通vip

毕业设计(论文)-VB超市管理系统毕业设计(论文)-VB超市管理系统 山东科技大学泰山科技学院毕业设计(论文)说明书 摘要 本系统是实现一个超市运营管理管理的超市POS管理系统,本系统分为前台收银系统和后台管理系统两部分,分做两个项目开发。 前台主要实现商品销售功能,在输入商品条码后自动从数据库中获取商品相关信息,完成销售后,自动将商品销售信息保存到系统数据库中。后台管理系统主要实现用户管理、商品管理、库存管理、销售统计等功能。本系统采用Visual Basic 6.0中文版和 MS SQL 2000数据库作为平台进行开发。 利用本系统,...

毕业设计(论文)-VB超市管理系统
毕业设计(论文)-VB超市管理系统 山东科技大学泰山科技学院毕业设计(论文)说明书 摘要 本系统是实现一个超市运营管理管理的超市POS管理系统,本系统分为前台收银系统和后台管理系统两部分,分做两个项目开发。 前台主要实现商品销售功能,在输入商品条码后自动从数据库中获取商品相关信息,完成销售后,自动将商品销售信息保存到系统数据库中。后台管理系统主要实现用户管理、商品管理、库存管理、销售统计等功能。本系统采用Visual Basic 6.0中文版和 MS SQL 2000数据库作为平台进行开发。 利用本系统,中小型超市可以实现商品的收银管理,库存管理,销售统计等功能,可以提高顾客的满意度,节约人力物力,提高工作效率。 关键字:POS管理系统;收银系统;销售功能;SQL I 目录 目 录 摘要 ........................................................................................................................................ I 1.绪论 ..................................................................................................................................... 1 1.1. 课题的目的及意义 .................................................................................................. 1 1.2. 国内外文献综述 ...................................................................................................... 2 2系统分析 .............................................................................................................................. 3 2.1需求分析 ....................................................................................................................... 3 2.2 开发环境 ................................................................................................................. 4 2.3可行性分析 ................................................................................................................... 5 2.4 结论 ............................................................................................................................. 6 3.系统概要设计 ...................................................................................................................... 7 3.1系统总体设计 ................................................................................................................ 8 3.2数据库设计 ................................................................................................................... 9 4.系统详细设计 .................................................................................................................... 13 4.1前台收银系统 ............................................................................................................. 13 4.2后台管理系统设计...................................................................................................... 17 5.系统实现与测试 ................................................................................................................. 27 II 山东科技大学泰山科技学院毕业设计(论文)说明书 5.1前台收银程序测试 ..................................................................................................... 27 5.2后台管理系统测试 ..................................................................................................... 27 5.3系统整体测试 ............................................................................................................. 30 6.结束语 ............................................................................................................................... 31 参考文献............................................................................................................................... 32 致 谢 .................................................................................................................................... 33 附 录 .................................................................................................................................... 34 A. 主要源程序清单 ....................................................................................................... 34 B. 用户MATCH_ word word文档格式规范word作业纸小票打印word模板word简历模板免费word简历 _1717287036648_1 ................................................................................................................... 57 III 山东科技大学泰山科技学院毕业设计(论文)说明书 1.绪论 随着计算机技术的高速发展,人们对计算机的依赖性越来越强,特别是用计算机开发的数据库以及数据管理系统在生活应用中表现得更为突出。 使用计算机对商品的销售进行管理,具有检索迅速、查找方便、可靠性高、存储量大、保密性好等优点,这些优点能够极大的提高商品销售的效率,也是企业科学化、正规化管理的重要条件。因此,开发这样一套超市POS管理系统,通过使用超市POS管理系统,使超市店的管理工作系统化、规范化、自动化、简易化、智能化,从而达到提高超市进销存管理效率的目的。 1.1. 课题的目的及意义 1.1.1. 课题研究目的 随着现代科学技术的迅猛发展,计算机技术已经渗透到各个领域,成为各行业必不可少的工具,特别是Internet技术的推广和信息高速公路的建立,使IT产业在市场竞争中越发显示出其独特的优势,步入信息化时代,有巨大的数据信息等待加工处理和传输,这使得对数据库的进一步开发和利用显得尤为迫切。 超市形态具有很多优点,但在目前状况下,它仍存在零售企业所固有的落后的一面,如:不能有效地管理每种商品,收款结算速度慢,容易出现营业差错,不宜进行商品调价,盘点效率低等,而且在超市日常管理中,商品的进、销、存等决策以经验为主,缺乏实时分析功能,管理人员对及 1 绪论 时传递资料的要求始终得不到满足。随着超市形态的高速发展,其经营管理也变得愈加复杂,日常所需要处理的数据量也逐渐扩大,商业运转的中间环节也越来越多,原始的人工管理已无法应对这复杂的市场。因此,需要开发一套能够使用超市现代化管理的系统。 1.1.2. 意义 本课题目,依靠现代化的计算机信息处理技术来管理超市,从而节省了大量的人力、物力,改善了员工的工作条件,减轻了劳动强度,并且能够快速反映出商品的进、销、存等状况和各种反馈信息分析,使管理人员快速对市场的变化做出相应的决策,加快超市经营管理效率。提高顾客的满意度顾和企业形象,为消费者提供更加满意的服务。 1.2. 国内外文献综述 1.2.1. 国外情况 信息管理系统(MIS)是一个由人、计算机及其他外围设备等组成的能进行信息的收集、传递、存贮、加工、维护和使用的系统是一门新兴的科学,其主要任务是最大限度的利用现代计算机及网络通讯技术加强企业的信息管理,通过对企业拥有的人力、物力、财力、设备、技术等资源的调查了解,建立正确的数据,加工处理并编制成各种信息资料及时提供给管理人员,以便进行正确的决策,不断提高企业的管理水平和经济效益。国外信息管理系统(MIS)在超市等零售企业中已经有相当长的历史。 1.2.2 国内情况 随着超市高速的发展,其经营管理也变得愈加复杂,早期的售货员站 2 山东科技大学泰山科技学院毕业设计(论文)说明书 柜台的形式早已不能满足现有销售也的发展。在我国超市形成在20世纪90年代初期,现在已经成为我国零售业的一种重要形态,为国民经济的发展起发挥了极大的作用。 开发应用现代化的超市销售管理系统在我国有相当广阔的市场前景。 3 山东科技大学泰山科技学院毕业设计(论文)说明书 2系统分析 2.1需求分析 通过与超市负责人,销售经理,各连锁店负责人以及超市收银员等进行沟通,详细了解了本系统的需求。 2.1.1概述 本系统主要为超市等零售型企业解决一下主要问题:超市收银员通过扫描或手工输入商品条形码,系统自动从数据库中调出该商品的信息,并对顾客购买的所有商品进行汇总,完成收银。超市管理人员通过对后台数据更新,来完成新商品的上架。通过对库存功能的使用,了解商品的库存状况。通过销售功能使用,来了解商品销售。 2.1.2前台需求分析 1.使用密码来控制收银员登录; 2.操作尽量简单,可在无鼠标状态下完成操作; 3.支持条码的手工输入与扫描器扫描; 4.商品单价等信息自动从数据中获取; 5.能查询当班当天销售金额用于对账; 2.1.3后台需求分析 1.方便快捷的管理销售商品信息; 2.管理进货 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 、商品进货入库; 3.可以设置促销价格时间、允许禁止商品销售; 3 需求分析 4.可以对销售状况进行统计; 5.界面简洁、框架清晰、美观大方; 2.1.4性能需求分析 1.程序能够在复杂环境下稳定运行 2.数据计算要准确有效 3.数据存储要安全有效,防止非法用户获得数据 2.2 开发环境 本设计软件开发共分为两大部分:前台收银系统和后台管理系统。运行环境为windows xp/2003操作系统。 本系统采用Visual Basic 6.0中文企业版和MS SQL 2000 企业版数据库系统进行开发。Visual Basic 6.0 + MS SQL 2000开发环境,是非常成熟的开发平台,能够保证程序开发环境的稳定有效。 4 山东科技大学泰山科技学院毕业设计(论文)说明书 2.3可行性分析 2.3.1经济可行性分析 因为通过网络传递销售信息可以不受距离的限制,因此可以节约许多的人力和物力,减少了以往入出存 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 繁琐,杂乱,周期长的弊端,可以减少入库管理、出库管理及库存管理中的漏洞,可以节约不少管理开支,增加企业的收入,方便了管理,由此可以减少不必要的开支,同时该系统可以提高超市的销售效率,即提高了超市的经济效益,所以从经济上完全是可行的。开发新系统的工作是一项艰巨复杂的工作,它的投资主要是人力和物力的投资。对于本系统的开发者来说,其主要的投资还是在人力和物力两个方面。如果是企业自己安排人手开发系统的话,其主要的投资还是在人力资源上,从系统的业务需求调查到系统的分析编码制作都是需要巨大的人力投入的。软件企业作为一个先进的高科技产业,其员工要求都比一般企业的要求要高,而且对系统开发及软件产业了解比较多,所以在自我开发管理系统的过程中,企业自己比较容易安排人手,这样就可以为企业节约大部分的额外开支。同时软件就其它产品来说,属于高端行业,无论是产品的价格还是质量都比较高,而经营产品的经销商或者是商家都要求有雄厚的资金支持。所以,在系统的开发过程中,企业完全有能力承担开发费用。 2.3.2技术可行性分析 本系统使用Visual Basic 6.0 + MS SQL 2000 作为开发环境,这是非常成熟的开发平台,在业界已经有相当多的成功开发案例可供参考,开发者具有类似开发经验,可以在规定时间内完成系统开发设计。 本系统操作界面简单,一般超市员工都具有一定的计算机基础知识, 5 需求分析 只要对员工进行少量的培训,在掌握了系统的功能和使用方法时,就基本上能够使系统顺利的运行,为超市提供服务。因此,在现有的技术条件下是可以实现本设计的。 2.3.3社会因素分析 本系统完全独立开发设计,是按照完全独立的开发体系结构进行的,在法律方面没有任何侵权行为,符合相关法律法规规定。 2.4 结论 根据以上分析,本项目在技术上没有问题,开发时间充裕。经济和社会因素上完全可行。因此认为该项目可以开发。 6 山东科技大学泰山科技学院毕业设计(论文)说明书 3.系统概要设计 本系统主要由两部分构成,为前台收银系统和后台管理系统。数据存采用MS SQL Server 2000 数据库存储。 前台收银系统应用于超市收银结算,主要使用人员为超市收银员。前台收银系统的主要功能有用户登录、录入商品、挂单取单、账务查询等。超市前台收银管理系统结构图如 图 3.1所示。 超市POS前台收银系统 用录挂打账 户入单 印务 登商取小查 品 单 票 询 录 图 3.1前台收银系统结构图 后台管理系统主要使用对象为超市管理人员,主要功能有用户管理、商品管理、进货管理、销售管理、厂商/供货商管理等功能。超市后台管理系统结构图如图3.2所示。 7 系统概要设计 超市后台管理系统 厂 用商进销商 户品货售供 管管管管货 理 理 理 理 商 管 理 3.2超市后台管理系统 图 3.1系统总体设计 3.1.1设计的指导思想 (1)系统分成几个相对独立的模块,但这些模块都进行集中式管理。 (2)分层的模块化程序设计思想,整个系统采用模块化结构设计。作为应用程序有较强的可操作性和扩展性。 (3)合理的数据流设计,在应用系统设计中,相对独立的模块间以数据流相互连接,使各模块间的耦合性较低,方便系统运行,提高系统安全性。 3.1.2功能模块划分 设计分为两个部分: 前台POS收银系统:通过输入商品编码完成收银等工作。 后台管理系统:完成商品管理、销售管理、库存管理等功能。 8 山东科技大学泰山科技学院毕业设计(论文)说明书 3.2数据库设计 在本系统中,需要保存大量的数据(包括商品信息、供应商信息、厂商信息、销售信息、库存信息等),通过使用数据库技术,将这些数据保存到数据库中,可以方便对这些数据的管理。本系统的前台收银系统与后台管理系统共用一个数据库,下面介绍数据库的主要内容。 3.2.1数据分析 本系统采用VB6+MS SQL Server 2000数据库构成,本项目选择使用MS SQL Server 2000 数据库的主要原因有: )MS SQL Server 2000 作为一个大型数据库系统,具备现代数据库管(1 理系统所要求的各种强大功能。 (2)本项目需要保存海量数据,使用MS SQL Server 2000可以完成对海量数据进行安全、快速保存、查询操作。 (3)MS SQL Server 2000 支持客户机/服务器的结构,可以方便的将数据库部署到企业机房中,各收银机只运行前台收银系统即可。 3.2.2数据项及数据结构 本设计中部分主要表如下: 1(user表(操作员表) 该表用于存储用户的登录用户名、密码、权限的相关信息。 2(googs表(商品表) 该表用户保存超市销售商品的编号、单价、数量、条形码等信息。 3(sale表(销售表) 该表主要用来保存商品的销售时间、商品编号、销售日期、数量、单价、 销售单号、收银员等信息。 9 系统概要设计 4(stock表(进货信息表) 该表主要用于保存进货计划和进货数据的商品编号、数量、单价、 金额、状态等信息。 3.2.3数据库逻辑结构设计 在本系统中,共使用了10张表:分别是user(操作员)表、goods(商品)表、sale(销售)表、saletemp(临时销售)表、pso_base(超市信息)表、factory(厂商)表、provide(供应商)表、stock(进货信息)表、stcoktemp(进货信息表)。下面列出主要表的字段作用。 1( user (操作员):用户保存允许使用本系统的操作员(收银员)信息。该表包括4个字段,分别用来保存一个操作员的名称、密码、用户类型等相关信息,各字段的参数如表3.1 所示。 表 3.1 user (操作员)表 字段名 数据类型 字段大小 是否主键 允许空 说明 UserID Int 是 否 操作员序号 UserName Char 25 否 否 操作员姓名 UserPW Char 50 否 否 密码 UserStyle Int 否 否 用户类型 2( goods (商品)表:用于保存超市销售商品信息。该表包括15个字段,分别用来保存商品的编号、名称、单价、数量、条形码等信息,各字段的参数如表3.2 所示。 10 山东科技大学泰山科技学院毕业设计(论文)说明书 表3-2 goods(商品)表 字段名称 数据类型 字段大小 是否主键 允许空 说明 GoodID Int 是 否 商品序号 GoodName Char 25 否 否 商品名称 GoodPrice Char 50 否 否 单价 GoodNum Int 否 否 数量 CautionNum Int 否 否 报警数量 PlanNum Int 否 否 计划数量 BarCode Varchar 20 否 否 条形码 SaleProPrice Momey 否 是 促销价 Saleprodates Datetime 否 是 促销开始 日期 Saleprodatee Datetime 否 是 促销结束 日期 Allowabate Int 否 是 允许打折 Allowsale Int 否 否 允许促销 Factoryid Int 否 否 厂家编号 Provideid Int 否 否 供应商编 号 3(Sale(销售)表:用户保存商品的每笔销售数据。该表包含7个字段,分别用来保存商品序号、商品编码、销售日期、数量、单价、销售单号、收银员。 11 系统概要设计 表3-3 Sale(销售)表 字段名称 数据类型 字段大小 是否主键 允许空 说明 Saleid Int 是 否 商品序号 Goodsid Int 否 否 商品编号 Saledate Datetime 否 否 销售日期 Salenum Int 否 否 数量 Saleprice Money 否 否 单价 Saleno Int 否 是 销售单号 Cashier Varchar 10 否 是 收银员 4(stock(进货信息)表:用于保存进货计划和进货的数据。该表包括8个字段, 分别用于保存商品编号、数量、单价、金额、日期、等信息,各字段的参数如表3-4 所示。 表3-4 stcok(进货信息)表 字段名称 数据类型 字段大小 是否主键 允许空 说明 StockId Int 是 否 进货序号 GoodsId Int 否 否 商品编号 GoodsNum Int 否 否 数量 GoodsPrice Money 否 是 单价 TotalPrice Money 否 是 总金额 PlanDate Datetime 否 是 计划日期 StockDate Datetime 否 是 进货日期 Stockstate Int 否 是 进货状态 12 山东科技大学泰山科技学院毕业设计(论文)说明书 4.系统详细设计 本设计主要分为两部分,其中一部分为前台收银管理系统,另一部分为后台管理系统。 4.1前台收银系统 前台收银系统运行于收银POS机种,该系统可以实现超市商品销售中的收银计算功能。 4.1.1登录界面设计 登录窗体用来验证用户身份,为了方便收银员快速登录,该窗体将所有合法用户的名称添加到“用户名”组合框中,供用户选择,以减少用户的输入量。 登录窗体frmLogin 如图 4.1所示,该窗体各控件的属性如表4.1所示。 图 4.1登录窗体 13 系统详细设计 表4.1“登录”窗体属性表 控件名称 属性 属性值 控件名称 属性 属性值 Form Frmlogin Cmdok 名称 名称 Commandbutton1 Caption Caption 超市POS系统登录 登录 Combox1 Cmdname Default Ture 名称 (用户名) Style 2-dropdown list Cmdexit 名称 Commandbutton2 Textbox1 Txtpwd Caption 名称 退出 Passwordchar * Cancel Ture 用户选择下拉框中的用户名后,键入密码,单击登录按钮,系统自动验证用户输入的密码是否与数据库中保持的密码一致。如果密码正确,则登录成功,进入收银主界面。若密码错误,提示用户密码不正确,重新进行密码输入。 4.1.2收银主窗体设计 收银主窗体是前台系统最主要的界面,系统中的大部分操作都在此窗体中完成。下面介绍主窗体的设计过程。 收银主窗体如图4.2所示,左上角的大部分是一个表格,用来显示已经输入的商品信息。右侧的“合计”显示出左侧表格中各种商品的金额,“条码”输入部分用来扫描或输入商品条码,然后由系统自动查询该商品的单价,自动添加到左侧表格中,等待用户输入下一商品的条码。 14 山东科技大学泰山科技学院毕业设计(论文)说明书 图 4.2收银主窗体 在窗体的下方有一个“上单收款”框架,显示上一单的收款情况,因为打印收银小票返回后,系统将自动进入新的一单收款状态,通过“上单收款”框架可以了解上一单的情况,以便方便和顾客对账。 而窗体下面的一排按钮,分别用来完成不同的工作,因为一般POS机都不用鼠标,因此为每个按钮都设置了一个功能键作为快捷键,在按钮的标题文字中有提示。下面先介绍一下各按钮的作用。 1)完成[SPACE]:当完成顾客所有商品输入后,按空格键即可弹出“打印”窗体,收钱找零,打印收银小票,完成一单收银过程。 2)条码[F2]:当进行了其他操作鼠标焦点没有回到“条码/简码”按钮文本框中时,按快捷键“F2”可以将输入焦点定位到“条码/简码”文本框,等待输入下一商品条码。 15 系统详细设计 3)作废[F3]:作废当前输入的所有商品,重新开始输入新的内容。 挂单[F4]:当一个顾客购买完的商品还未录入完成,又需要录入另一个顾客的商品时,按快捷键“F4”可对为输入完的销售单进行挂单处理。 4)取单[F5]:当需要对已挂单的销售单进行收银时,按快捷键“F5”可以打开“取单”窗体,从中选择要取出的单,即可继续对挂单进行收银。 5)财务[F6]:按快捷键“F6”可以查看收银员当日收银金额。 4.1.3结账打印窗体 在收银主窗体中输入完一个顾客购买的商品后,按空格键可以显示“结账打印”窗体,该窗体如图4.3所示,在该窗体中将显示应收金额,收银员在“收款”文本框中输入顾客预付金额后,下方的“找零”文本框自动计算找零金额。如果文本框中输入的金额小于应收款时,系统弹出提示“实收金额小于商品金额”。单击“打印[ENTER]”按钮或按回车键将打印收银小票。 图4.3 结账打印窗体 4.1.4取单窗体设计 “取单”窗体用来从挂单的数据表中取出需要继续收银的销售单,该 16 山东科技大学泰山科技学院毕业设计(论文)说明书 窗体如图4.4所示,在该窗体中还将显示所有挂单的商品数据,收银员在表中用键盘的上下光标键移动选择,下方的文本框中将显示选中商品的单号。一个销售单中可能会有多个商品显示在表格中,只要选中其中一个商品后,单击“提取[ENTER]”按钮或按回车键即可提取该商品所在的销售单的所有数据,并显示到收银主窗体中。 图4.4 取单窗体 4.2后台管理系统设计 后台管理系统可以实现系统用户管理、商品管理、进货管理、销售管厂商管理和供货商管理等功能。 17 系统详细设计 4.2.1设计主窗体 超市POS后台管理系统有菜单驱动,将菜单设计到主窗体中,用户通过菜单调用各子模块完成相应的功能。 主窗体主要用来集成本系统的菜单,并在下方显示一个状态栏,添加了菜单后的主窗体如图4.5所示,各控件属性如表4.2所示。 图4.5 主窗体 选择菜单“工具/菜单编辑器”命令,打开“菜单编辑器”对话框,逐个创建系统的菜单,如图4.6所示。 图4.6 菜单编辑器 18 山东科技大学泰山科技学院毕业设计(论文)说明书 表4.2 应用程序菜单表 菜单 子菜单 菜单名 快捷键 Mnusystem 系统(&S) Mnugin Ctrl+R 重新登录(&R) Mnuuser Ctrl+U 用户管理(&U) Mnuexit Ctrl+X 退出(&X) Mnubuss 业务 Mnugoods Ctrl+G 商品管理(&M) Mnuin Ctrl+I 进货管理(&I) Mnuout Ctrl+O 销售管理(&U) Mnuaux 辅助(&A) Mnumember Ctrl+M 厂商供货商管理(&S) Mnuhelp 帮助(&H) Mnuabout 关于(&A) 4.2.2商品管理模块设计 “商品管理”模块用来管理超市销售的所有商品的数据。通过该模块可以添加、修改、删除商品资料,可设置禁止或允许某件商品的销售,可设置商品的促销、打折。该模块用三个窗体来完成相应的功能。 1)商品管理 “商品管理”窗体如图4.7所示,该窗体分页显示系统中已有的资料商品,可以通过上方的三个按钮添加、修改、删除商品资料,也可通过右侧各框架查询、过滤,使左侧列表中只显示部分商品资料,通过右下角大的三个按钮可以允许/禁止商品销售、可提交选中商品的进货计划。 19 系统详细设计 图4.7商品管理 当系统中的商品数量较多时,可以使用右侧“商品查找”框架中的控件查询指定商品的信息。在“商品查询”的三个文本框中输入查询(可同时输入一个或多个条件),然后单击“查找”按钮,即可在左侧表格中显示指定条件的商品信息。 在“商品过滤”框架中有3个组合框,通过这3个组合框可设置不同的过滤条件(如显示指定厂商的商品、显示指定供应商的商品、显示指定状态的商品)。在窗体右上角有4个导航按钮,可在分页显示的记录集中进行导航。 2)添加商品 在“商品管理”窗体中单击“添加按钮”,将打开如图4.8所示的“添加商品”窗体,另外,在“商品管理”窗体中选中商品后单击“修改”按钮也将打开窗体,对商品的数据进行修改。 20 山东科技大学泰山科技学院毕业设计(论文)说明书 在“添加商品”窗体中输入商品的各种信息,并可以在窗体右侧设置商品的销售状态、促销情况等数据。 图4.8 添加商品 3)计划进货 在“商品管理”窗体中选中一个或多个准备进货的商品后,单击右侧的“提交进货”按钮,将打开如图4.9所示的“计划进货”窗体。在该窗体的ListView控件中将显示计划进货大的商品信息,选中某个商品后,可以在下方的文本框中修改计划进货的数量和日期,单击“确定”按钮将保存计划进货的情况。 “计划进货”窗体frmPlanStock各控件的属性如表 4.3所示 图4.9 计划进货 21 系统详细设计 表4.3 计划进货窗体控件属性表 控件名称 属性 属性值 控件名称 属性 属性值 Form Frmplanstock Cmdok 名称 名称 Commandbutton1 Caption Caption 计划进货 确定 Listview1 List1 Default True 名称 Textbox1 Caption txtnum Cmdexit 名称 Commandbutton2 (计划数量) Caption 取消 Textbox2 Txtdate (计划日期) 名称 Cancel True 4.2.3进货管理模块设计 “进货管理”模块用来管理超市的进货情况。该模块由两个窗体组成,主窗体为“进货管理”,可以显示计划进货的列表,单击其中的”入库”按钮将显示“入库”窗体。 1)进货管理 “进货管理”窗体运行效果如图4.10所示,表格中显示的是计划进货的商品,可以通过上方的按钮添加、修改、删除计划进货商品。选中某个商品后,单击“入库”按钮将打开“入库”对话框,可以完成商品的入库操作。单击“报表”按钮可以输出计划进货报表。单击“需要进货”按钮将打开“计划进货”窗体,显示需要进货的商品信息。 22 山东科技大学泰山科技学院毕业设计(论文)说明书 图4.10 进货管理运行界面 “进货管理”窗体frmstock在设计界面如图4.11所示,其中用于显示计划的ListView控件和用于显示入库记录的MSHFlexGrid控件重叠在一起。在该窗体中,由于要在“计划进货”和“入库记录”之间切换显示数据,因此,要显示这两项数据的ListView和MSHFlexGrid控件将重叠放置。 图4.11 进货管理设计界面 2)入库界面设计 在“进货管理”窗体中单击“入库”按钮,将打开如图4.12所示“入库”窗 23 系统详细设计 体。该窗体中的数据由其调用窗体“进货管理”中的代码填充,可以输入入库数量、价格、日期等参数,然后单击“确定”按钮,即可完成入库操作。 图4.12 入库窗体 4.2.4其他模块 1)销售管理模块 “销售管理”模块用来查询统计商品销售状况,生成报表。销售管理模块运行时如图4.12所示。单击不同按钮可以执行相应的功能。 24 山东科技大学泰山科技学院毕业设计(论文)说明书 图4.12 销售管理窗体 2)厂商/供货商模块 “厂商/供货商”模块用来管理商品的厂商/供货商资料。厂商/供货商窗体如图4.13所示。在该窗体中可分别添加、修改、删除厂商/供货商的名称、 25 系统详细设计 电话、地址等资料。 图4.13厂商/供货商窗体 2)帮助窗体 帮助窗体简单介绍程序版本作者等信息,调用系统信息查看器查看系统 信息。运行结果如图4.14所示。 图4.14关于超市管理系统窗体 26 山东科技大学泰山科技学院毕业设计(论文)说明书 5.系统实现与测试 整个系统的采用Visual Basic 6.0 + MS SQL 2000开发。经过前文的分析和设计,在本章中将对整个系统功能进行测试。成对流程的编码后,最重要的事情就是对系统的测试工作了,对照系统需求分析说明书,进行模块测试。测试在系统设计阶段有两个时期:通常在编写每个模块后都进行单元模块测试;另一个时期是对系统进行整体综合测试。 5.1前台收银程序测试 在前文中已经详细介绍了前台收银程序的开发过程,现在对前台程序在windows xp 环境下进行测试。 为了保证系统能在复杂苛刻环境下运行,采用在极端环境下对前台程序进行测试,一次性在条码框中输入100个商品进行测试,测试结果前台收银程序运行结果正确无误,没有出现卡死等现象,数据库读取写入正确。运行稍有延时,为系统计算读取大量数据正常延迟时间。但是在账务功能中,核对账务时发现,账务计算结果不正确。经仔细检查程序源代码后发现,在销售完成后对数据进行数据库写入时,在sale表中商品销售时间误写成now应为day。 经过修改代码后,账务功能正确运行。测试结果前台程序员顺利完成所有功能。 5.2后台管理系统测试 后台管理系统功能模块较多,结构复杂。为顺利完成测试,采用模块测试方法进行测试。 1)用户管理模块测试 27 系统测试 用管理员账户登录系统对用户的添加删除修改等功能进行测试,运行结果正确无误。如图5.1所示。 图5.1 用户管理功能测试 2)进货管理模块测试 对商品管理、进货管理、销售管理等功能进行测试。分别对商品进行加添加、修改、删除等共能进行测试,测试所有功能均可运行。对进货管理功能进行测试,对计划进货功能进行添加、修改、删除等功能进行测试,测试所有功能都可以运行。对商品进行入库,入库功能可以运行,运行结果无误。运行结果如图5.2所示。 28 山东科技大学泰山科技学院毕业设计(论文)说明书 图5.2进货功能测试 3)销售管理功能测试 销售管理功能对销售状况进行测试,对销售管理功能中的按月查询报表、按季度查询报表、按年进行查询报表。测试功能可以顺利运行,结果正确。运行结果如图5.3所示。 图 5.3 销售管理功能测试 29 系统测试 5.3系统整体测试 在完成了系统所有部分的开发及测试工作之后将进行系统的整体运行测试。总体测试是组装软件的系统技术,本系统测试采用渐增集成测试,即测试单一模块,将测试完的模块加入系统中,进行一次系统测试,依次类推将所有模块加入系统中,在具体测试时,采用自顶向下的结合方式。 30 山东科技大学泰山科技学院毕业设计(论文)说明书 6.结束语 本论文主要论述的是超市管理系统的设计和实现。该系统主要应用于超市等零售企业销售管理。本课题研究过程中,首先对超市销售管理业务进行了解,然后进行系统需求分析与可行性论证。之后对系统进行总体设计,指定系统基本目标与大体框架结构。之后进行系统详细功能设计与实现,最后对系统进行测试,完善系统。 经过测试证明,该系统基本完成了超市等零售企业正常业务的处理工作,前台收银系统运行流畅,操作简便。后台管理系统界面简洁,操作简单。但系统中也存在一定的不足之处,如对销售数据的分析功能不够强大等。 该系统采用分为前台和后台两个独立系统开发,在收银机上只需运行前台收银程序,后台管理程序由超市管理人员运行。可以有效避免收银人员对系统数据进行误操作或恶意修改破坏。增强了系统的安全性。该系统采用SQL Server 2000数据库进行开发,SQL Server 2000 非凡的数据处理能力保证了系统稳定高速运行,可以存储大型超市数以千万计的商品信息。 经过测试证明,该系统基本完成了超市等零售企业正常业务的处理工作,前台收银系统运行流畅,操作简便。后台管理系统界面简洁,操作简单。但系统中也存在一定的不足之处,如对销售数据的分析功能不够强大等。 31 参考文献 参考文献 [1] 陶宏才(数据库原理及设计[M] (北京:清华大学出版社,2005.4 [2] 杨晶 VB6.0程序设计[M] (北京:机械工业出版社,2007.5 [3] 刘玉山(VB数据库模块化教程[M](北京:机械工业出版社,2009.8 [4] 李春葆(VB数据库开发教程[M](北京:电子工业出版社,2006.8 [5] 刘志妩(VB和SQL的数据库编程技术[M](北京:清华大学工业出版社,2007.7 [6] 吴昌平(Visual Basic程序设计[M](北京:人民邮电出版社,2008.10 [7] 曾慧(SQL Server 2000应用系统开发教程[M](北京:清华大学出版社,2008.5 [8] 赵增敏(SQL Server 2000实用教程[M](北京:电子工业出版社,2008.9 [9] .Alex Kriegel & Boris M.Trukhnov.《SQL Bible》[M](北京:电子工业出版社,2008.9 [10] Roger S. Pressman .《软件 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 ——实践者的研究方法》[M](北京:机械工业出版 社,2007.6 [11] Karl E. Wingers .《软件需求》[M](北京:机械工业出版社,2008.6 32 山东科技大学泰山科技学院毕业设计(论文)说明书 致 谢 经过一个多月的毕业设计,在指导老师和同学的帮助下,最终顺利完成了毕业设计。此次毕业设计是对我对大学所学知识的系统综合,在此次设计中,自身能力有了相当程度的提高。并且对所学知识有了新的认识。 在此我非常感谢张清菊老师在我大学的最后学习阶段——毕业设计阶段给自己的指导,从最初的定题,到资料收集,到写作、修改,到论稿,她们给了我耐心的指导和无私的帮助,张老师广博的学识和严谨的治学态度将使我受益终生。 还要感谢和我同一设计小组的几位同学,是你们在我平时设计中和我一起探讨问题,并指出我设计上的误区,使我能及时的发现问题把设计顺利的进行下去,没有你们的帮助我不可能这样顺利地结稿,在此表示深深的谢意。 通过指导老师和同学们的共同帮助,我的毕业设计最终得以顺利完成,这也意味着我的大学生活即将结束。大学阶期间,我在学习上和思想上都受益非浅,这除了自身的努力外,与各位老师、同学和朋友的关心、支持和鼓励是分不开的。在此,祝愿各位老师身体健康,工作顺利。祝愿同学们事业有成。 感谢各位老师和同学们的指导,谢谢大家~ 33 附录 附 录 A. 主要源程序清单 A.1前台收银端主要代码 1.登录窗体代码 Private Sub cmdOK_Click() '“登录”按钮 Dim strSQL As String, rs As ADODB.Recordset strSQL = "SELECT * FROM [User] WHERE username='" & Trim(cmbName.Text) & "'" Set rs = QueryExt(strSQL) '查询选择用户的资料 UserName = Trim(cmbName.Text) '保存用户名 If Not rs.EOF Then '记录集不为空 If rs("UserPW") = Trim(txtPWD.Text) Then '密码正确 Unload Me '卸载当前窗体 frmMain.Show '显示主窗体 Else MsgBox "密码错误~", vbCritical + vbOKOnly, "警告" txtPWD.Text = "" '清空密码框 txtPWD.SetFocus '设置输入焦点 End If Else '若记录集不为空,表示系统中无此用户 MsgBox "系统中无此用户~", vbCritical + vbOKOnly, "警告" cmbName.SetFocus '设置输入焦点,重新选择用户 End If 34 山东科技大学泰山科技学院毕业设计(论文)说明书 End Sub 2.前台主窗体代码 Private Sub cmdESC_Click() '退出 Unload Me End Sub Private Sub cmdF2_Click() '输入条码/简称 With txtComm(0) .Text = "" '输入栏设置初始值 txtComm(1).Text = 100 txtComm(2).Text = 0 txtComm(3).Text = 1 .SelStart = 0 .SelLength = Len(.Text) .SetFocus End With iRow = Grid1.Rows End Sub Private Sub cmdF3_Click() If Grid1.Rows = 1 Then Exit Sub '若表格只有标题行,则退出 If MsgBox("确定要删除整个单据吗(Y/N), ", vbQuestion + vbYesNo, "删除") = vbYes Then Grid1.Rows = 1 '设置表格总行数为1 iRow = 1 '保存新增数据到第1行 txtSum.Text = Format(0, "0.00") '清空“合计”文本框 End If 35 附录 End Sub Private Sub cmdF4_Click() Dim strTemp As String, i As Integer Dim rs As ADODB.Recordset, strSQL As String If Grid1.Rows = 1 Then Exit Sub '若表格只有标题行,则退出 strTemp = Date '保存当前日期 For i = 1 To Grid1.Rows - 1 '循环将当前表格中的数据保存到临时表中 strSQL = "INSERT INTO saletemp(saleno,GoodsID,saledate,salenumt,SaleMoneyT) VALUES (" & _ txtSaleID.Text & "," & Grid1.TextMatrix(i, 6) & ",'" & strTemp & "'," & _ Trim(Grid1.TextMatrix(i, 3)) & "," & Trim(Grid1.TextMatrix(i, 2)) & ")" SQLExt strSQL '执行SQL语句 Next Grid1.Rows = 1 '设置表格总行数为1 txtSum.Text = Format(0, "0.00") '清空“合计”文本框 txtSaleID.Text = txtSaleID.Text + 1 '生成新的销售单号 Call cmdF2_Click '设置输入焦点到“条码”框 End Sub Private Sub cmdF5_Click() frmF5.Show 1 '显示“取单”窗体 End Sub 36 山东科技大学泰山科技学院毕业设计(论文)说明书 Private Sub cmdF6_Click() Dim strTemp As String, dCur As Double Dim strSQL As String, rs As ADODB.Recordset strTemp = Date '当前日期 strSQL = "SELECT SUM(salenum*saleprice) FROM sale WHERE saledate='" & strTemp & _ "' AND cashier='" & lblCashier.Caption & "'" '查询当天指定收银员 收款情况 Set rs = QueryExt(strSQL) '执行SQL语句 dCur = 0 '销售金额清0 If Not IsNull(rs.Fields(0)) Then dCur = rs.Fields(0) '获取销售金额 MsgBox "当前销售员在本班次销售额为:" & Format(dCur, "0.00") & "元。", vbInformation + vbOKOnly, "提示" Call cmdF2_Click '调用过程设置输入焦点到“条码”框 End Sub Private Sub cmdModify_Click() Dim i As Integer For i = 1 To 3 '判断三个文本框中的内容是否为数字 If Not IsNumeric(txtComm(i).Text) Then MsgBox "折扣、单价、数量都必须输入数字~", vbCritical + vbOKOnly, "警告" With txtComm(i) .SetFocus '设置输入焦点 37 附录 .SelStart = 0 .SelLength = Len(.Text) '选中文本框中的内容 End With Exit Sub End If Next cursum = CCur(txtComm(2)) * CDbl(txtComm(3).Text) * (CDbl(txtComm(1).Text) / 100) '计算商品金额 If iRow <= 0 Then Exit Sub With Grid1 .TextMatrix(iRow, 2) = txtComm(2).Text '更新表格中的单价 .TextMatrix(iRow, 3) = txtComm(3).Text '更新表格中的数据 .TextMatrix(iRow, 5) = cursum '更新表格中的金额 End With bChange = False '取消修改模式 Call Summary '调用过程汇总合计金额 Call cmdF2_Click '调过用过程将输入焦点设置到“条码”框 End Sub Private Sub cmdOK_Click() '“完成”按钮 If Grid1.Rows < 2 Then MsgBox "对不起,没有销售信息~" Else Call SaveData '调用过程,保存销售数据 frmAcc.Show 1 '显示收款对话框 38 山东科技大学泰山科技学院毕业设计(论文)说明书 End If Call cmdF2_Click End Sub Private Sub Form_Activate() Call cmdF2_Click End Sub Private Sub Grid1_SelChange() With Grid1 If .Rows < 1 Then Exit Sub '若表格无数据,则退出过程 iRow = .Row '保存当前选中行 If iRow < 1 Then Exit Sub '选中的不是数据,则退出过程 txtComm(0).Text = .TextMatrix(iRow, 0) '将条码填到右侧文本框 txtComm(1).Text = .TextMatrix(iRow, 4) '折扣 txtComm(2).Text = .TextMatrix(iRow, 2) '单价 txtComm(3).Text = .TextMatrix(iRow, 3) '数量 strName = .TextMatrix(iRow, 1) '商品名称保存到模块变量 strID = .TextMatrix(iRow, 6) '商品ID保存到模块变量 End With End Sub Private Sub txtComm_KeyPress(Index As Integer, KeyAscii As Integer) If KeyAscii = 13 Then '如果按了回车键 If Index < 3 Then '前2个文本框 txtComm(Index + 1).SetFocus '设置输入焦点到下一个文本框 39 附录 Else '若是第3个文本框 cmdModify.SetFocus '设置输入焦点到“修改”按钮 End If End If End Sub Private Sub txtComm_LostFocus(Index As Integer) Dim rs As New Recordset, strSQL As String, str1 As String If bChange Then Exit Sub '修改模式,退出 If Index = 0 Then '条码/简码 On Error GoTo err '错误处理 Beep '鸣笛,提示录入一个商品条码 If Trim(txtComm(0).Text) = "" Then Exit Sub '若条码为空,则退出 strSQL = "SELECT * FROM goods WHERE barcode='" & txtComm(0).Text & "'" Set rs = QueryExt(strSQL) '从商品库中查询该条码的商品 If rs.EOF Then '若无此条码的商品 MsgBox "该商品还未上账,请联系商场管理人员~", vbCritical + vbOKOnly, "警告" Call cmdF2_Click '设置输入焦点到“条码”框 Exit Sub '退出过程 End If strName = rs!GoodsName '商品名称 strID = rs!GoodsID '商品编号 txtComm(2).Text = rs!GoodsPrice '单价 40 山东科技大学泰山科技学院毕业设计(论文)说明书 txtComm(3).Text = 1 '数量 cursum = CCur(txtComm(2)) * CDbl(txtComm(3).Text) * (CDbl(txtComm(1).Text) / 100) '单价*数量*折扣 rs.Close '关闭记录集 str1 = txtComm(0).Text & vbTab '条码 str1 = str1 & strName & vbTab '商品名称 str1 = str1 & txtComm(2).Text & vbTab '单价 str1 = str1 & txtComm(3).Text & vbTab '数量 str1 = str1 & txtComm(1).Text & vbTab '折扣 str1 = str1 & cursum & vbTab & strID '商品编号 Grid1.AddItem str1 '添加显示的内容 Call Summary '调用过程汇总金额 Call cmdF2_Click '设置焦点到“条码”框 End If err: End Sub Private Sub SaveData() '保存表格中的销售数据 Dim strSQL As String, i As Integer, GoodsID As Integer Dim rs As ADODB.Recordset strSQL = "SELECT * FROM sale WHERE SaleID=0" '获取销售表中 的一个空记录集 Set rs = QueryExt(strSQL) '执行SQL语句 With Grid1 For i = 1 To .Rows - 1 '保存表格中的每一行数据 41 附录 rs.AddNew '添加新记录 rs!saleno = txtSaleID.Text '单号 GoodsID = .TextMatrix(i, 6) '商品编号 rs!GoodsID = GoodsID '商品编号 rs!saledate = Date '销售时间 rs!salenum = .TextMatrix(i, 3) '数量 rs!saleprice = .TextMatrix(i, 2) '单价 rs!cashier = lblCashier.Caption '收银员 rs.Update '保存数据 strSQL = "UPDATE goods SET GoodsNum=GoodsNum-" & .TextMatrix(i, 3) & _ " WHERE GoodsID=" & GoodsID '减去商品库中的库存 数 SQLExt strSQL '更新商品数据 Next End With End Sub #include "GpsResolver.h" GPS_DATA_DATE GetGpsDate(BYTE *pbytNemaData); GPS_DATA_TIME GetGpsTime(BYTE *pbytNemaData); float GetCoordinate(BYTE *pbytNemaData,UINT uLength); float GetFloat(BYTE *pbytNemaData,UINT uLength); BOOL ResolveRMC(GPS_DATA_RMC *pgdrGpsDataRMC, BYTE 42 山东科技大学泰山科技学院毕业设计(论文)说明书 *pbytRmcData, UINT uLength) { if(pbytRmcData[0] != '$' || pbytRmcData[uLength-1] != '\n') { return FALSE; } BYTE bytSegment[20][16]; UINT uSegmentLength[20]; for(UINT i=0,j=0,k=0; i < uLength; i++) { if(pbytRmcData[i] == ',') { uSegmentLength[j] = k; k = 0; j++; continue; } bytSegment[j][k++] = pbytRmcData[i]; } pgdrGpsDataRMC->fLatitude = GetCoordinate(&bytSegment[3][0],uSegmentLength[3]); pgdrGpsDataRMC->fLatitude *= bytSegment[4][0] == 'N'?1:-1; 43 附录 pgdrGpsDataRMC->fLongitude = GetCoordinate(&bytSegment[5][0],uSegmentLength[5]); pgdrGpsDataRMC->fLongitude *= bytSegment[6][0] == 'E'?1:-1; pgdrGpsDataRMC->fSpeed = GetFloat(&bytSegment[7][0],uSegmentLength[7]); pgdrGpsDataRMC->fTrack = GetFloat(&bytSegment[8][0],uSegmentLength[8]); pgdrGpsDataRMC->gdTime = GetGpsTime(&bytSegment[1][0]); pgdrGpsDataRMC->gdDate = GetGpsDate(&bytSegment[9][0]); pgdrGpsDataRMC->bValid = bytSegment[2][0] == 'A'?TRUE:FALSE; return TRUE; } GPS_DATA_DATE GetGpsDate(BYTE *pbytNemaData)//, UINT uLength) { GPS_DATA_DATE gdDate; gdDate.bytDay = ((pbytNemaData[0] - '0') * 10) + (pbytNemaData[1] - '0'); gdDate.bytMonth = ((pbytNemaData[2] - '0') * 10) + (pbytNemaData[3] - '0'); gdDate.bytYear = ((pbytNemaData[4] - '0') * 10) + (pbytNemaData[5] - '0'); return gdDate; } GPS_DATA_TIME GetGpsTime(BYTE *pbytNemaData)//, UINT uLength) { GPS_DATA_TIME gdTime; gdTime.bytHour = ((pbytNemaData[0] - '0') * 10) + (pbytNemaData[1] - 44 山东科技大学泰山科技学院毕业设计(论文)说明书 '0'); gdTime.bytMinute = ((pbytNemaData[2] - '0') * 10) + (pbytNemaData[3] - '0'); gdTime.bytSecond = ((pbytNemaData[4] - '0') * 10) + (pbytNemaData[5] - '0'); return gdTime; } float GetFloat(BYTE *pbytNemaData,UINT uLength) { if(uLength < 1) { return 0; } float fFloat = 0.0; BOOL bPoint = TRUE; for(UINT i = 0,j = 0;i 0 Then '选择了厂商 strWhereSQL = strWhereSQL & " AND FactoryName='" & cmbFactory.Text & "'" '设置SQL语句条件 End If If cmbProvide.ListIndex > 0 Then '选择了供应商 strWhereSQL = strWhereSQL & "AND ProvideName='" & cmbProvide.Text & "'" '设置SQL语句条件 End If Select Case cmbState.ListIndex '过滤状态 Case 1 '促销商品 47 附录 strWhereSQL = strWhereSQL & "AND SalesProPrice IS NOT NULL AND SalesProDateS<='" & _ Date & "' AND SalesProDateE>='" & Date & "'" '设置SQL语 句条件 Case 2 '缺货报警 strWhereSQL = strWhereSQL & "AND GoodsNum<=CautionNum " '设置SQL语句条件 Case 3 '禁止销售 strWhereSQL = strWhereSQL & "AND AllowSale=0 " '设置SQL 语句条件 End Select DispGoods strBaseSQL & strWhereSQL & strOrderSQL, 1, iPageSize ' 调用过程显示商品信息 End Sub Private Sub cmbPage_Click() '显示页组合框 If cmbPage.Enabled = False Then Exit Sub If cmbPage.ListIndex = 0 Then '显示全部 DispGoods strBaseSQL & strWhereSQL & strOrderSQL, 1 '调用过程 显示商品数据 Else '显示指定页 DispGoods strBaseSQL & strWhereSQL & strOrderSQL, _ cmbPage.ListIndex, iPageSize '调用过程显示商 品数据 End If End Sub 48 山东科技大学泰山科技学院毕业设计(论文)说明书 Private Sub cmbProvide_Click() '过滤供应商 UpdateSQL End Sub Private Sub cmbState_Click() '过滤状态 UpdateSQL End Sub Private Sub cmdAdd_Click() '添加商品 xChangeItem = "" frmGoodsItem.Show 1 '调用添加商品窗体 End Sub Private Sub cmdASale_Click(Index As Integer) '允许销售 Dim i As Long, j As Long j = 0 For i = 1 To List1.ListItems.Count '判断选中的商品数量 If List1.ListItems(i).Selected = True Then '若该选被选中 j = j + 1 '累加计数器 End If Next If j = 0 Then '没有选中商品 MsgBox "没有选中任何商品~", vbInformation + vbOKOnly, "提示" Exit Sub End If If MsgBox("确定" & IIf(Index = 0, "禁止", "允许") & "销售这 " & j & " 个商品吗,", _ 49 附录 vbInformation + vbYesNo + vbDefaultButton2) = vbYes Then For i = List1.ListItems.Count To 1 Step -1 If List1.ListItems(i).Selected = True Then '更新被选中商品 SQLExt "UPDATE [Goods] SET AllowSale=" & Index & _ " WHERE BarCode='" & List1.ListItems(i).SubItems(2) & "'" '删除数据库中的数据 End If Next Call cmbPage_Click '调用页组合框 End If End Sub Private Sub cmdDel_Click() '“删除”按钮 On Error GoTo err1 '错误处理 Dim i As Long, j As Long j = 0 For i = 1 To List1.ListItems.Count '判断选中的商品数量 If List1.ListItems(i).Selected = True Then '若该选被选中 j = j + 1 '累加计数器 End If Next If j = 0 Then '没有选中商品 MsgBox "没有选中任何商品~", vbInformation + vbOKOnly, "提示" Exit Sub End If If MsgBox("此操作会同时删除商品的销售记录、进货记录和进货计划 50 山东科技大学泰山科技学院毕业设计(论文)说明书 记录~" & _ vbCrLf & vbCrLf & "确定删除选中的 " & j & " 个商品吗,", _ vbInformation + vbYesNo + vbDefaultButton2) = vbYes Then For i = List1.ListItems.Count To 1 Step -1 '循环处理选中商品 If List1.ListItems(i).Selected = True Then '若是选中状态 SQLExt "DELETE FROM [Goods] WHERE BarCode='" & _ List1.ListItems(i).SubItems(2) & "'" '删除数据库中的数据 List1.ListItems.Remove i '删除列表视控件中的项 End If Next End If Exit Sub err1: MsgBox Err.Description, vbCritical + vbOKOnly, "警告" End Sub Private Sub cmdEdit_Click() '“修改”按钮 Dim Item As ListItem Set Item = List1.SelectedItem '获取选中项 xChangeItem = Item.SubItems(2) '保存商品条码 frmGoodsItem.Show 1 '显示添加商品窗体 End Sub Private Sub cmdFind_Click() '查找商品 Dim b As Boolean, strBarCode As String, strName As String, strPrice As 51 附录 String b = False '未增加条件 strWhereSQL = "" '设置SQL条件为空 strBarCode = Trim(txtBarCode.Text) '条码 strName = Trim(txtName.Text) '商品名称 strPrice = Trim(txtPrice.Text) '单价 If strBarCode <> "" Then '条码不为空 strWhereSQL = strWhereSQL & "AND BarCode='" & strBarCode & "' " '设置SQL条件 b = True End If If strName <> "" Then '商品名称不为空 strWhereSQL = strWhereSQL & "AND GoodsName LIKE '%" & strName & "%' " b = True End If If strPrice <> "" Then '商品单价不为空 strWhereSQL = strWhereSQL & "AND GoodsPrice=" & strPrice b = True End If If b Then bNoModi = True cmbFactory.ListIndex = 0 '选择组合框中的第1项 cmbProvide.ListIndex = 0 cmbState.ListIndex = 0 52 山东科技大学泰山科技学院毕业设计(论文)说明书 bNoModi = False '未修改SQL语句 DispGoods strBaseSQL & strWhereSQL & strOrderSQL, 1, iPageSize '调用过程显示指定条件的商品信息 Else MsgBox "请指定条件!", vbInformation + vbOKOnly, "提示" End If txtBarCode.SetFocus '设置输入焦点 End Sub Private Sub cmdStock_Click() '“提交进货”按钮 Dim i As Long, j As Long, strDate As String, Item As ListItem On Error GoTo err3 '错误处理 j = 0 For i = 1 To List1.ListItems.Count '判断选中的商品数量 If List1.ListItems(i).Selected = True Then '若该选被选中 j = j + 1 '累加计数器 End If Next If j = 0 Then '没有选中商品 MsgBox "没有选中任何商品~", vbInformation + vbOKOnly, "提示" Exit Sub End If Do strDate = Trim(InputBox("请设定一个计划进货的日期", , Format(Date, "yyyy-mm-dd"))) '接收输入 If strDate = "" Then '若输入为空 53 附录 Exit Sub '退出过程 Else If Not IsDate(strDate) Then '若不是有效的日期 MsgBox "不是一个有效的日期~", vbCritical + vbOKOnly, "警告" Else '是正确日期值 Exit Do '退出死循环 End If End If Loop With frmPlanStock '计划进货窗体 For i = 1 To List1.ListItems.Count If List1.ListItems(i).Selected = True Then '选中的商品,将各项添加到计划进货窗体中 Set Item = .List1.ListItems.Add(, List1.ListItems(i).Key, List1.ListItems(i).Text, , 1) Item.SubItems(1) = List1.ListItems(i).Tag '计划进货数量 Item.SubItems(2) = strDate '计划进货日期 Item.SubItems(3) = List1.ListItems(i).SubItems(3) '当前库存量 End If Next .Show 1 '显示计划进货窗体 End With 54 山东科技大学泰山科技学院毕业设计(论文)说明书 Exit Sub err3: MsgBox Err.Description, vbCritical + vbOKOnly, "警告" End Sub 2.库存管理代码 Public Sub LoadPlanStock() Dim Item As ListItem, rs As ADODB.Recordset, strSQL As String strSQL = "SELECT stock.StockID AS SID, goods.GoodsName AS 商品名 称," & _ "goods.BarCode AS 条形码, factory.FactoryName AS 厂商," & _ "provide.ProvideName AS 供货商, stock.GoodsNum AS 计划进货 数量, " & _ "stock.PlanDate AS 计划进货日期 FROM stock INNER JOIN " & _ "goods ON stock.GoodsID = goods.GoodsID " & _ "INNER JOIN provide ON goods.ProvideID = provide.ProvideID " & "INNER JOIN factory ON goods.FactoryID = factory.FactoryID " & _ "WHERE stock.StockState = 0 ORDER BY SID DESC" '获取计 划进货商品的SQL语句 Set rs = QueryExt(strSQL) '执行SQL语句 List1.ListItems.Clear '清空列表视控件中的数据项 Do While Not rs.EOF '循环处理所有计划进货商品 Set Item = List1.ListItems.Add(, "k" & rs("SID"), rs("商品名称"), , 1) Item.SubItems(1) = rs("条形码") Item.SubItems(2) = rs("计划进货数量") Item.SubItems(3) = rs("计划进货日期") 55 附录 Item.SubItems(4) = rs("厂商") Item.SubItems(5) = rs("供货商") rs.MoveNext '处理下一记录 Loop frmMain.StatusBar1.Panels(1) = "共 " & rs.RecordCount & " 条计划进货 记录。" End Sub 56 山东科技大学泰山科技学院毕业设计(论文)说明书 B. 用户手册 B.1系统功能简介 本系统主要应用于超市等零售企业,可是一下商品的销售、收银、库存管理、进货管理等自动化操作。系统分为前台收银程序和后台管理程序。前台收银程序运行于收银POS机,完成商品销售收银工作。后台程序运行于企业服务器中,可以实现超市管理功能。 B.2系统支持的平台 , 硬件要求 1. 前台收银程序 CPU:主频>=1200MHz 内存:128MB或更多 硬盘可用空间:>100M 2. 后台管理程序 操作系统:windows 2000 以上装有SQL 2000数据库系统 >=1.8MHz CPU:主频 内存:512MB或更多 硬盘:4G或更多 , 软件要求 1. 前台收银程序 操作系统:windows 2000 以上 3. 后台管理程序 操作系统:windows 2000 以上装有SQL 2000数据库系统 57 附录 B.3安装说明 系统的安装分为两分。 1(前台收银程序 在windows 环境下,配置好数据库连接,将market.exe拷贝至收银机C盘根目录下,双击运行market.exe 即可进入登陆界面。登陆界面如图B.1所示,选择用户后输入密码即可登陆。 图 B.1前台收银端登陆界面 输入密码后单击登录按钮或按回车键,进入前台收银系统主窗体。 2(后台管理程序 在windows环境下安装SQL 2000数据库系统后,将MySuperMarket.exe 拷贝至C盘根目录下,双击运行MySuperMarket.exe即可进入登陆界面。登陆界面如图B.2所示,选择用户后输入密码即可登陆。 58 山东科技大学泰山科技学院毕业设计(论文)说明书 图 B.2 后台管理系统登录界面 输入密码后单击登录按钮或按回车键,进入前台收银系统主窗体。 B.4使用说明 1. 前台收银系统使用说明 双击运行market.exe 即可进入登陆界面,按照提示输入密码后,进入前台收银系统主界面,如图B.3所示。进入收银主界面后,在条码/简码文本框中输入商品编码,输入完成后按回车,系统自动从数据库中读取商品信息,并将商品信息保存到左侧表格中,输入所有商品后,按空格键,系统自动弹出“收银”对话框。在收款文本框中输入收款金额,系统自动计算找零金额。按回车键打印收银小票或按ESC键不打印直接完成本次收银操作。按F3作废输入的商品信息,按F4暂时保存当前顾客商品信息,按F5取回保存信息,按F6查询当班当天销售金额。按ESC键退出系统。 59 附录 图 B.3前台收银系统运行主界面 2. 后台管理系统使用说明 在windows环境下安装配置好数据库后,运行MySuperMarket.exe按照提示输入密码后,进入后台管理吸引主界面。按照提示进行操作即可完成相应功能。 B.5系统维护方法 1. 硬件方面 1) 定期检查系统硬件状态,及时发现隐患问题。 2) 及时处理硬件故障保证系统运行。 2. 软件方面 1) 定期备份数据库 60
本文档为【毕业设计(论文)-VB超市管理系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_014457
暂无简介~
格式:doc
大小:498KB
软件:Word
页数:61
分类:生活休闲
上传时间:2017-10-15
浏览量:17