小商店进销存管理系统的设计与开发.doc_第1页
小商店进销存管理系统的设计与开发.doc_第2页
小商店进销存管理系统的设计与开发.doc_第3页
小商店进销存管理系统的设计与开发.doc_第4页
小商店进销存管理系统的设计与开发.doc_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

张成珍:小型商店进销存管理系统本科毕业论文题 目 小型商店进销存管理系统的 设计与开发 学 院 信息科学技术学院 专 业 信息管理与信息系统 毕业届别 2013届 姓 名 张 成 珍 指导教师 李 宇 泊 职 称 讲 师 甘肃农业大学教务处制二一三年五月 目 录摘要1关键字1Abstract2Key words21.绪论31.1开发背景31.2系统目标31.3系统开发关键技术介绍31.3.1三层体系结构31.3.2封装数据库41.3.3使用ADO操纵数据库42.系统分析52.1小型商店进销存管理系统可行性研究52.2系统需求概述62.2.1系统功能分析62.2.2系统性能分析63.系统概要设计73.1系统设计思想73.2系统功能模块划分83.3系统结构设计93.4数据库概念设计104.系统的详细设计124.1数据库的设计124.1.1数据库表的设计124.1.2数据库程序设计134.2创建应用程序结构144.2.1创建用户界面端程序144.2.2创建业务逻辑组件144.2.3在界面端引用业务逻辑组件154.3开发组件154.3.1对象操作类加集合类的设计思想154.3.2添加公共模块154.3.3其他模块的开发164.4设计用户界面端174.4.1主界面的设计174.4.2用户登录界面的设计184.5程序流程设计194.5.1登录界面及密码修改194.5.2商品添加操作及修改204.5.3查询操作205.系统的测试215.1强制变量声明215.2先编译后调试215.3分阶段调试226.总结22参考文献23致谢24附录25 张成珍:小型商店进销存管理系统小型商店进销存管理系统的设计与开发张成珍(甘肃农业大学信息科学技术学院信息管理与信息系统,甘肃兰州,730070)摘要:本文在分析小型商店进销存人工系统业务流程的基础上,提出了小型商店管理系统用户需求和功能需求,并且以Visual Basic 和SQL 为前、后台开发工具,采用三层体系架构开发了小型商店进销存管理系统。系统包括用户管理、供货商管理、商品类型、进货管理、销售管理、库存管理、报损和统计等8个功能模块。系统具有很好的安全性、可维护性、可重用性和易操作性。系统使用后用户可以实时和准确的控制店内的销售和库存情况,有效地加速商品的周转率,减轻劳动强度从而提高服务质量。关键字:数据库;商品管理;窗体 The desingn and implementation of management information system for shops stock goodsZHANG Cheng- zhen(information management and information system, School of information science and technology, Gansu Agricultural University, Gansu Lanzhou, 730070)Abstract: Based on the paper analysis of small shops Invoicing business processes , it puts forward the small store management system of user needs and functional requirements, and with Visual Basic and SQL for the development tool, adopt three layer architecture development of small shops Invoicing management system. The system includes 8 function modules: user management, supplier management, types of goods, purchase management, sales management, inventory management, loss report and statistics etc.The system has good security, maintainability, reusability and easy operation. After sales, the users can accurately control the inventory in real time , speed up the turnover effectively , reduce labor intensity and improve the quality of service. Key words: database; commodity management; form;1.绪论1.1开发背景小型商店是我国零售业的一种重要形态,为国民经济的发展发挥了重要的作用。但是目前各个城市的小商店仍沿用传统的人工方式管理商品的模式,人工方式管理商品存在着许多缺点,如商品进、出货信息的维护和修改繁琐,收款结算速度慢,容易出现营业差错,不宜进行商品调价,盘点效率低,商品的进、销、存等决策以经验为主,缺乏实时分析功能等等,人工方式管理商品给商店的管理者的工作带来很大的麻烦。小型商店进销存管理系统的广泛使用在欧美等国家已经实现,它最主要的特点是能够实时的和准确的控制店内的销售和库存情况,可以有效地加速商品的周转率,减轻劳动强度从而提高服务质量。本系统以采用isual Basic作为前台开发工具,使用SQLServer2005作为后台数据库开发工具,开发了小型商店进销存管理系统,采用计算机辅助店主管理商品的进、销、存,提高工作效率,促进小型商店管理更加科学化。1.2系统目标系统目标是系统开发的依据及归宿,在总体系统分析基础上从商店的经营目标出发,确定的系统的目标如下: 1)界面设计简洁,友好,美观,操作简单,快捷方便。2)数据存储安全、可靠,信息分类清晰,准确。3)强大的查询功能,保证数据查询的灵活性。4)提供销售信息,为管理员提供真实的数据信息。5)对用户输入的数据,系统进行严格的数据检验,尽可能排出人为的错误。1.3系统开发关键技术介绍1.3.1三层体系结构传统的两层C/S架构中,客户端与数据库完全分开,把大量的数据访问规则、业务规则及合法性校验等服务集成到客户端应用程序。每个客户端都存在数字引擎,并且与数据库服务器建立独立的数据库连接。采用三层架构之后,用户界面层通过统一的接口向业务逻辑处理层发送请求,业务层按照自己的逻辑规则将请求处理后再通过数据存储层1。数据存储层接到业务层的通知后,对数据进行操作并把结果返回给业务层。业务层接受来自数据存储层的数据,封装成类的形式返回给用户界面。以查询商品信息为例的三层架构工作原理如图1.1所示。商品进销存管理系统用户操作界面商品管理组件 用户界面 逻辑处理层 数据存储层 IUnknown给出条件,要 调用存储过程或查看商品信息 用户自定义函数 封装返回商品对象 返回执行结 数据库操作内部有商品信 果和记录集 数据库 图 1.1三层架构工作原理在Visual Basic 中,可以使用ActiveX DLL来封装业务逻辑。选择【文件】【新建工程】菜单命令,打开“新建工程”对话框。 选择【工程】【属性】菜单命令,打开工程属性对话框,在工程类型中显示“ActiveX DLL”项,启动对象选择“Sub Main”。1.3.2封装数据库现在的管理信息系统中,越来越多的人倾向于将用户界面、业务操作逻辑、数据库分层实现,一方面提高了数据库的安全性,另外也适合多人的协同开发。在业务逻辑实现中,又将每个信息实体模块化。比如一个商品管理系统中,将商品类型单独作为一个实体,将其抽象为一个类,在其中封装了对商品类型的相关操作;商品又是一个单独的实体,也可以将其抽象为一个类,在其中封装商品的相关操作。这样设计使得程序非常的清晰,易于维护和调试。在Visual Basic 中,选择【工程】【类模块】菜单命令,打开“添加类模块”对话框,选择“VB类生成器”,单击【打开】按钮后,弹出“类生成器”对话框。对话框左侧是当前工程中类存在的类,右侧是选中类对应的属性、方法和事件等2。1.3.3使用ADO操纵数据库ADO即Active date objects ,实际是一种提供访问各种数据类型的连接机制,是Microsoft提供并建议在Visual studio 6.0环境中使用的数据访问接口。在一个打开的Visual Basic6.0的工程中,选择【工程】【引用】菜单命令,出现引用对话框,在“可引用”列表框中选择“Microsoft ActiveX Date Objects 2.7 Library”选项,单击【确定】按钮。这样在程序中便加入了对ADO的引用。 使用ADO操纵数据库一般分为以下9个步骤:1)创建一个到数据源的连接(Connection),连接到数据库。2)如果需要,开始一个事务(Transaction),不过要与结束事务对应。3)组织一条SQL语句,此SQL语句既可以进行插入、修改和删除等任何数据库操作,只要4)数据库建立连接时所使用的用户有足够的权限。5)执行SQL 语句如果SQL语句中使用的是Select语句,则可以将返回的数据保存在数据集对象Recordest中,以便进一步操作数据库。6)通过数据集对象对数据进行各种操作,包括获取某种字段值,以及修改、增加、删除记录等。7)如果使用数据集对象Recordest对数据库进行了增删改的操作,最后必须更新数据源。8)如果使用事务,根据前面对数据库操作的成功与否决定是否接受事务。9)结束连接。2.系统分析2.1小型商店进销存管理系统可行性研究系统的可行性研究必须从总体出发,对技术、经济、操作等多个方面进行分析和论证,以确定系统是否可行,为正确进行开发提供科学依据。2.1.1技术可行性商品进销存管理系统采用Visual Basic作为前台开发工具,使用SQLServer2005作为后台数据库开发工具。这两个开发工具是比较熟悉的,VB能够通过ActiveX DLL组建快速的搭建三层体系结构下的数据库管理系统,也能够访问远程存储过程和用户自定义函数,改善应用程序的性能,因此开发商品进销存系统的技术是可行的。2.1.2经济可行性商品管理系统的投入,能够提高工作效率,减少工作人员,从而减少劳力资本的投入,根据核算,系统投之后,就能够收回开发系统的投资,经过对上述几个方面的调查研究和分析,我们得出小商品销售管理这个软件的市场前景是相当客观的,在经济角度来说,开发商品销售管理是可行的。2.1.3操作可行性主要是了解商品销售管理的相关人员对开发信息系统是否支持,现有商品销售管理制度和方法是否科学,规章制度是否齐全,原始数据是否正确等。商品销售管理人员积极支持该系统开发,使新系统能够充分的发挥作用;系统操作简单,易于理解,操作者经过短时间的培训就可以使用小商品销售管理系统。2.2系统需求概述2.2.1系统功能分析为了使系统的功能更加的齐全和完善,所以从以下几个方面分析了系统需要的一些基本功能,为后面的设计提供了一定的参照。 1)基本信息的维护商品类型的建立与维护,包括商品类型的新建、修改和删除等。商品基本信息管理:包括商品基本信息的新建、修改和删除等。供货商信息管理:包括供货商信息的新建、修改和删除等。管理员信息管理:系统管理员的添加、删除和修改密码等。2)进货管理商品进货信息管理:商品进货信息包括商品进货数量、单价、供货商等。商品进货管理功能完成进货信息登记、修改和删除等。分类查看:可以根据商品类型来查看某种商品的进货情况。更新库存:进货信息的变动直接关系到库存的变化。进货分析:列出当前进货量最多的前几项商品和进货量最少的前几项商品。库存分析:列出当前库存量最多的前几项商品和库存量最少的前几项商品。3)销售管理商品销售信息管理:商品销售信息包括商品销售数量、单价、统计日期等。商品销售管理功能完成销售信息登记、修改和删除等。分类查看:可以根据商品类型来查看某种商品的销售情况。更新库存:销售信息的变动直接关系到库存的变化。销售分析:列出当前销售量最多的前几项商品和销售量最少的前几项商品。4)报损管理商品报损信息管理:商品报损信息包括商品报损数量、报损原因等。商品报损管理功能完成报损信息登记、修改和删除等。分类查看:可以根据商品类型来查看某种商品的报损情况。更新库存:报损信息的变动同样直接关系到库存的变化。报损分析:列出当前报损量最多的前几项商品和报损量最少的前几项商品。2.2.2系统性能分析作为使用的系统,它必须具有相应的性能加以支持,下面就从四个方面来说明系统的性能安全性:使用SQL Server 2005提供的诸如视图、约束、存储过程、用户自定义函数和触发器等技术的设计,提高了系统的性能。系统需能够防止各类误操作可能造成的数据丢失、破坏,并提醒用户及时保存新信息。可维护性:因为系统采用的是三层架构体系的设计,因此业务规则、合法性校验存在于中间层,所以业务规则发生改变时,只需更改中间层服务器上的某个组件(如某个DLL文件),而客户端应用程序不需要做任何处理,有些时候,甚至不必修改中间层组件,只需修改数据库中某个存储过程就可以了。可重用性:服务器端使用三层体系结构,将业务逻辑从表示层中抽出,使页面,业务逻辑和数据开发相互独立,并行的进行,这样可以大大减少开发时间。同时这种设计方法降低了三层之间的耦合程度,日后对某一层的修改,扩充时,对其他层可以只产生很小的影响。系统设计要求能够体现扩展要求,以适应将来功能和系统的可重用性。易操作性:保证设计的系统能够简洁、美观、功能齐全、易于理解和操作,事务处理更加灵活,可以在数据库端、组件层管理器中进行事务处理。3.系统概要设计3.1系统设计思想本商品进销存系统以商品管理为核心,设计目的是可以实现商品信息的动态变化,完成进货、销售、库存一体化的管理。可对商品进行入库登记和销售登记,并提供综合查询、添加、修改、删除、统计等功能,能够准确及时地为商户提供第一手信息。主要实现的功能有:1)联合进销存系统使用终端将商品目录、商品库存、商品销售等系统联合起来将该系统实际应用。2)用户管理系统主要功能是管理客户信息,包括客户编码、客户名称、联系电话等。用户可以根据需要进行查询操作,管理人员可以根据需要进行增加、修改、删除、查询等操作。3)商品进货管理系统包括两个功能:第一个功能是商品进货管理,其主要功能是管理商品的目录信息,包括商品编码、商品名称、供货商、安全库存量等。管理人员可以按商品的供货商、商品类别进行组合查询。第二个功能是商品库存管理,其主要功能包括商品入库和出库信息的盘点等。4)商品销售管理系统也包括两个功能:第一个功能是销售管理,包括销售的商品的类型、数量、登记、添加等信息;第二个功能是营销分析,主要是对商品类别、销售状况及季节性商品销售状况进行分析。通过各种组合查询,反映商品销售的特点及流向,给商户提供决策信息3。3.2系统功能模块划分根据系统的功能分析,可以得出如图3.1所示的系统功能模块图商品进销存管理系统用户管理模块供货商管理模块商品类型管理模块商品管理模块进货管理模块销售管理模块报损管理模块统计进货销售报损图3.1系统功能模块图1)用户管理模块的主要功能是对用户身份进行,添加修改系统管理员和普通用户,普通用户在进行系统登录过程中,登录模块将调用数据库里的用户清单,并对账号和密码进行验证,只有输入了正确的账号和密码后,系统登录才会成功。在进销存招进新员工时,对其进行基本信息的存储,对员工信息进行基本的了解。当员工和管理员信息发生变化,或者是员工离职,换岗对相关信息发生变化时,利实现目标用此子模块对其进行信息变更。2)供货商管理模块:实现了对供货商的查询、添加和修改功能。 供货商查询:可以对某种商品进行供货商的查询;管理供货商:对供货商的信息进行修改、删除和添加3)商品管理模块:可以浏览所有的商品,对商品进行添加、修改等功能。4)进货管理模块:该模块主要是实现进行入库信息查询、添加功能。入库信息查询:该模块为进销存提供整个进销存的入库情况查询,也可以进行入库信息的明细查询,并以入库报表形式打印出来。输入项、输出项:该模块的输入项为进销存的进货单,其中包括进货商品的编号,供货商号,进货价,数量,金额进货日期等。5)销售管理模块:本模块的主要功能是把销售信息写入销售清单,同时对库存清单进行更新,以备用户将来对库存信息进行查询和打印,此外还可以对销售信息进行查询和盘点功能。销售信息查询:根据商品销售情况,按需要对销售情况进行查询。在该查询模块中可以按照商品的编号、销售日期等多种方式进行商品销售信息查询。销售信息盘点:可以按照需要对在一定时期内的销售情况进行盘点。输入项、输出项:本模块的数据输入项主要是商品的销售单号和商品编号。其中还包括销售数量和销售日期。6)报损管理模块:本模块的主要功能是商品报损信息的查询和更新。查询商品信息:主要功能查询商品的明细报损信息。添加商品信息:主要功能添加新报损的商品。修改商品信息:主要功能是修改商品的报损信息。7)统计模块:本模块主要是对商品的库存、进货、销售和报损数量进行统计,用以分析计算,能更好的管理商品。3.3系统结构设计根据面向对象和三层结构的设计思想,系统结构设计图如图3.2所示。商品进销存管理系统用户操作界面业务逻辑组件数据库 用户登录界面进销存系统主界面添加和修改系统界面 查询信息界面 关于界面 公共模块用户信息类及对应集合类供货信息类及对应集合类商品类型信息类及对应集合类商品信息类及对应集合类进货信息类及对应集合类销售信息类及对应集合类报损信息类及对应集合类 公共枚举类视图和用户自定义函数存储过程和触发器 图3.2 系统结构设计图 3.4数据库概念设计数据库概念结构设计是根据需求分析得到的数据项和数据结构,设计相关实体和关系,并描述出实体关系E-R图。根据对数据流图和数据字典的分析,我们可以确定该应用中的实体,属性和实体之间的关系,并画出如下所示的E-R图。商品供货商商品类型单价商品介绍单 位备 注商品名称用户用户名密 码真实姓名用户类型图3.4商品实体图图3.5 用户实体图供 货 商简要介绍备注联系方式供货商名称图3.6 供货商关系图 库存商品类型单价入库数量入库日期商品名称商品编号图3.7 库存关系进货数量单价送货员商品名称备注办理员 销售数量备注销售单价商品名称图3.8 进货关系图图3.9 销售关系图统计销售报损进货图3.10 统计关系图4.系统的详细设计4.1数据库的设计数据库一般分为三级模式:外模式、概念模式和内模式。外模式也就是不同用户所对的数据视图,它将数据库内部抽象的数据及其互相之间的关系表示为简单、直观的应用界面。概念模式是数据库中全部数据的逻辑结构和特征描述,通常以某种数据模型为基础。内模式是对数据的物理结构和存储方式的描述4。4.1.1数据库表的设计 数据库逻辑结构设计,即把前两个阶段的成果转化为某种数据库系统所支持的数据模型。在企业管理器中,用鼠标右键单击数据库BuySsleStorage下的“用户定义的数据类型”节点,选择【创建用户定义数据类型】菜单命令,按表4.1所述的内容创建用户定义类型。表4.1用户自定义数据类型名称 基本类型长度允许NUL值默认值 使 用gacaptionvarchar1000实体名称gxcidint40实体编号gxcmoneysamallmon40进货、销售金额gxcremarkvachar10001dbo.备注gxcturnnamevachar100真实姓名用户定义数据类型创建完成之后,可以当作SQL Server数据库的内置数据类型来使用。商品进销存系统一共涉及到7个信息实体,为每个实体创建系统用户表如表4.2所示。表4.2系统用户表列名数据类型长度允许空默认值说 明useridGxcid40用户编号,递增,主键Usernamegxccaption1000用户账号名Passwordgxccaption1000密码Turenamegxcturename100真实姓名lastlogintimedatetame81Gatdate()上次登录时间usertypebit10用户类型1:管理员2:表4.3供货商信息表SupplierIDgxcid40供货商品号,递增,主键Suppliernamegxccaption1000供货商名称Contactgxcremark10001dbo.remarkdefault联系方式Introductgxcremark10001dbo.remarkdefault简要介绍Remarkgxcremark10001dbo.remarkdefault备注4.1.2数据库程序设计添加ExistByID存储过程功能:查看某个数据表中,是否存在某个整型字段等于某个值得记录。实现程序如下:/*查看某个数据表中,是否存在某个整型字段等于某个值的记录*/ALTER PROC dbo.ExistByID( strTableName varchar(255), -表名 strFieldName varchar(255), -整型字段名 intFieldValue int, -整型字段值 bitResult bit OUTPUT -输出值,为不存在,为存在)AS SET NOCOUNT ON DECLARE strSQL varchar(3000) -主语句 DECLARE nCount int -返回记录行数 /*构建存储符合条件的记录数的临时表*/ IF OBJECT_ID(dbo.#tmpTable) IS NULL CREATE TABLE #tmpTable(tmpField int) -创建临时表 ELSE TRUNCATE TABLE #tmpTable -清空临时表 /*在数据库表中检索符合条件的记录数并存储在临时表中*/ SELECT strSQL = SELECT COUNT( + strFieldName + ) FROM + strTableName + WHERE + strFieldName + = + CONVERT(varchar(50),intFieldValue) SELECT strSQl = INSERT #tmpTable + strSQL EXEC(strSQL) /*在临时表中返回存储的记录数*/ SELECT TOP 1 nCount = tmpField FROM #tmpTable ORDER BY tmpField/ /*删除临时表*/ DROP TABLE #tmpTable /*输出参数*/ IF nCount 0 SELECT bitResult = 1 ELSE SELECT bitResult = 04.2创建应用程序结构4.2.1创建用户界面端程序在VisualBasic 6.0中选择【文件】-【新建工程】菜单命令,打开“新建工程”对话框,选择“标准EXE”,保存之后,BuySaleStorage应用程序创建完毕。4.2.2创建业务逻辑组件在BuySaleStorage工程中选择【文件】【添加工程】菜单命令,打开“添加工程”对话框,选择ActiveXLL,创建ActiveXLL程序。设置工程属性在“工程资源管理器”中选中刚才新建的工程,选择【工程】【工程1属性】菜单命令,打开“工程属性”对话框,对工程的一些关键属性做如下设置:工程类型:ActiveX DLL启动对象:Sub Main工程名称:BuySaleStorageCOM将文件保存在与BuySaleStorage同级的BuySaleStorageCOM 文件夹中。将组合文件保存在与BuySaleStorage同级的文件夹中,取BuySaleStorage.vbg,其他去默认值。选择【工程】【引用】菜单命令,打开“引用”对话框,选择Microsoft ActiveX Date Objects 2.7Library,在工程中加入对ADO的支持。将新建工程时主动生成的类Class1的名称重设置为clsPublic,然后按照默认文件名clsPublic.cls保存工程。4.2.3在界面端引用业务逻辑组件在“工程资源管理器”中选择工程BuySaleStorage,选择【工程】【引用】菜单命令,打开“引用”对话框,在可用的引用列表中选BuySaleStorageCOM,至此,在BuySaleStorage应用程序中可以使用BuySaleStorageCOM中的全部可用资源。4.3开发组件4.3.1对象操作类加集合类的设计思想在本组件中,每个模块的设计都是由这个模块的对象操作类加对应的集合类来实现的。具体的功能如下:在对象操作类:实现与单个信息相关的操作,包括添加、修改和删除。在对象集合类:实现与多个信息相关的操作,主要是根据不同的条件查找和统计。4.3.2添加公共模块 新建一个模块,并命名为mdlPublic。本模块的主要功能包括ActiveX DLL的启动程序Sub Main()过程,与数据库建立连接及过滤字符串单引号等。全局变量的声明首先,加入一个全局变量,它的名称和功能如下:Public g_conn as connection 用于全局的数据连接Sub Main ()过程组件启动入口点创建业务逻辑组件的时候,把ActiveX DLL工程的启动属性设置为Sub Main(),在这个启动对象中要完成的功能就是与数据库的连接,实现代码如例程4.1所示。 例程4.2 Sub main()过程 ActiveX DLL的启动程序,DLL初始化时执行 Public Sub Main() If ConnectToDatebase=Fale then magbox “连接数据库出错!”,vblnformation End Sub其中Connecttodatebase函数的功能是用来与数据库连接,并返回是否连接成功。下面看看它是如何实现的。Connecttodatebase函数与数据库建立连接 功能:连接到SQL数据库。 返回值:Boolean 类型。 设计思路:组织连接字符串,然后打开数据库的连接。编写的函数见附件的例程4.2 在连接到字符串中使用到的参数,包括服务器地址、数据库名、登录用户和明码等,必须与创建数据库的时候进行的配置一样。4.3.3其他模块的开发1)供货商管理模块供货商管理模块包括操作类clsSupplier 和集合类clsSuppliers,实现的功能有添加、更新、删除、查询和其他与供货商信息有关的操作。clsSupplier类中的AddNew 、Update和Delete 方法,与用户管理模块中clsUser类的处理类似,只是调用的存储过程不同而已。供货商信息集合类clsSupplier用来查询并以集合类的形式返回供货商的信息,它包含的大部分函数实现与clsUser 类也很相似。2)商品类型管理模块商品类型管理模块包括操作clsGoodsType 和集合类clsGoodsType,实现功能有添加、更新、删除、查询商品和其他与商品类型信息集合有关的操作。3)商品管理模块商品管理模块包括操作类clsGoods和集合类clsGoodses,实现的功能有添加、更新、删除、查询和其他与商品信息集合类有关的操作。4)进货管理模块进货管理模块包括操作类clsBuy和集合类clsBuys,实现的功能有: 添加进货信息 更改进货信息 删除进货信息 统计进货信息 其他与进货信息有关的操作其中添加、更新和删除进货信息这里不再赘述。需要注意的是,用户管理模块中的查询是单条件的,而进货管理模块中的查询是多条件的组合查询。组合条件查询进货信息功能:按照多条件的不同组合查询进货信息参数设计:Long 类型的进货编号、String类型的商品名称、Date类型的进货起始和终止日期。返回值:clsBuys类型,一个clsBuy的集合。省略参数时,返回全部进货信息。设计思路:组织SQL语句并执行将查到的结果加入集合返回类本身。编写的函数见附件的例程4.3统计进货信息功能:统计各种商品的进货次数、进货总量、平均进货价格和进货总金额数等。返回值:clsBuys类型,一个clsBuy的集合。设计思路:组织SQL语句并执行将查到的结果加入集合返回类本身。编写的函数见附件的例程4.44.4设计用户界面端在三层结构设计中,用户界面端的开发和维护都变得十分简单,并且增加了面向对象的特性,下面就进入用户界面的开发阶段。4.4.1主界面的设计在创建用户界面端应用程序的时候,已经把开发环境自动生成的默认窗体重命名为firmMain 并将它作为系统的主界面。按照表4.4所示对主界面控件进行布局。表4.4主界面主要控件布局设置 控件名称 属性 属性取值功 能Fimmain(form)caption商品进销存管理系统1.0版系统主窗体Imgltbar(listview)imageheight32工具栏所使用的 图片imagewidth32Imglview(imagelist)imageheigh16树形视图和列表视图使用的图片imagewidth16Treeview(treeview)linestyletvwtreelines显示商品类型树imagelistimglviewListview(listview)viewlvwreport显示实体信息和 统计信息imgaelistimglview完成控件布局后,主界面设计如图4.5所示。图4. 5主界面设计图 主界面中,菜单栏和工具栏作为功能向导,然后用户执行相关实体的添加、更改、删除、查询和统计操作,同时也包括自定义视图和查看软件关于信息等辅助功能。4.4.2用户登录界面的设计登录界面主要是用来给用户填写登录信息,并提交登录请求。设计界面如图4.6所示。图4.6 用户登陆界面当用户单击【登录】按钮之后提交登录信息请求,并按照登录信息是否合法来确定是否显示主界面。这是由cmdOK的Click 事件来完成的。编写的函数见附件的例程4.54.4.3树形视图界面处理模块为树形视图添加名称为mdlTreeView 的标准模块,它实现以下功能:动态添加所有商品类型;添加商品类型到树形视图;从树形视图删除商品类型;更新树形视图上的商品类型;获取树形视图中节点的商品类型ID。4.5程序流程设计程序过程设计主要是在借助过程设计工具的情况下,对程序的具体实现过程进行设计。程序的主要部分设计在这个环节完成。4.5.1登录界面及密码修改1) 登录界面程序设计登录界面程序流程图如图4.7所示在用户登录时,在输入用户名和密码及用户类型的前提下将其与数据库中的数据进行对比,若一致,则打开主窗体,若不一致提示错误,并要求再次输入。在这个部分中,需要对用户的类型存入一个全局变量,予以判断其所具有的系统使用权限,例如,用户类型为DBA,则该用户拥有系统的一切权力,可以对每一部分进行添加、删除、查找、统计等操作;而其他用户类型都依据其类型的属性,可以使用的部分也会相应减少,而只能使用一部分与其类型相匹配的功能。用户名是否输入否 是 密码是否输入否 是 查找管理员表中对应密码的用户 否 存在? 是 打开主窗体 检查输入次数3 关闭窗体 图4.7 登录界面程序流程图2)密码修改程序设计密码修改程序设计流程图如图4.8所示在用户更改密码时,系统首先判断输入的两次旧密码是否一致,若一致,则判断原密码是否正确,如果原密码正确,则对数据库中的相应字段进行更新。 两次输入的密码是否一致 否 是 原密码是否正确 否 是 对数据库中的相应字段进行更新 提示已更新并提交更新 关闭窗体 检查输入次数3图4.8 密码修改程序流程图4.5.2商品添加管理员查询某商品时商品名及货物号与数据库中的数据不相一致,系统提示所查货物在仓库里为空,即仓库从没存储该商品。然后管理员可根据仓库管理的需求是否保存该货物。 商品添加程序流程图如图4.9所示。是否为仓库原有商品 是 否 提示:需要在保存后退出 是否保存? 否 是 保存成功 否 是 Rollback Commit 关闭窗体 图4.9 商品添加程序流程图4.5.3商品查询在执行查询操作之前通常要先在单行文本框中输入被查询的条件,在单行文本框失去聚焦时将查询条件传递给查询按钮的单击事件中,然后过滤语句依据此过滤条件过滤得出相应的数据,并显示在其他数据窗体控件中。在通常情况下,用户可以在得到要查询的信息后,对它们的各个字段进行修改,经过修改后,在退出时系统会提示进行存储。在完成了用户界面设计和程序过程设计后,基本上完成了详细设计的内容。查询程序流程图如图4.10所示。 输入查询信息否 是 是否存在该信息数据 否 是 提示没有 输出该信息 所要查询 的信息 确认信息 关闭窗体 图4.10查询程序流程图5.系统的测试5.1强制变量声明Visual Basic 6.0允许变量不经过声明即可使用,但如果不使用强制变量声明,那么开发人员因为错误的录入而产生的表达式就会被当做一个新的变量被使用,这将给程序的运行带来显示或者潜在的错误,从而给调试带来不小的难度9。 选择【工具】【选项】菜单命令,打开“选项”对话框,在编辑器属性页中,把“要求变量声明”这个复选框上,或者 手工在每个文件的开头加上关键字: Option Explicit这样在编译时会对没有声明的变量报错,从而减少很多不必要的调试。5.2先编译后调试Visual Basic 6.0在调试的时候是解释执行的,每当执行到一个程序时才对这个函数进行语法分析和语义分析,分析通过以后才生成中间代码解释执行。这样当一个函数有多处语法错误时,执行到这个函数遇到第一个函数就停下来了,修改之后继续调试。如果在有错误就会再次停下来了,直到全部语法都修改完毕,这样就大大的降低了调试的 效率。所以采取“先编译后调试”的方案,全编译执行程序或者将工程编译生成EXE或者DLL。这样编译时VB会提示一次性把语法错误都解决了,而后在调试时,只需解决语义错误即可。5.3分阶段调试 作为三层结构的应用程序,本系统使用了ActiveX DLL 工程来开发业务逻辑组件。ActiveX DLL工程是无法进行单独调试的,必须与EXE工程联合调试。本系统的顺序是先把业务逻辑组件开发完毕,在开发客户端应用程序,这只是为了叙事上的方便而按照逻辑顺序操作的。在项目开发中要先创建EXE工程,再编写整个的ActiveX DLL工程的代码。但编写完一类或者类内的方法,只要他能单独使用,就应该创建EXE工程来对它调试。调试通过后,对编写相似的类或类内的方法有很强的参考作用。反之,如果完全编写完ActiveX DLL的工程的代码再去调试,可能在首次运行时错误百出,并且相似类型的错误可能占多大部分,这将导致重复劳动,是调试率降低。6.总结本系统基本上符合了预期的用户需求目标,实现了商品信息维护、进货管理、销售管理、报损管理、数据统计等功能。系统具有很好的安全性、可维护性、可重用性和易操作性。但系统还存在如下不足:1)没能实现用户管理模块中管理员和普通用户的权限

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论