30-基于VB的超市销售管理系统的设计与实现.docx
姓系另小导师、基于VB6.0的超市销售管理系统的设计与实现名专业一职称III11112345577«11010111112««131416«118191232325摘要ABSTRACT1引言1.1 系统的探讨意义1.2 系统的探讨现状1.3 系统的探讨内容2开发工具描述2.1 VisualBaSiC(VB)简介2.2 VisualBasic语言特性2.3 Access简介2.4 设计所用到技术简介3系统需求分析与总体框架3.1 需求分析3.2 系统的体系结构设计4系统设计1.1.1 库设计1.1.2 数据流条目1.1.3 文件条目5系统功能的具体设计5.1 组件的公共模块5.2 登陆窗口Frmdl5.3 销售管理功能的实现5.4 供应商添加FrmProvider5.5 供应商查询及删除FrmPSeI5.6 员工信息的添加FrmEmpIoyee5.7 员工信息的查询和删除FrmESeI5.8 商品信息添加FrmMCHD5.9 彳口/3力口6超市管理系统的运行测试6.1 登陆窗口Frmdl6.2 超市管理系统主窗口MDIFrmMain6.3 供应商添加FrmProvider6.4 供应商查询及修改FrmPSel266.5 员工添加276.6 员工查询及修改FrmESel276.7 商品信息添加FrmMCHD286.8 商品信息查询.修改.删除29691zaDU彳占J2、力口306.10 商品销售FrmSaIe316.11 销售统计FrmStat32总结32参考文献34致谢错误!未定义书签。摘要随着小超市规模的发展不断扩大,商品数量急剧增加,有关商品的信息量也成倍增长。超市时时刻刻都须要对商品各种信息进行统计分析。而大型的超市管理系统功能过于多造成了操作繁琐降低了小超市的工作效率。基于此,本文开发一个小型的超市管理系统。本系统结合实际的超市管理状况,以ViSUaIBaSiC6.0作为开发工具实现了超市管理系统。系统实现了包括销售管理负责每日销售状况盘点和每月销售状况统计并打印出统计报表。商品管理实现了商品的增加、修改和查询。用户管理包括了员工管理、会员管理和供应商管理。其中员工管理实现员工档案的建立,员工有关职位变动信息的修改。供应商的管理实现了供应商信息的录入、修改、查询和删除等功能。关键词:超市管理;VB;accessABSTRACTExpandsunceasinglyalongwiththesmallsupermarketscaledevelopment,thecommodityquantitysharpgrowth,relatedcommodityeachkindofinformationcontentalsobecomestimeofgrowth.Thesupermarketinneedstocarryonthestatisticalanalysisallthetimetocommodityeachkindofinformation.Bulthelargescalesupermarketmanagementsystemmanagementsystemfunctiontoowasformidablecreatestheoperationtediouslytoreducethesmallsupermarketworkingefficiency.Inthiscase,itseemsveryessentialtodevelopthesmalladministrativesystemofasupermarket.Thissystemcombinesrealsupermarketmanagementsystem,analyzedemand,adoptVisualBasic6.0asdevelopinginstrumentanddevelopuniteditionsupermarketadministrativesystemthatcomeout.Thewholesystemhavethreelargefunctionlikesalebuyanddatabase,anditbaseonfunctionsandmanagesuchasthesaleofthegoods,andincludingenteringstaffchangeoffoundation,oldproduce,positionofstaffoffile,etc.causeworkermodification,staffsinformationinquiryofinformation,count,etc.joining,newly.Inputtingtosupplier'sinformation,revise,deleteandholdlettingandcommoditystocksareinquiredaboutetc.Keywords:Thesupermarketmanages;VB;access1引言1.1 系统的探讨意义随着中小型超市的数量增加,超市的商品越来越多,价格的多样性以及员工数量增加。开发一个超市管理系统对一间超市的管理显得极其重要,合理地管理不但反映一个国家的科技水平。在这个经济时代到来的今日,用计算机限制超市的工作由自动化系统运行而完成。这不仅节约了人力,还提高了工作效率和服务质量,而且还加速了商品的流通。由于各超市的商品的数量不断增多和超市规模的不断扩大,管理这些浩大的体系特别困难的,因为商品的状况是随时变更的,因此必需对商品进行动态的管理,而这对于一个管理人员来说是一件比较困难的事情,存储,查询是必不行少的业务。超市管理何管理好一个全部超市的信息,成为超市管理中的一个大问题。在这种状况下,一个可以规范化,自动化的超市管理系统就显得特别必要。最初的超市管理,都是靠人力来完成的。当超市规模比较小的时候,人力可以完成,不过随着超市的规模越来越大,超市的员工人数和商品种类,商品数量也越来越多,依旧维持着人力进行超市管理的时候,必定会造成工作效率低,工作错误增高的问题。为了能让管理员从繁重的工作中解脱出来,使管理员在运用一个软件以后能极其简洁地对全部商品进行管理,并且精确无误,轻松自如。为此,本文开发了一个适合小型超市的超市销售管理系统。1.2 系统的探讨现状就目前的国际形势而言,虽然计算机发展飞速。但是,在其飞速发展的同时,计算机技术并未全面深化到民用里。就拿我们国家来说,很多人不知道计算机编程的原理。但是,计算机技术是一个走在时代前列的先进技术,它终究还是能给人们工作与生活带来更高的效率。目前就全国的超市管理程序而言,仍旧有相当一部分超市的超市管理系统存在着一些不足,比如系统不完善,功能不齐全,存在较多BUG等。甚至在有些偏远地区的超市没有运用便捷的超市管理系统来代替繁琐的人工管理。1.3 系统的探讨内容超市管理系统就是把分散的超市的职工,供应商,商品销售等信息实行统一,集中,规范的收集管理,建立分类编号管理,电脑存储查询以及防火,防潮,防蛀,防盗等现代化,专业化的超市管理系统。超市管理系统为超市供应信息询问,信息检索,信息存取等服务。系统是超市管理的一个重要内容,随着时代的进步,超市也渐渐变的浩大起来。超市管理系统的流通部分是对全部商品管理最重要的部分,流通系统将客户与商品,员工与客户,管理员与员工相互间联系起来,而且流通系统处理的数据类型多,数量大,精细且频繁,因而须要系统应具备较完善的检验防错功能,从而依据系统的运行及反馈信息高质量,高效率地管理系统流通部门的全部功能。本系统包含五大模块:(1)系统管理:包括登录系统、注销系统。(2)商品信息:包括对商品添加、查询、删改。(3)用户管理:包括了供应商管理、员工管理、会员管理。(4)管理库存:包括了对商品库存的查询功能。(5)销售管理:具有商品销售、销售统计等功能。(6)数据管理:具有数据备份及复原功能。2开发工具描述2.1 VisualBaSiC(VB)简介VisualBasic(VB)是一种由微软公司开发的包含帮助开发环境的事务驱动编程语言。从任何标准来说,VB都是世界上运用人数最多的语言不仅是盛赞VB的开发者还是埋怨VB的开发者的数量。它源自于BASIC编程语言。VB拥有图形用户界面(GUD和快速应用程序开发(RAD)系统,可以轻易的运用DAO、RDo连接数据库,或者轻松的创建ACtiVeX控件。程序员可以轻松的运用VB供应的组件快速建立一个应用程序。VisualBasic的最大的优势在于它的易用性,可以让阅历丰富的VB程序员或是刚刚懂得皮毛的人都能用自己的方式快速开发程序。而且VB的程序可以特别简洁的和数据库连接。比如利用控件可以绑定数据库,这样一来用VB写出的程序就可以驾驭数据库的全部信息而不用写一行代码。BASlC是种易学易用的高级语言叫特别适合初学者学习运用。事务驱动编程:VisualBaSiC允许创建反映用户动作和系统事务网的程序。这种编程叫事务驱动编程。要了解事务驱动程序是怎样工作的,先要了解过去的程序怎样运行及在WindOWS环境中有何不同。在WindoWS之前(回到往日的De)S和“史前时代”��PC之前),程序以依次方式运行。也就是说,一旦程序启动,它就一条指令一条指令的向前执行,直到程序结束或出现致命错误。面对对象编程:使创建WindoWS程序较为简洁的关键技术是面对对象编程,或OOP。这种技术可以创建可重用组建,它是程序的组成模块。在探讨ViSUalBaSiC时,常常可以听到这些术语,因此对这些术语的基本理解特别有帮助。控件:供应程序可见界面的可重用对象。控件的示例有文本框、标签和吩咐按钮。事务:由用户或操作系统引发的动作。事务的示例有击键、单击鼠标、一段时间的限制,或从端口接收数据。方法:嵌入在对象定义中的程序代码,它定义对象怎样处理信息并响应某事务。例如,数据库对象有打开纪录集并从一个记录移动到另一个记录的方法。对象:程序的基本元素,它含有定义其特征的属性,定义其任务和识别它可以响应的事务的方法。控件和窗体是ViSUalBaSiC中全部对象的示例。过程:为完成任务而编写的代码段。过程通常用于响应特定的事务。属性:对象的特征,如尺寸、位置、颜色或文本。属性确定对象的外观,有时也确定对象的行为。属性也用于为对象供应数据和从对象取回信息。2.2 VisualBasic语言特性一个典型的VB进程VB的中心思想就是要便于程序员运用,无论是新手或者专家。VB运用了可以简洁建立应用程序的GUl系统,但是又可以开发相当困难的程序。VB的程序是种基于窗体的可视化组件支配的联合,并且增加代码来指定组建的属性和方法。因为默认的属性和方法已经有一部分定义在了组件内,所以程序员不用写多少代码就可以完成一个简洁的程序。过去的版本里面VB程序的性能问题始终被放在了桌面上,但是随着计算机速度的飞速增加,关于性能的争辩已经越来越少。窗体控件的增加和变更可以用拖放技术实现。一个排列满控件的工具箱用来显示可用控件(比如文本框或者按钮)。每个控件都有自己的属性和事务。默认的属性值会在控件创建的时候供应,但是程序员也可以进行更改。很多的属性值可以在运行时候随着用户的动作和修改进行改动,这样就形成了一个动态的程序。举个例子来说:窗体的大小变更事务中加入了可以变更控件位置的代码,在运行时候每当用户更改窗口大小,控件也会随之变更位置。在文本框中的文字变更事务中加入相应的代码,程序就能够在文字输入的时候自动翻译或者阻挡某些字符的输入。VB的程序可以包含一个或多个窗体,或者是一个主窗体和多个子窗体,类似于操作系统的样子。有很少功能的对话框窗口(比如没有最大化和最小化按钮的窗体)可以用来供应弹出功能。VB的组件既可以拥有用户界面,也可以没有。这样一来服务器端程序就可以处理增加的模块。VB运用参数计算的方法来进行垃圾收集,这个方法中包含有大量的对象,供应基本的面对对象支持。因为越来越多组建的出现,程序员可以选用自己须要的扩展库。和有些语言不一样,VB对大小写不敏感,但是能自动转换关键词到标准的大小写状态,以及强制使得符号表入口的实体的变量名称遵循书写规则。默认状况下字符串的比较是对大小写敏感的,但是可以关闭这个功能。VB使得大量的外界控件有了自己的生存空间。大量的第三方控件针对VB供应。VB也供应了建立、运用和重用这些控件的方法,但是由于语言问题,从一个应用程序创建另外一个并不简洁。2.3 Access简介建立一个数据库我们有多种选择,现在市场上有各种各样的数据库,而且每一种数据库都有其自身的特点,不能说哪一种更好,只能在其中找寻一种能更好地适应系统需求、更好地满意用户的要求以及适应开发人员的习惯。在本系统中,做为图书仓库管理系统是一个比较小的应用系统,它所产生和处理的数据量也比较小。因此,没有必要运用像SqlSerVer和OraCle这样的大型数据库。我首先想到的数据库是borland公司的ParadoX数据库。另外,microsoftoffice中的access数据库在计算机上的应用比较普及,是开发小型数据库系统的比较志向的选择,所以,在本系统中我选择了access数据库。access做为一个数据库管理系统,它被集成在microsoftOffiCe中。access数据库处理的基本结构,实行关系型数据库模式。与其他的数据库系统相比,access更加简洁易学,一个一般的计算机用户可以很快地驾驭它。access2000的功能特别强大,利用它可以便利地实现对信息保存、维护、查询、统计、打印、沟通、发布,而且它可以特别便利地与Offke其他组件沟通数据,这些功能对一个一般用户而言已经足够了。ACCeSS能够存取AccessZJetMicrosoftSQ1.Server>Oracle,或者任何ODBC兼容数据库内的资料。娴熟的软件设计师和资料分析师利用它来开发应用软件。2.4 设计所用到技术简介本设计采纳了MiCroSOftVisualBasic6.0作为开发工具,在连接数据库的时候采纳了VB里的ADo方法进行了连接数据库和对数据库操作。后台数据库采纳了ACCeSS2000,以下对ADe)和ACCeSS进行技术的简介:ActiveXDataObjects(ADO)是微软最新的数据访问技术。它被设计用来同新的数据访问层O1.EDBProVider一起协同工作,以供应通用数据访问(UniversalDataAccess)<>O1.EDB是一个低层的数据访问接口,用它可以访问各种数据源,包括传统的关系型数据库,以及电子邮件系统及自定义的商业对象。ADe)向我们供应了一个熟识的,高层的对O1.EDB的AUtomation封装接口。对那些熟识RDC)的程序员来说,你可以把O1.EDB比作是ODBC驱动程序。犹如RDe)对象是ODBC驱动程序接口一样,ADO对象是O1.EDB的接口;犹如不同的数据库系统须要它们自己的ODBC驱动程序一样,不同的数据源要求它们自己的O1.EDB供应者(O1.EDBprovider)o目前,虽然O1.EDB供应者比较少,但微软正主动推广该技术,并准备用O1.EDB取代ODBC。ADo向VB程序员供应了很多好处。包括易于运用,熟识的界面,高速度以及较低的内存占用(已实现ADO2.0的MSadOl5.dll须要占用342K内存,比RDe)的MSrdo20.dll的368K略小,大约是DAo3.5的Dao350.dll所占内存的60%)。同传统的数据对象层次(DAO和RDo)不同,ADO可以独立创建。因此你可以只创建一个“ConneCtiOn”对象,但是可以有多个,独立的“ReCordSet”对象来运用它。ADe)针对客户/服务器以及WEB应用程序作了优化.以前的对象模型,如DAe)和RDO是层次型的。也就是说一个较低的数据对象如ReCordSet是几个较高层次的对象,如EnVirOnment和QUeryDef,的子对象。在创建一个QUeryDefX寸象的实例之前,你不能创建DAoReCordSet对象的实例。但ADO却不同,它定义了一组平面型顶级对象.最重要的三个ADO对象是Connection,Recordset和Command.本文将主要介绍ConneCtiOn和ReCordSet这两个对象。每个ConneCtiOn的属性定义了与数据源的连接。ReCordSet对象接收来自数据源的数据。ReCOrdSet可以与CormeCtion一起起运用,先建立一个连接,然后获得数据。尽管如此,ReCOrdSet也可以被单独创建,其COnneCtion参数可以在OPen属性定义。一旦安装了ADO,在VB的工程,引用对话框中选择"ActiveXDataObjects1.51.ibrary"(ADODB).在其下的“AD0Recordset1.51.ibrary”是一个客户端的版本(ADoR),它定义了有聚的数据访问对象。ADOR对于客户端的数据访问来说是足够的了,因为你不须要ConneCtiOn对象来建立与远程数据源的联系。假如你想要访问更多的外部数据源,你须要安装这些外部数据源自己的O1.EDBProvider,就象你须要为新的数据库系统安装新的ODBC驱动程序一样。假如该外部数据源没有自己的O1.EDBPrOVider,你就得运用O1.EDBSDK来自己为这个外部数据源创建一个O1.EDBProviderT。3系统需求分析与总体框架3.1 需求分析随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻相识,它已进入人类社会的各个领域并发挥着越来越重要的作用。计算机作为一种高效的管理工具,对现代企业的管理发挥了极其重要的作用。超市是当前最重要的商业经营形式之一,为了进一步提超群市的管理水平和竞争力,管理信息系统在超市中的应用已是大势所趋。传统的计算机管理在超市流程中的数据处理比较繁琐、效率低、易出错,这就制约了企业的发展。因此企业利用成熟的管理思想和先进的信息技术来提高管理水平和经济效益就显得尤为重要。基于先进的计算机技术开发的超市管理信息系统可以帮助超市变更落后的经营模式,并且可以使管理层刚好、合理地进行管理和决策。因此设计开发的超市管理信息系统应顺应社会发展的潮流。作为计算机应用的一部分,运用计算机对超市的信息进行管理,具有着手工管理所无法比拟的优点.例如:检索快速、查找便利、牢靠性高、存储量大、保密性好、寿命长、成本低等。3.2 系统的体系结构设计假如要完成一个完整的超市管理系统,须要的相关信息很多。由于种种条件的限制,同时考虑到开发成本,所以本系统仅实现基本的管理功能。本毕业设计为超市管理信息系统,本管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一样性和完整性强、数据平安性好的库。而对于后者则要求应用程序功能完备,易运用等特点。超市管理信息系统经过系统的分析后,将整个系统分成7大模块,分别为系统管理模块、用户管理模块、商品信息模块、商品库存信息模块、会员信息模块、数据管理模块以及销售信息模块。系统设置模块:设置本系统将要显示的内容及注销用户功能。用户管理模块:完成供应商信息、员工信息及权限设置和会员的添加和修改。商品信息模块:完成商品的添加删除与修改。商品库存信息模块:完成商品的入库出库和库存查询。数据管理模块:备份、还原数据库。销售管理模块:实现商品销售和销售统计两项功能。系统的体系结构图如下图3-1所示:超市管理系统图3-1系统各功能模块设计4系统设计4.1数据库设计本超市销售管理系统为实现超市进、销、存三大关键环节,需建立商品信息表、商品销售表、库存表。其中商品信息包括商品编号、商品名称、商品价格、会员价格、商品类型、进货价格、包装率。商品销售信息包括商品编号、商品名称、销售日期、销售数量。库存信息包括商品编号、商品名称、库存数量。另外本系统考虑了对供应商,员工,会员三类人员的管理。需建立供应商、员工表、会员表。系统总体E-R图作为Microsoft公司的桌面数据库,ACCESS在VB中的应用特别广泛,为此我选用ACCESS数据库来进行数据库的逻辑设计。依据前面定义的实体及实休之间的关系,形成数据库的表格以及各个表之间的关系。本软件的数据库用VB的“可视化数据管理器”新建一个名称为“supermarket.mdb”的数据库,该数据库主要由下述七张表构成:管理员表:admin;员工档案表:employee;供应商信息表:ProVider;商品信息表merchandise;会员注册信息表member;商品销售表distribution;商品库存表Stockpileo1.超市管理员表:admin说明:超市管理的信息情,管理员ID设为主键、索引。表4-1管理员表列名数据类型长度可否为空注释ID文本50NotNull帐号pswd文本50NotNull密码popedom文本50NotNull权限2.超市员工档案表employee说明:此表记录了每个超市员工的信息状况,员工编号WOrkid设为主键、索引。表4-2超市员工档案表列名数据类型长度可否为空注释workid文本50NotNull员工编号name文本50NotNull员工姓名sex文本50NotNull员工性别duty文本50NotNull信息添加日期3.超市供应商信息表provider说明:此表记录是供货商品给超市的每一个供应商的信息表,供应商编号merchandiseid设为主键。表4-3超市供应商信息表列名数据类型长度可否为空注释merchandiseid文本50NotNull供应商编号providername文本50NotNull供应商名称providertel数字长整型NotNull供应商电话provideraddess文本50NotNull供应商地址4.超市商品信息表merchandise说明:此表记录是超市商品的信息表,供应商编号面上merchandiseid设为主键。表4-4超市商品信息表列名数据类型长度可否为空注释merchandiseid文本50NotNull商品编号mname文本50NotNull商品名称number数字长整型NotNull商品电话saleprice货币50NotNull商品价格memberprice货币货币NotNull会员价格purchaseprice货币货币NotNull进货价格casingratio数字长整型NotNull包装率mchtype文本50NotNull商品类别5.会员注册信息表member说明:此表是在超市里已注册会员的信息的表,会员的编号memberid设为主键。表4-5会员注册信息表列名数据类型长度可否为空注释memberid文本50NotNull会员编号mname文本50NotNull会员名称mtel数字长整型NotNull商品电话maddress文本50NotNull会员地址integral数字长整型NotNull会员电话6.商品销售表distribution说明:此表是在超市销售商品记录信息的表,出售商品的编号dbid设为主键。表4-6商品销售表列名数据类型长度可否为空注释dbid自动编号自动编号NotNull出售编号merchid文本50NotNull商品编号mchname文本50NotNull商品名称dnumber数字长整型NotNull销售数量date日期/时间日期/时间NotNull销售日期7.商品库存表stockpile说明:此表是在超市商品库存信息表,商品的编号merchid设为主键。表4-7商品库存表列名数据类型长度可否为空注释merchid文本50NotNull商品编号mchname文本50NotNull商品名称number数字长整型NotNull库存数量4.2数据字典数据流条目(1)销售信息=商品编号+商品名称+商品数量+出售日期(2)添加商品信息=商品编号+商品名称+商品数量+销售价格+商品会员价+商品种类+商品进价+包装率(3)库存信息=商品编号+商品名称+商品数量(4)供应商信息二供应商编号+供应商姓名+供应商电话+供应商地址(5)员工信息=员工编号+员工姓名+员工性别+员工职务文件条目(1)文件名:商品清单组成:商品编号+商品名称+商品数量+商品价格+商品会员价+进货价格+包装率+商品种类组织:按商品编号递增排列(2)文件名:供应商清单组成供应商编号+供应商姓名+供应商电话+供应商地址组织:按供应商编号递增排列(3)文件名:员工清单组成员工编号+员工姓名+员工性别+员工职务+员工权限组织:按员工编号递增排列(4)文件名:库存清单组成商品编号+商品名称+商品数量组织:按商品编号递增排列5系统功能的具体设计5.1组件的公共模块在工程中添加一个模块,命名为“Modulel”,此模块有两个功能:(1)用来连接数据库及相关的初始化操作。(2)存放在对数据库的操作过程中可能用到的一些公共函数。添加全局变量:SubMain()过程组件启动入口手动加入SUbMain()过程,这个就是在“工程属性”中指定的启动对象。这个过程完成ACtiVeXD1.1.的初始化工作。在这个过程中假如对OPendb()的默认设置,并打开数据库连接。在SUbMain中的OPendb()函数,功能是用来连接到数据库。opendb()函数一与数据库建立连接。功能:返回值:Boolean类型,TnIe表示胜利,FalSe表示失败。search()函数一'执行查询语句。功能:通过查询语句,从数据库中得到一个结果集。具体代码如下所示:OptionExplicitPublicconAsNewADODB.ConnectionDimrsAsADODB.RecordsetPublicHYSZAsString'会员功能设置PublicRoundSZAsString'四舍五入功能设置PublicSubopendbO'数据库连接con.ConnectionString="Provider=Microsoft.JetQ1.EDB.4.0;DataSource='*&App.Path&'supermarket.MDB;PersistSecurityInfo=Falseucon.Cursor1.ocation=adUseClientcon.OpenEndSubPublicSubmain()Frmd1.ShowEndSubPublicFunctionsearch(sqlAsString)执行查询语句OnErrorResumeNextSetrs=NewADODB.Recordsetrs.ActiveConnection=conrs.CursorType=adOpenKeysetrs.Source=sqlrs.1.ockType=ad1.ockOptimisticrs.0penSetsearch=rsEndFunction5.2 登陆窗口Frmdl进入登陆界面后,首先输入账号和密码,系统打开管理员表''admin”表进行查询,若找到与输入的账号和密码相同的记录,则会弹出程序主窗口,表示登陆胜利。否则系统会提示账号程序主窗口,表示登陆胜利。否则系统会提示账号和密码错误信息。要求重新登陆。登陆流程如下图5-1所示:图5-1登录窗口流程图Ifrs.RecordCount>0Then'推断是否有数据Ifrs.Fields(,pswd").Value=txtpasw.TextThen'推断密码是否正确Ifrs.Fields(',popedom").Value="all"Then'推断用户的权限MDIFrmMain.munsystem.Enabled=TrueElseMDIFrmMain.munsystem.Enabled=FalseEndIfMDIFrmMain.ShowUnloadMeElseMSgBOX密码错误!txtpasw.Text=,t,txtpasw.SetFocusExitSubEndIf说明:进入登陆界面后,首先输入账号和密码,系统打开数据库表“admin”表进行判定。假如找到与输入的账号和密码相同的记录,则弹出程序主窗口,即登陆胜利。判定用户权限时,假如该用户的权限值等于“all”就会把菜单的值设为“true”。否则就会设为“false”,这样菜单其他功能就不能选择。然后就会过MDlFrmMain.Show弹出程序主窗口,Unk)adMe关闭当前窗口。假如密码不正确,会弹出“密码错误”提示。5.3 销售管理功能的实现销售管理功能包括商品销售和销售统计功能。销售商品时,首先输入商品编号,系统打开商品表,查找该编号的商品是否存在。若存在,则显示商品名称和价格。判定购买数量是否小于或等于库存数量,若库存中数量不足,则系统会提示库存中的剩余数量,否则,还将会对实收现金是否为空进行判定,若不为空,则进入下一判定,若实收现金大于或等于应收现金,则系统提示找零数额。若小于应收现金,系统则会提示钱没收够。销售统计将干脆列出销售清单。流程图如下图5-2所示:输入商品编号就可以自动得到商品名称和商品价格的实现代码如下:sqlstr="select*frommerchandisewheremerchandiseid=11'&TxtMCHId.Text&'n11Setrs=search(sqlstr)Ifrs.RecordCount<>0ThenTxtMCHName.Text=rs.Fields(,mname").ValueTxtMCHSRText=rs.Fields(nsalepricen).Value图5-2销售功能流程图5.4 供应商添加FrmProvider添加供应商信息时,首先判定供应商编号是否为空和重复,再判定供应商姓名是否为空,供应商的电话是否为空和数字,最终判定供应商地址是否为空。若为空或重复,则给出提示信息,并要求重新输入,否则打开供应商表,将表指针移到最终一条记录,可添加一条新纪录,然后关闭供应商标,即实现了供应商信息的添加。改流程图如下图5-3所示:图5-3供应商添加流程图从数据库检查供应商编号是否存在实现的代码如下:sqlstr="select*fromproviderwheremerchandiseid='11&TxtMCHId.Text&',h,Setrs=search(sqlstr)Ifrs.RecordCount<>0ThenMsgBox重复的供应商编号供应商数据表(ProVider)读取字段等于“供应商编号”文本框的全部信息,赋值给一个变量“sqlstr",通过search(sqlstr)传参到已在模块定义好的查询语句进行查询。假如在供应商数据表(PrOVider)已存在该“供应商编号”返回值为1,假如不存在返回值为0。通过IF推断语句推断假如返回行数不等于0则会弹出“重复的供应商编号”提示。5.5 供应商查询及删除FrmPSeI查询时,将依据条件干脆列出符合条件的供应商清单。从数据库检查供应商编号是否存在实现的代码如下:sqlstr="select*fromproviderwheremerchandiseid=""&TxtMCHld.Text&,nSetrs=search(sqlstr)Ifrs.RecordCount<>0ThenMsgBox重复的供应商编号”查询供应商信息时,首先打开供应商表,从供应商数据表(ProVider)读取字段等于“供应商编号”文本框的全部信息,赋值给一个变量“sqlstr”,通过search(sqlstr)传参到已在模块定义好的查询语句进行查询。假如在供应商数据表(PrOVider)已存在该“供应商编号”返回值为1.假如不存在返回值为0。假如该供应商没有给超市供应商品了,管理员可以把该供应商删除。删除功能实现的代码如下:IfMSgBoX(确定删除此供应商么?,VbOKCancel)=vbOKThenrs.Deleters.MoveFirstMsgBox删除胜利EndIfrs.MoveFirst方法将当前记录位置移动到Recordset中的第一个记录。并提示删除胜利信息。假如选择“取消”就不会进行删除操作。5.6 员工信息的添加FrmEmpIoyee员工信息添加时,首先会判定员工编号是否为空,然后判定员工编号是否重复,再则判定员工姓名是否为空,最终判定员工职务是否为空。若为空或编号重复,则赐予相应提示并返回。否则打开员工信息表,并将记录指针移到最终一条记录,添加一条新记录,然后关闭员工信息表,即实现了员工信息的添加。流程图如下图5-4所示:图5-4员工添加流程图员工职务可以为员工档案添加时选择不同的职务,下拉选项框COmboBOX,通过该下拉框的1.ist属性可以把该超市的选用到的员工职务事先添加进去,这样可以实现下拉框多重选择。输入员工信任息后通过“确定”选项,就可以把员工档案添加胜利。实现代码如下:sqlstr=uINSERTINTOemployeeValues