资源描述
毕 业 论 文(设计)题 目 基于VB的超市进销存管理系统的开发 指导老师 ndsz06jy2sl 专业年级 计算机应用技术 姓 名 ndsz06jy2sl 学 号 20052011124 2008年 6 月 1 日浙江经贸职业技术学院论文(设计)摘 要:此设计首先分析了进销存管理系统在信息时代中的重要作用,随后针对经济和科技等诸多因素进行分析。对实现此系统的技术、经济和管理可行性做了深入分析。最后总体介绍了超市进销存管理所包括的基本功能模块,并详细阐述了其主要功能、设计思路及实现方法。超市进销存管理系统主要包括入库、出库、退货、订货、超市统计查询等等。这六部分,分别实现了搜索任意商品;对商品设定价格、库存量、报警数量、进货计划数、是否允许打折。还可以进行打印报表,包括计划进货表、本月本季本年的销售报表等功能。 关键词:Visual Basic;Access数据库;管理系统 目 录 引言11系统概述22需求分析42.1系统功能分析42.2 系统性能分析42.3 系统功能模块设计52.4技术可行性分析62.5系统流程图63 设计74数据库设计104.1 数据库需求分析104.2 数据库概念结构设计104.3 数据库逻辑结构设计104.4 数据库的生成与配置144.5 创建应用程序结构145详细设计145.1开发业务逻辑处理组件145.1.1 信息管理类加集合类的设计思想155.1.2 商品类型信息管理模块155.1.3商品信息管理模块165.1.4 供货商信息管理模块185.1.5 进货信息管理模块195.1.6 销售信息管理模块215.1.7 报损信息管理模块215.1.8 管理员信息管理模块225.2 开发基本界面组件235.2.1信息输入界面加操作类的设计思想235.3界面端应用程序设计255.3.1 公共模块的设计255.3.2用户登入模块的设计255.3.3系统主界面的设计275.3.4 添加主界面模块285.3.5 用户管理模块315.3.6经营分析模块326 测试分析356.1 强制变量声明356.2 常见错误的避免35总结36参考文献37第38页引言目前,无论是公司还是企业对于货物都实行了信息化管理,以提高管理水平和工作效率,同时也可以最大限度地减少手工操作带来的错误。于是,进销存管理信息系统便应运而生。在工厂中,产品的进销存涉及产品原料的采购、库存、投入生产、报损,甚至有时涉及到销售,同时,对于产品也有相应的生产、库存、销售、和报损等环节。在其他非生产性单位,如超市、商店等,则主要涉及到进货、库存、销售和报损4个方面。超市进销存管理的对象是很多的,广而言之,它可以包括:商业、企业超市的商品,图书馆超市的图书,博物馆超市的展品等等。在这里本文仅涉及工业企业的产品超市。超市进销存管理系统按分类、分级的模式对仓库进行全面的管理和监控,缩短了超市信息流转时间,使企业的物资管理层次分明、井然有序,为采购、销售提供依据;智能化的预警功能可自动提示存货的短缺、超储等异常状况;系统还可进行材料超市ABC分类汇总,减少资金积压。完善的超市管理功能,可对企业的存货进行全面的控制和管理,降低超市成本,增强企业的市场竞争力。在设计一个系统时,首先要做好需求分析。合理地运用好Visual Basic的基本方法,建立一个适合企业或公司的进销存管理系统。1系统概述超市进销存管理系统按分类、分级的模式对仓库进行全面的管理和监控,缩短了超市信息流转时间,使企业的物资管理层次分明、井然有序,为采购、销售提供依据;智能化的预警功能可自动提示存货的短缺、超储等异常状况;系统还可进行材料超市ABC分类汇总,减少资金积压。完善的超市管理功能,可对企业的存货进行全面的控制和管理,降低超市成本,增强企业的市场竞争力。超市进销存管理系统研究的内容涉及超市进销存管理的全过程,包括入库、出库、退货、订货、超市统计查询等等。根据工作流程,超市进销存管理系统将包含以下内容:(1) 能对企业内的各类货物进行ABC分类管理,并提供最低超市量、最高超市量、安全超市量的预警功能。(2) 可以存储各类信息档案包括物资、产品基本信息、供货单位信息、使用单位信息等。(3) 可以方便快捷的进行物资入库管理物资出库管理等等,安全、高效;支持各种类型的出/入库业务:生产入库、委外加工入库、采购入库、其他入库、生产领料出库、委外领料出库、销售出库和其他出库等(4) 提供退货管理功能(5) 通过查询超市,及时了解超市余额信息,便于订货下单,以免由于缺货,影响生产。另外,还提供经济订货量计算功能和打印订货采购单功能。(6) 支持超市盘点功能,可按仓库、物料进行盘点,自动汇总盘点数据,及时生成盘赢亏调整单(7) 可及时打印超市余额,方便领导决策或安排及时定货.开发环境:VB是微软公司出品的一个快速可视化程序开发工具软件,借助微软在操作系统和办公软件的垄断地位,VB在短短的几年内风靡全球。VB是极有特色和功能强大的软件,主要表现在:所见即所得的界面设计,基于对象的设计方法,极短的软件开发周期,较易维护的生成代码。美国微软公司在1991年推出VB1.0至今已经经历了6个版本,VB6.0运行在Win9x或Winme,Win2000,Winxp,WindowsNT等操作系统下,是一个32位的应用程序开发工具。Access2000 就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。Access 的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于 Excel 的电子表格,可以使数据库一目了然。另外,Access 允许创建自定义报表用于打印或输出数据库中的信息。Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。Access 是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。如上所述,Access 作为关系数据库开发具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。2需求分析2.1系统功能分析(1)基本信息的维护商品类型的建立与维护,包括商品类型的新建、修改和删除等。商品基本信息管理:包括商品基本信息的新建、修改和删除等。供货商信息管理:包括供货商信息的新建、修改和删除等。管理员信息管理:系统管理员的添加、删除和修改密码等。(2)进货管理商品进货信息管理:商品进货信息包括商品进货数量、单价、供货商等。商品进货管理功能完成进货信息登记、修改和删除等。分类查看:可以根据商品类型来查看某种商品的进货情况。更新库存:进货信息的变动直接关系到库存的变化。进货分析:列出当前进货量最多的前几项商品和进货量最少的前几项商品。库存分析:列出当前库存量最多的前几项商品和库存量最少的前几项商品。(3)销售管理商品销售信息管理:商品销售信息包括商品销售数量、单价、统计日期等。商品销售管理功能完成销售信息登记、修改和删除等。分类查看:可以根据商品类型来查看某种商品的销售情况。更新库存:销售信息的变动直接关系到库存的变化。销售分析:列出当前销售量最多的前几项商品和销售量最少的前几项商品。(4)报损管理商品报损信息管理:商品报损信息包括商品报损数量、报损原因等。商品报损管理功能完成报损信息登记、修改和删除等。分类查看:可以根据商品类型来查看某种商品的报损情况。更新库存:报损信息的变动同样直接关系到库存的变化。报损分析:列出当前报损量最多的前几项商品和报损量最少的前几项商品。2.2 系统性能分析(1)多层结构设计严格意义上的三层结构设计,其程序逻辑结构分为用户界面层、业务逻辑处理层和数据存储层。本系统采用的上有三层结构进一步扩展而成的多层结构。(2)面向对象设计在系统中将商品类型、商品等都封装成相应的类,同时每个类都有自己对应的集合类和操作类,从而再次提高了对数据库操作的安全性和程序的可扩展性。(3)指导经营的功能进销存管理系统并不仅仅能代替传统的书面操作,更重要的是它提供了信息分析的功能,只要单击一个按钮就可以查到目前销售最好的商品或是库存最多的商品,从而起到指导经营的作用。2.3 系统功能模块设计按结构化程序设计思想,分析得本系统有以下几大部分如下系统功能模块图:有管理员登录,商品管理模块,供货商,商品进货,销售管理,报损管理,销售分析等。超市进销存管理系统商品类型管理系统商品管理模块供货商管理模块商品进货管理模块商品销售管理模块销售分析模块用户管理模块操作员登入模块添加商品类型修改商品类型删除商品类型添加商品信息修改商品信息删除商品信息登记进货信息修改进货信息删除进货信息添加供货商修改供货商删除供货商登记销售表修改销售记录删除销售信息商品报损管理模块登记报损信息修改报损记录删除报损记录图2.1系统功能模块图2.4技术可行性分析本系统是一个典型的数据库应用程序。现有的数据库应用程序开发技术已非常成熟,利用现有技术完全可以实现预定的功能。Visual Basic语言简单、功能强大并容易掌握,而Access是一个非常优秀的小型数据库管理软件,方便使用,性能稳定。于是,采用 Visual Basic+Acess技术完全能够实现本系统的开发。本系统在使用上比较方便、简单;界面设计上美观大方;后期维护上比较容易,如要对功能模块方面作修改,则无需进行整个系统的重新架构2.5系统流程图超市管理系统的基本流程入库:供货单位发货-运输-货物到达后测试检验-送货单-库管人员查收入库-入库单处理各种入库业务,如:工业企业的生产入库、委外加工入库、其他入库等入库业务;按入库类型可以分别在不同模块录入入库单据信息。出库:超市统计表-各使用单位-领料单-库管人员出库-出库单处理各种出库业务,如:工业企业的生产领料、委外领料、其他出库等出库业务;按出库类型可以分别在不同模块录入出库单据信息。退货:产品不合格通知书-各使用单位-领料单存根-库管人员退货-退货单订货:超市进销存管理部门向采购部门发出采购单-采购部门向供应单位传递订货单-供应单位组织发货-运输-货物到达后测试检验-入库盘点:备份超市数据,打印盘点表,可按仓库、批次进行盘点,并根据盘点表生成盘盈、盘亏表,调整超市账。盘点的功能是检查仓库现有超市量与帐面数量是否一致。若盘点结果是仓库现有超市量大于帐面数量,则盘盈;若盘点结果是仓库现有超市量小于帐面数量,则盘亏。无论是盘盈还是盘亏,它们的差异量都记录在盘点调整单。如图2.2供货单位管理物资登记使用单位管理基本信息录入基本信息管理物资调配入库管理出库管理退货管理订货管理超市盘点图2.2 系统流程图3 设计超市进销存管理系统研究的内容涉及超市进销存管理的全过程,包括入库、出库、退货、订货、超市统计查询等等。超市进销存管理系统将包含以下内容:(1)能对企业内的各类货物进行ABC分类管理,并提供最低超市量、最高超市量、安全超市量的预警功能。(2)可以存储各类信息档案包括物资、产品基本信息、供货单位信息、使用单位信息等。(3)可以方便快捷的进行物资入库管理物资出库管理等等,安全、高效;支持各种类型的出/入库业务:生产入库、委外加工入库、采购入库、其他入库、生产领料出库、委外领料出库、销售出库和其他出库等(4)提供退货管理功能(5)通过查询超市,及时了解超市余额信息,便于订货下单,以免由于缺货,影响生产。另外,还提供经济订货量计算功能和打印订货采购单功能。(6)支持超市盘点功能,可按仓库、物料进行盘点,自动汇总盘点数据,及时生成盘赢亏调整单。(7) 可及时打印超市余额,方便领导决策或安排及时定货看。如下图3.1主窗体系统登入退出登入成功失败商品类型管理商品管理商品进货管理商品销售管理商品报损管理供货商管理添加商品类型修改商品类型删除商品类型添加商品删除商品登记进货商品删除进货商品登记销售商品修改进货商品登记报损商品修改报损商品修改销售商品添加供货商删除供货商删除报损商品删除销售商品修改供货商修改商品图3.1 系统功能模块图4数据库设计4.1 数据库需求分析(1)针对超市进销存管理系统,分别对采购部门、销售部门和库存保管部门进行详细的调研和分析,总结出如下的需求信息:商品按类管理,所以需要有一商品类型信息。商品必须属于一个商品类型。如果一个商品类型存在商品,或存在下级商品类型,则该类型不可删除。需要记录供应商品信息。在涉及商品数量的地方,要给出相应的单位。商品销售信息单中要包含登记商品销售数量、单价等信息。在进货信息中要包含商品供应商等信息。商品报损要有报损原因。进货、销售、报损操作要有相应操作员信息。只有管理员登录之后才可以使用系统。默认的管理员不可以删除。进货、销售、库存、报损信息都要可以添加、修改、删除、分类查找。当进行进货、销售和报损操作后,能相应更新库存。需要对进货、销售、库存、报损进行分析,总结热门商品。(2)经上述系统功能分析和需求总结,考虑到将来功能的扩展,设计如下的数据项和数据结构:商品类型信息,包括数据项有:商品类型编号、商品类型名称等。商品信息,包括的数据项有:商品编号、商品名称、商品介绍、库存量等。商品单位信息,包括单位编号、单位名称等。供应商信息,包括供应商名称、介绍等。进货信息,包括进货商品、数量、单位、单价、进货时间经手人等。销售信息,包括销售商品、数量、单位、单价、登记时间等。报损信息,包括报损商品、数量、单位、原因、登记时间等。管理员信息,包括管理员账号、密码、是否是默认账号等。4.2 数据库概念结构设计本系统根据以上的设计规划出的实体有:商品类型信息实体、商品信息实体、商品单位信息实体、供应商信息实体、进货信息实体、销售信息实体、报损信息实体和管理员信息实体。4.3 数据库逻辑结构设计首先将罪犯管理信息系统的数据库概念结构转化为Access数据库或SQL Server 2000数据库系统所支持的实际数据模型,即:数据库的逻辑结构。其各个表格的设计 表4.1商品类型信息表(MerchandiseType)列名数据类型字段大小必填字段默认值说明MT_ID_N自动编号长整型是商品类型号,递增,主键MT_Name_S文本15是商品类型名MT_RemarkR备注是备注表4.2:商品信息表(Merchandise)列名数据类型字段大小必填字段默认值说明M_Id_N自动编号长整型是商品编号,递增,主键M_Name_S文本80是商品名称M_Introduce_S文本255是商品介绍M_TypeId_N数字长整型是1商品类型IDM_Storage_N数字长整型是0库存量M_UnitId_N数字长整型是1单位编号M_Remark_R备注是备注表4.3:商品单位信息表(Unit)列名数据类型字段大小必填字段默认值说明U_ID_N自动编号长整型是单位编号,递增,主健 U_NAME_S文本10是单位名称表4.4:供应商信息表(Provider)列名数据类型字段大小必填字段默认值说明P_Id_N自动编号长整型是供货商编号,主健P_Name_S文本50是供货商名称P_Introduce_S文本255是供货商简介P_Remark_R备注是备注表4.5:进货信息表(Buy)列名数据类型字段大小必填字段默认值说明B_ID_N自动编号长整型是进货ID,递增,主健B_ProviderId_N文本长整型是供应商IDB_MerchandiseId_N数学长整型是商品IDB_StockDate_D日期短日期是Dare()进货时间B_Deliver_S文本20是送货人姓名B_Consignee_S文本20是经手人姓名B_Count_N数字长整型是0购入量B_StockPrice_N数字单精度型是0进货单价B_OperatorId_S文本20是操作员IDB_Remark_R备注是备注表4.6:销售信息表(Sell)列名数据类型字段大小必填字段默认值说明S_ID_N自动编号长整型是销售编号,递增,主键S_MerchandiseID_D数字长整型是商品IDS_RegDate_D日期短日期是Date()登记日期S_Count_N数字长整型是0售出数量S_SellPrice_N数字单精度型是0卖出单价S_OperatorId_S文本20是操作员IDS_Remark_R备注是备注表4.7:报损信息表(Dispose)列名数据类型字段大小必填字段默认值说明D_ID_N自动编号长整型是报损编号,递增,主键D_MerchandiseID_N数字长整型是商品IDD_RegDate_D日期短日期是Date()登记日期D_Count_N数字长整型是0报损数量D_Reason_S文本255是报损原因D_Operatorld_S文本20是操作员IDD_Remark_R备注是备注表4.8:管理员信息实体(Admins)列名数据类型字段大小必填字段默认值说明A_Account_S文本20是账号,主键A_Pwd_S文本20是密码A_IsDefault_B是/否是False是否是默认用户4.4 数据库的生成与配置经过以上的需求分析和概念结构设计以后,得到数据库的逻辑结构。现在就可以在Access数据库中创建表了。4.5 创建应用程序结构(1)创建用户界面端程序VB中选择文件-新建工程,打开,选择VB应用程序向导。设置后将向导生成的模块命名mdlMain保存与文件夹Merchandise中。(2)创建业务逻辑处理组件新建ActiveX DLL工程-设置工程属性-加入对ADO的引用。(3)创建基本界面组件新建ActiveX DLL工程-设置工程属性-加入对业务逻辑组件的引用。(4)在界面端程序中使用组件在工程资源管理器中选中工程Merchandise,选择菜单工程-引用命令。打开引用对话框,在可用的引用列表中选择BuySellStorageUI和BuySellStorageDB。5详细设计5.1开发业务逻辑处理组件进销存业务处理组件用来处理进销存管理系统中的业务逻辑,既负责与界面进行数据传递,同时也要将界面端的请求应用业务逻辑之后对数据库进行操作。它包含以下功能:商品类型信息管理,对应clsMType类和clsMTypes类。商品信息管理,对应clsMerchandise类和clsMerchandises类。供应商信息管理,对应ClsProvider类和ClsProviders类。进货信息管理,对应clsBuy类和clsBuys类. 销售信息管理,对应clsSell类和clsSells类。报损信息管理,对应clsDispose类和clsDisposes类。管理员信息管理,对应clsAdmini类和clsAdminis类。5.1.1 信息管理类加集合类的设计思想在本组件中,每一个模块的设计都是由这个模块的信息管理类加与之对应的集合类求实现的。具体完成的功能如下:在信息管理类:实现与单个信息相关的操作,包括添加、修改和删除。在信息管理集合类:实现与多个信息先观的操作,主要是根据不用的条件查找。因此,每个模块在设计上都是独立的,除非它在逻辑上有不可分割的关系,如进货信息的操作,与商品库存直接挂钩,将进货信息表的操作与商品表的操作放入到一个事务中,这样来确保数据的安全性与一致性。5.1.2 商品类型信息管理模块商品类型信息管理模块的功能需要由clsMType和clsMTypes两个类来实现,它的主要功能是:添加商品类型信息。修改商品类型信息。删除商品类型信息。查找商品类型信息。其他与商品类型相关的常用操作。(1)商品类型信息管理类clsMType创建clsMType类并添加属性商品类型信息类clsMType用来处理单个商品类型的信息,实现商品类型操作的基本功能,如添加、修改、删除等。选择菜单工程添加类模块命令,打开“添加类模块”对话框,选择“VB类生成器”,使用类生成器向工程中添加clsMType类,基于下拉列表框中选择clsDBbase。如下表所示。表5.1属性名称数据类型属性声明IDLongGet/LetSuperIDLongGet/LetTypeNameStringGet/Let属性添加完毕并应用后,可以看到在clsMType类中已经自动添加了类的成员变量和属性。(2)AddNew方法功能:添加耽搁商品类型。参数设计:无。返回值:gxcAddNew类型请参考clsPublic类中gxcAddNew枚举类型的定义。(3)Update方法功能:修改商品类型。返回值:gxcUpdate类型,请参考clsPublic类中gxcUpdate枚举类型的定义。(4)Delete方法功能:删除商品类型。参数设计:可选参数lngID表示商品类型ID,默认为-1。返回值:gxcDelete类型,请参考clsPublic类中gxcDelete枚举类型的定义。商品类型信息管理集合类clsMTypes商品类型信息集合类clsMTypes用来处理多个商品类型的信息,其最小的单元是clsMType,它完成与一组商品类型信息相关的操作,比如查找功能。选择菜单工程添加类模块命令,打开“添加类模块”对话框,选择“VB类生成器”,使用类生成器在工程中添加一个集合类,命名为clsMTypes类,在“基于”下拉列表框中选择clsDBbases,在“集合组成”栏中选择clsMType类。应用设置后系统会自动生成一个标准集合类所具有的最基本属性与方法,另外也加入了clsDBbases中方法的定义。添加AddEx方法添加Find方法功能:根据给定参数查找商品类型,结果以clsMTypes类型返回。参数设计:一个可选的类型ID,默认值为-1。返回值:clsMTypes类型,一个clsMType的集合。省略参数时,返回全部商品类型。5.1.3商品信息管理模块商品信息管理模块的功能需要有clsMerch和clsMerchs两个类来实现,它的主要功能是:添加商品信息修改商品,信息删除商品信息查找商品信息,其他与商品信息相关的常用操作(1)商品信息管理类clsMerch创建clsMerch类并添加属性属性名称数据类型说明IDLong商品编号MerchNameString商品名称IntroduceInteger商品介绍TypeIdgxcSex商品类型IDStorageLong库存量UnitIDString单位编号RemarkString备注TypeNameString商品类型名称AddNew方法,功能:添加单个商品信息,参数设计:无。返回值:gxcAddNew类型,参考clsPublic类中gxcAddNew枚举类型的定义。Update方法,功能:修改商品信息。参数设计:无。返回值:gxcUpdate类型,请参考clsPublic类中gxcUpdate枚举类型的定义。Delete方法功能:删除商品信息。参数设计:可选参数lngID表示商品ID,默认为-1。返回值:gxcUpdate类型,请参考clsPublic类中gxcUpdate枚举类型的定义。商品信息管理集合类clsMerchs商品信息集合类clsMerchs用来具体处理多个商品的信息,其最小的单元是clsMerch,它完成与一组商品信息相关的操作,比如查找等。选择菜单工程添加类模块命令,打开“添加类模块”对话框,选择“VB类生成器”,使用类生成器在工程中添加一个集合类,命名为clsMerchs类,在“基于”下拉列表框中选择clsDBbases,在“集合组成”栏中选择clsMerch类。应用设置后系统会自动生成一个标准集合类所具有的最基本属性与方法,下面,为clsMerchs添加必要的方法。添加AddEx方法,添加Find方法功能:根据给定参数查找商品信息,结果以clsMerchs类型返回。参数设计:如下表5.2。返回值:clsMerchs类型,一个clsMerch的集合。显然当上面两个参数都不指定时,返回全部商品。表5.2 Find参数设计参数名参数类型功能是否可选及默认值说明lngIDLong传入商品ID可选,默认值=0如果取默认值,表示不限制商品IDlngTypeIdLong传入商品类型ID可选,默认值=0如果取默认值,表示不限制商品类型添加FindStorage方法功能:按库存量排序查找商品,结果以clsMerchs类型返回。参数设计:参见下表。返回值:clsMerchs类型,一个clsMerch的集合。表5.3 FindStorage方法参数设计参数名参数类型功能是否可选及默认值说明IsDescBoolean表示是否采用降序可选,默认值=true无nCountInteger最多显示多少条记录可选,默认值=10无5.1.4 供货商信息管理模块供货商信息管理模块的功能需要由clsProvider和clsProviders两个类来实现,它的主要功能是:添加供货商信息。修改供货商信息,删除供货商信息,查找供货商信息,其他与供货商信息相关的常用操作。供货商信息管理类clsProvider创建clsProvider类并添加属性供货商信息类clsProvider用来具体处理单条供货商信息,完成供货商信息的基本操作功能,如添加、修改、删除等。表5.4 clsProvider类的属性设置属性名称数据类型说明IDLong供货商编号ProviderNameString供货商名称IntroduceString供货商简介RemarkString备注AddNew方法,功能:添加单个供货商信息。参数设计:无。返回值:gxcAddNew类型,参考clsPublic类中的gxcAddNew枚举定义。 pdate方法,功能:修改供货商信息。参数设计:无。返回值:gxcUpdate类型,参考clsPublic类中的gxUpdate枚举类型的定义。Delete方法功能:删除供货商信息。参数设计:可选参数lngID表示供货商信息ID,默认为-1。返回值:gxcDelete类型,参考clsPublic类中gxcDelete枚举类型的定义。在删除供货商的同时,必须先删除与这个供货商相关的进货信息,而且要把这两个操作放在一个事务里面。供货商信息管理集合类ClsProviders供货商信息集合类clsProviders用来处理多条供货商信息,其最小的单元是clsProvider,它完成与一组供货商信息相关的操作,比如查找等。选择菜单工程添加类模块命令,打开“添加类模块”对话框,选择“VB类生成器”,使用类生成器在工程中添加一个集合类,命名为clsProviders类,在“集合组成”栏中选择clsProvider类。应用设置后系统会自动生成一个标准集合类所具有的最基本属性与方法,下面,为clsProviders添加必要的方法。添加AddEx方法,添加Find方法功能:根据给定参数查找供货商信息,结果以clsProviders类型返回。参数设计:一个可选的类型ID,默认值为-1。返回值:clsProviders类型,一个clsProvider的集合。省略参数是,返回全部供货商。5.1.5 进货信息管理模块进货信息管理模块的功能需要由clsBuy和clsBuys两个类实现,它的主要功能是:添加进货信息。修改进货信息。删除进货信息。查找进货信息。按商品统计分析进货信息。其他与进货信息相关的常用操作。进货信息管理类clsBuy表5.5 创建clsBuy类并添加属性属性名称数据类型说明IDLong进货IDProviderIdString供应商IDProviderNameString供应商名称MerchandiseIDLong商品IDMerchNameString商品名称StockDateDate进货时间DeliverString送货人姓名ConsigneeString经手人姓名CountLong购入量StockPriceSingle进货单价OperatorIdString操作员IDRemarkString备注TypeNameString商品类型名称StockTimesLong进货次数TotalPriceSingle总进货支出AddNew方法,功能:添加单条进货信息。参数设计:无。返回值:gxcAddNew类型,请参考clsPublic类中的gxcAddNew枚举定义。Update方法,功能:修改进货信息。参数设计:无。返回值:gxcUpdate类型,请参考clsPublic类中gxcUpdate枚举类型的定义。Delete方法,功能:删除进货信息。参数设计:可选参数lngID表示供货商信息ID,默认值为-1。返回值:gxcDelete类型,请参考clsPublic类中gxcDelete枚举类型的定义。进货信息管理集合类clsBuys,添加AddEx方法,添加Find方法功能:根据给定参数查找进货信息,结果以clsBuys类型返回。参数设计:两个可选参数,一个是进货编号,另一个是商品类型编号。 返回值:clsBuys类型,一个clsBuy的集合,省略参数时,返回全部进货。添加FindStorage方法功能:统计各种商品的进货次数和累计进货总支出,最后按进货总支出来排序,结果以clsBuys类型返回,最多返回前nCount条记录。表5.6 参数设计参数名参数类型功能是否可选及默认值说明IsDescBoolean表示是否采用降序可选,默认值=True无nCountInteger最多显示多少条记录可选,默认值=10无l 返回值:clsBuys类型,一个clsBuy的集合。5.1.6 销售信息管理模块销售信息管理模块的功能需要由clsSell和clsSells两个类实现,它的主要功能是:添加销售信息。修改销售信息。删除销售信息。查找销售信息。按商品统计分析销售信息。其他与销售信息相关的常用操作。销售信息类clsSell用来具体处理单条销售信息,完成销售信息的基本操作功能,如添加、修改、删除等。选择菜单工程添加类模块命令,打开“添加类模块”框,选择“VB类生成器”,使用类生成器在工程中添加clsSell类, 表5.1.7 销售信息类clsSell属性名称数据类型说明IDLong销售编号MerchandiseIDLong商品IDMerchNameString商品名称RegDateDate登记日期CountLong售出数量SellPriceSingle售出单价OperatorIdString操作员IDRemarkString备注TypeNameString商品类型名称RegTimeLong登记次数TotalPriceSingle售出总价clsASell类中的AddNew、Update和Delete方法,与进货信息中的处理很类似,只是数据库中的字段不同而已。5.1.7 报损信息管理模块报损信息管理模块的功能需要由clsDispose和clsDisposes两个类来实现,它的主要功能是:添加报损信息。修改报损信息。删除报损信息。查找报损信息,按商品统计分析报损信息。其他与报损信息相关的常用操作。报损信息类clsDispose用来具体处理单条报损信息,完成报损信息的基本操作功能,如添加、修改、删除等。选择菜单工程 添加类模块命令,打开“添加类模块”对话框,选择“VB类生成器”,使用类生成器在工程中添加clsDispose类,表5.7 报损信息类clsDispose属性名称数据类型说明IDLong报损编号MerchandiseIDLong商品IDMerchNameString商品名称RegDateDate登记日期CountLong报损数量ReasonSingle报损原因OperatorIdString操作员IDRemarkString备注RegTimesLong登记次数TotalCountLong报损总数量TypeNameString商品类型名clsDispose类中的AddNew、Update和Delete方法,与进货信息中的处理很类似,只是数据库中的字段不同而已。5.1.8 管理员信息管理模块管理员信息管理模块的功能需要由clsAdmin和clsAdmins两个类来实现,它的主要功能是:添加管理员信息。修改管理员信息。删除管理员信息。查找管理员信息。验证管理员密码。其他与管理员信息相关的常用操作。管理员信息类clsAdmin用来具体处理单条管理员信息,完成管理员信息的基本操作功能,如添加、修改、删除和验证密码等。选择菜单工程添加类模块命令,打开“添加类模块”对话框,选择“VB类生成器”,使用类生成器在工程中添加clsAdmin类,如下图所示。表5.8管理员信息类clsAdmin表属性名称数据类型说明AccountString管理员账号PwdString密码IsDefaultBoolean是否是默认用户clsAdmin中的AddNew、Update和Delete方法,与以上各类中的处理很类似,只是数据库中的字段不同而已。5.2 开发基本界面组件进销存管理系统基本界面组件用来处理进销存管理系统中与界面相关的操作,既负责与用户界面层进行数据传递,同时也要将界面端的请求传递给业务处理层,进一步转化为数据库操作。它包括以下功能:商品类型操作管理,对应frmMType窗体和clsOpMType类。商品操作管理,对应frmMerch窗体和clsOpMerch类。供货商操作管理,对应frmProvider窗体和clsOpProvider类。进货操作管理,对应frmBuy窗体和clsOpBuy类。销售操作管理,对应frmSell窗体和clsOpSell类。报损操作管理,对应clsDispose窗体和clsOpDispose类。管理员操作管理,对应frmUser窗体和clsOpAdmin类。5.2.1信息输入界面加操作类的设计思想(1)每个模块的组成在本组件中,每一个模块都是由信息输入界面与相应的操作类来实现的,具体完成的功能如下:信息输入界面:可供添加或修改时调用,用来获取用户输入,将用户输入封装到对应的信息管理类中。操作类:可供界面端程序调用,实现了两个功能:其一是用来调出信息输入界面,接收用户输入,将输入存入数据库,并给出数据库操作的结果;其二是通过传引用的方式,向用户界面端传入的控件添加数据,从而在用户截面端显示。(2)输入界面的代码结构为了方便维护和快速开发,每个界面的实现代码结构都很相似,大多都包括如下的方法:ShowDlg:用来显示对话框,内部调用Me.Show vbModal,程序停止在这里。SetStatus:设计对话框控件的默认状态。SetDefaultValue:设计对话框的默认值。OKButton_Click:确定按钮单击处理事件。CheckValid:检查用户输入有效性。SaveValue:保存用户输入。CancelButton_Click:取消按钮单击处理事件。当用户单击确定或取消按钮后,程序继续执行ShowDlg函数后面的语句,用来保存或放弃用户输入。(3)操作类的代码结构同样为了方便维护和快速开发,每个操作类的代码结构也都很相似,大多包括如下方法:Add:管理增加操作。Modify:管理修改操作。Delete:管理删除操作。AddToLvw:将单个对象加入列表,或在列表中更新。InitListview:设置ListView的显示样式。ObjsToListView:将对象集合显示到ListView中。FillListView:显示指定类型对象到列表控件。GetObjFromControl:从列表或树形图中得到一个对象。ObjsToCornbo:传入参数为对象的单向类与组合框。FillCombo:将全部对象加入到组合框中。(4)创建组件的公共模块为了将来扩展方便,这里加入一个公共模块,命名为mdlMain ,现在只添加一个空的Sub Main作为组件的初始化函数。(5)商品类型操作管理模块商品类型管理模块实现以下功能:处理添加商品类型的操作,处理修改商品类型的操作,处理删除商品类型的操作,处理列举或查找商品类型的操作。(6)商品操作管理模块商品操作管理模块实现以下的功能:处理添加商品的操作。处理修改商品的操作。处理删除商品的操作。处理分析商品库存量的操作。处理列举或查找商品的操作。(7)供货商操作管理模块供货商操作管理模块实现以下的功能:处理添加供货商的操作,处理修改供货商的操作,处理删除供货商的操作,处理列举或查找供货商的操作。(8)进货操作管理模块进货操作管理模块实现以下的功能:处理添加进货的操作,处理修改进货的操作,处理删除进货的操作,处理分析进货总支出的操作,处理列举或查找进货的操作。(9)销售操作管理模块销售操作管理模块实现以下的功能:处理添加销售的操作。处理修改销售的操作。处理删除销售的操作。处理分析销售总收入的操作。处理列举或查找销售的操作。(10)报损操作管理模块报损操作管理模块实现以下的功能:处理添加报损的操作。处理修改报损的操作。处理删除报损的操作。处理分析报损总数量的操作。处理列举或查找报损的操作。(11)管理员信息操作管理模块管理员信息操作管理模块实现以下的功能:处理添加管理员信息的操作。处理修改管理员信息的操作。处理删除管理员信息的操作。处理列举或查找管理员信息的操作。5.3界面端应用程序设计5.3.1 公共模块的设计在创建用户界面端应用程序时,向导已经为我们生成了一个名为mdlMain的模块,我们对这个模块稍微修改即可使用。添加成员变量,修改Main过程.5.3.2用户登入模块的设计用户登入对话框设计:当用户输入正确的用户名和密码,才可以登陆到系统密码错误就弹出提示,不能进入系统。 图5.1 用户登入界面设计图修改确定按钮的处理代码 Private Sub cmdOK_Click() ToDo: 创建测试密码是否正确 检查正确密码 Dim Account As String Dim Pwd As String Account = RealString(txtUserName.Text) Pwd = RealString(txtPassword.Text) 判断密码是否正确 If Not m_Admin.CheckPwd(Account, Pwd) Then m_nErrCount = m_nErrCount + 1 If m_nErrCount = 3 Then MsgBox 输入密码错误次数太多,请稍后重试, vbExclamation End End If MsgBox 密码错误,再试一次!还有 & 3 - m_nErrCount & 次机会,注意密码区分大小写, vbCritical, 登录 txtPassword.SetFocus txtPassword.SelStart = 0 txtPassword.SelLength = Len(txtPassword.Text) Else OK = True g_Account = Account Me.Hide End If End Sub5.3.3系统主界面的设计表5.9设计主窗体控件布局控件名称属性属性取消功能frmMainCaption进销存管理系统系统主窗体inlViewSIcon(ListView)ImageHeight16树形控件和列表框小图标所使用的图片ImageWidth16inlViewBIcon(ImageList)ImageHeigh32列表框大图标所使用的图片(未用:待扩展)ImageWidth32tvTreeView(TreeView)LineStyleTvwRootLines显示商品类型树ImageListinlViewSIcon sstabView(ListView)StyleO-ssStyleTabbedDialog右侧选项卡,做容器用TabOrientationO-ssTabOricntationToplvMerch(ListView)lvBuy(ListView)lvSell(ListView)lvDispose(ListView)lvProvider(ListView)FullRowSelectTrue分别用来显示商品商品信息列表进货信息列表销售信息列表报损信息列表供货商信息列表GridLinesTrueViewlvwRiportIconimlViewBIconSmallIconimlViewSIionl 设计选项卡sstabView给sstabView控件添加5个选项卡,选项卡标题分别设置为“商品库存”、“进货记录”、“销售记录”、“报损记录”和“供应商”,分别对应5个ListView。添加菜单5.3.4 添加主界面模块主界面设计:包括系统,视图,商品类型管理,进货管理,销售管理,报损管理,供货商管理,销售分析,帮助等等如图5.2 图5.2 主界面效果图其他代码Private Sub Form_Load() LoadResStrings Me Me.Left = GetSetting(App.Title, Settings, MainLeft, 1000) Me.Top = GetSetting(App.Title, Settings, MainTop, 1000) Me.Width = GetSetting(App.Title, Settings, MainWidth, 6500) Me.Height = GetSetting(App.Title, Settings, MainHeight, 6500) lvMerch.View = Val(GetSetting(App.Title, Settings, ViewMode, 0) 初始化数据 Call InitMainEnd SubPrivate Sub Form_Unload(Cancel As Integer) Dim i As Integer close all sub forms For i = Forms.Count - 1 To 1 Step -1 Unload Forms(i) Next If Me.WindowState vbMinimized Then SaveSetting App.Title, Settings, MainLeft, Me.Left SaveSetting App.Title, Settings, MainTop, Me.Top SaveSetting App.Title, Settings, MainWidth, Me.Width SaveSetting App.Title, Settings, MainHeight, Me.Height End If SaveS
展开阅读全文