摘 要
目前汽车配件销售企业大多数在其连锁店的管理还是手工进行,随着汽车配件行业的迅速发展,手工管理的种种弊端暴露无疑,给销售企业的发展带来了不必要的麻烦。为了规范企业内部管理,提高企业业务管理水平,更好的为客户服务,应采用计算机来管理汽车配件的进销存业务。
本文首先对VB,SQL SERVER 2000这两种开发工具的原理和应用进行了简单的介绍,然后针对具体项目展开研究,进行需求分析,模块划分与设计,最后对整个系统进行了详细的分析和设计,在设计与实现过程中,结合源代码具体的描述出整个项目的开发过程。
汽车配件管理系统的目的是为企业提供一个计算机化的管理平台,实践企业内部科学有效的管理,促进企业管理信息化,规范化,将能使管理人员从繁琐的杂务工作中解脱出来,真正从事管理工作。
Abstract
At present, the automobile fitting sale enterprises mostly artificially manage their chain stores, but along with the automobile fittings' rapid development, all sorts of malpractices of manual management will expose without doubt, then bringing very many problems to enterprise's development. In order to realize the business management scientific style and standardization, making the customers satisfied, the enterprise must use the computer management system to manage the automobile fittings' purchase、selling and storage.
This article first carries on a simple introduction on the principle and the application of VB and SQL SERVER 2000 which are two kinds of development kits, then aims at the detail research in view of the specific project, carrying on the demand analysis、the module division and design, finally the detailed analysis and design of the system. In the process of analyze and implementation, the author describes the whole project with source code.
The goal of this system is providing a management platform which computerizes for the enterprise, making interior management scientific and effective, promoting business management's information style and standardization will be able to realize the administrator to be engaged in the supervisory work truly, extricating from the tedious odd job.
Keywords: The automobile fittings' selling management system, purchase、sell and stock management, Information technology.
目 录
第四章................ 汽车配件管理系统的程序实现. 26
第一章 绪论
§1.1问题背景
随着信息化社会带给我们的冲击越来越强烈,信息化管理和信息化设备已经深入到我们生活的方方面面,同时,信息时代带给配件管理系统强烈的冲击。目前汽车配件销售企业大多数在其连锁店的管理还是手工进行,随着汽车配件行业的迅速发展,手工管理的种种弊端暴露无疑,给销售企业的发展带来了不必要的麻烦。为了规范企业内部管理,提高企业业务管理水平,更好的为客户服务,应采用计算机来管理汽车配件的进销存业务。
本系统的实施,将能使管理人员从繁琐的杂务工作中解脱出来,真正从事管理工作。集中管理汽车配件的销售及账目,同时带动企业步入现代化的管理阶段,节省了大量的人力、物力和财力,使企业经营运作物流清晰,经营状况详细准确,使汽车配件的经营管理体系更加科学化、规范化、合理化。
汽车配件物流管理系统是当前一个很热门,实用性很强的系统,把它作为毕业设计的题目,可以把已有的知识用于实践,又可以学到一些新的概念,在这个过程中,可以增加工程经验,对以后的工作学习是一次很有意义的经验积累。
§1.2系统需求分析
在我国数量众多的企业中,中小企业占了绝大多数。这些企业也不可避免地要加入国际化企业的竞争行列,而实现企业信息化是参与挑战的必要条件。但是中小企业的多样性及其灵活多变的经营方式,加上相关投入量的限制,使得很多中小企业没有进行信息化建设。实际上大部分中小企业需要的只是能解决进销存管理、财务管理等的基础软件。因此,开发基于中小企业应用的进销存管理系统优为重要。本文所设计的进销存管理系统可以基本上满足中小企业的进销存管理。
§1.3进销存管理系统的开发设计思想
1.尽量采用现有的软硬件环境,及先进的管理系统开发方案,从而达到充分利用现有资源,提高系统开发水平和应用效果的目的;
2.系统应符合配件管理的规定,满足仓库货物日常的进销存的需要,并达到操作过程的直观、方便、实用、安全等要求;
3.系统采用模块化的程序设计方法,既便于系统功能模块的组合,又便于未参与开发的技术人员补充、维护;
4.系统应具备数据库维护功能,能及时根据用户需求进行数据的添加、删除、修改、备份等操作。
§1.4课题的来源
本课题是前台是基于VB 6.0的可视化编程语言,后台 基于SQL Server 2000数据库平台开发的汽车配件管理系统,用于解决汽车配件的信息录入,修改,查询,以及用户对系统查询等问题。
§1.5 系统总体目标
1.公司建立中心数据库
2.实现数据录入、查询、统计的全面管理,达到数据一次录入、随处访问的目的。
3.采用图形界面,人机界面友好,使操作简单,学习容易。
4.在业务上实现物资公司和分公司的库存彼此可见,管理透明,库存分布合理。
5.减少管理环节,提高流转效率。
6.通过数据分析,实现量化管理,支持决策分析。
通过该系统,可实现信息共享。如公司经理可随时以图形化的方式了解日常经营状况,配件库存情况,所有的查询信息,使各级管理人员能实时的掌握所需信息,从而更及时、准确的做出决策。各分公司的订单信息、物资公司的库存信息都可以在整个公司内部共享,进而融入到公司的整体信息化管理系统中,实现更大范围内、更多系统的信息共享。
§1.6 系统实施阶段
系统的实施分为三个阶段:
第一阶段:实现目标是在保证系统的稳定性、数据的安全性的前提下满足公司和各分公司日常管理工作的需要,具体的为基础数据录入和维护功能,日常工作数据的录入和维护功能,日常查询。以上功能是整个系统的基础。
第二阶段:在日常数据丰富的基础上,全面完善各项查询、统计。只有在数据积累达到一定程度后,分析、统计才有更实际的意义。
第三阶段:根据用户提出的、并经过双方确认后的需求变更对系统做出修改;易用性方面的修改,系统更广范围的安装发布,如将该软件系统在各分公司推广使用。
第二章 系统方案设计
§2.1设计方案
§2.1.1设计语言的选择
随着Internet技术的普及和应用需求的变化,以第四代语言为主的应用开发产品发生了较大的变化,它们不仅已成为人们开发应用的开发工具,而且很多产品已发展成为一种强有力的应用开发环境。这些新型的开发工具通常以一种集成软件包的形式提供给开发人员。
经过分析对比,作者选择VB 6.0作为开发工具,它是目前最强大的数据库开发工具,利用其提供的可视化的编程环境,为开发系统提供了较大的便利。用户的需求具体体现在各种信息的提供,保存更新和查询等方面。在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。本系统的实施,将能使管理人员从繁琐的杂务工作中解脱出来,真正从事管理工作。集中管理汽车配件的销售及账目,同时带动企业步入现代化的管理阶段,节省了大量的人力、物力和财力,使企业经营运作物流清晰,经营状况详细准确,使汽车配件的经营管理体系更加科学化、规范化、合理化[1]。
§2.1.2 数据库的选择
Access和SQL Server 数据库,在性能上Access侧重用于日常办公,使用简单,可以对数据库加密,指定登录密码,但其安全机制不如SQL Server好,SQL Server在两种级别上验证用户,登录身份验证和对数据库用户和角色的许可权限。在SQL Server中有三种角色,一是固定服务器角色,服务器级别的组管理特权;二是固定数据库角色,数据库级别的组管理特权;三是用户自定义数据库角色,组织内部雇员分组的组管理特权。另一方面整个系统的开发基于客户/服务器体系结构,SQL Server 正好是一个客户/服务器关系式数据库系统,对客户/服务器用户的一个主要挑战就是管理整个企业范围内的多个服务器,SQL Server用一个称为分布式管理框架(DMF)的企业级系统管理框架来迎接挑战,DMF由SQL Server Enterprise Manage、Distributed Management Object(DMO)、SQL Server 引擎和管理器的服务核心组件SQL Executive 组成。而Access没有分布式的管理,最终作者选择SQL Server作为数据库的开发工具[2]. 用SQL Server做数据库,安全稳定,对数据填报、查阅、修改权限严格控制。
§2.1.3 C/S结构和B/S结构的选择
C/S结构属于一种应用架构,客户端通过用户点击产生事件,并将事件要求提交给服务端,服务端根据事件要求作出相应的处理,并传送给客户端。通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或 SQL Server,有时根据需要设置中间应用层来管理服务端和客户端。
B/S结构应用体系,即在传统的二层C/S模型中放入应用程序服务器。应用程序服务器简单地说就是一个包含企业逻辑的应用程序,开发人员以一种特定的组件形态,如Microsoft COM/DCOM,CORBA,MIDAS,或Enterprise JAVA Bean等,封装企业逻辑的程序代码,这种经过封装,能够执行特定企业功能的对象被称为“企业对象”,把这些企业对象分发到应用程序服务器中,开发人员在开发应用程序时就可以使用这些企业对象提供的服务。
C/S能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快,客户端应用软件界面丰富,可以设计出所需要的各种精美的表单,用户沟通能力强, 通过安装时一次性注册所有的用户组件,和设置好运行环境,使客户端直接调用本地的各种组件,效率高。
基于C/S的以上优点,和VB6.0的可视化编程环境,最后选者C/S结构进行开发。
§2.2 设计数据库实体关系
根据数据流程图得到数据库的E-R模型,转化成SQL Server数据库系统所支持的实际数据库模型,也就是数据库的逻辑结构数据字典。
表1采购合同表的数据字典如表3.1所示
序号 | 名称 | 数据类型 | 长度、精度要求 | 唯一性要求 | 必要性要求 | 其它描述 |
1 | 合同编号 | varchar | 16 | Y | ||
2 | 配件ID | varchar | 16 | Y | ||
3 | 采购数量 | decimal | 9[14,2] | Y | ||
4 | 单价 | money | 8 | |||
5 | 合计金额 | money | 8 | |||
6 | 交货日期 | datetime | 8 | |||
7 | 实到数量 | decimal | 9[14,2] | |||
8 | 是否全部到货 | bit | 1 | Y | ||
9 | 已支付数量 | decimal | 9 |
表3.1采购合同
表2配件信息报表的数据字典如表3.2所示
序号 | 名称 | 数据类型 | 长度、精度要求 | 唯一性要求 | 必要性要求 | 其它描述 |
1 | 配件ID | varchar | 16 | Y | Y | |
2 | 编号 | varchar | 50 | Y | ||
3 | 名称 | varchar | 50 | Y | ||
4 | 规格型号 | varchar | 50 | |||
5 | 计量单位 | varchar | 50 | Y | ||
6 | 生产厂家 | varchar | 50 | |||
7 | 装配图ID | varchar | 16 | |||
8 | 备注 | varchar | 50 |
表3.2信息配件报表
表3入库报表的数据字典如表3.3所示
序号 | 名称 | 数据类型 | 长度、精度要求 | 唯一性要求 | 必要性要求 | 其它描述 |
1 | 配件ID | varchar | 16 | Y | Y | |
2 | 编号 | varchar | 50 | Y | ||
3 | 名称 | varchar | 50 | Y | ||
4 | 规格型号 | varchar | 50 | |||
5 | 数量 | varchar | 50 | Y | ||
6 | 入库单价 | varchar | 50 | Y | ||
7 | 产地 | varchar | 8 | |||
8 | 入库时间 | datetime | 50 | |||
9 | 总金额 | varchar | 50 | |||
10 | 采购人员ID | varchar | 10 | |||
11 | 备注 |
表3.3入库报表
表4产品出库报表的数据字典如表3.4所示
序号 | 名称 | 数据类型 | 长度、精度要求 | 唯一性要求 | 必要性要求 | 其它描述 |
1 | 出库编号 | int | 16 | Y | Y | |
2 | 配件ID | varchar | 50 | Y | ||
3 | 名称 | varchar | 50 | Y | ||
4 | 规格型号 | varchar | 50 | |||
5 | 数量 | varchar | 50 | Y | ||
6 | 出库价格 | money | 8 | |||
7 | 出库时间 | datetime | 16 | |||
8 | 出库人员ID | char | 8 | |||
9 | 备注 |
表3.4产品出库报表
表5退货报表的数据字典如表3.5所示
序号 | 名称 | 数据类型 | 长度、精度要求 | 唯一性要求 | 必要性要求 | 其它描述 |
1 | 配件ID | varchar | 16 | Y | Y | |
2 | 编号 | varchar | 50 | Y | ||
3 | 名称 | varchar | 50 | Y | ||
4 | 规格型号 | varchar | 50 | |||
5 | 退货数量 | varchar | 50 | Y | ||
6 | 出库单价 | varchar | 50 | Y | ||
7 | 产地 | varchar | 50 | |||
8 | 出库时间 | varchar | 50 | |||
9 | 出库人员ID | varchar | 50 | |||
10 | 退货时间 | datetime | 8 | |||
11 | 退货金额 | varchar | 50 | |||
12 | 退货人员ID | varchar | 16 | |||
13 | 备注 |
表3.5退货报表
表6供应商表的数据字典如表3.6所示
序号 | 名称 | 数据类型 | 长度、精度要求 | 唯一性要求 | 必要性要求 | 其它描述 |
1 | 供应商编号 | int | 16 | Y | Y | |
2 | 配件ID | varchar | 50 | Y | ||
3 | 地址 | varchar | 50 | |||
4 | 电话 | varchar | 50 | |||
5 | 传真 | varchar | 50 | |||
6 | 开户行 | varchar | 50 | |||
7 | 税号 | varchar | 50 | |||
8 | 法定代表人 | varchar | 50 | |||
9 | 帐户 | varchar | 50 | |||
10 | 邮编 | varchar | 50 | |||
11 | 备注 |
表3.6供应商报表
表7客户表的数据字典如表3.7所示
序号 | 名称 | 数据类型 | 长度、精度要求 | 唯一性要求 | 必要性要求 | 其它描述 |
1 | 客户ID | varchar | 16 | Y | Y | |
2 | 客户编号 | varchar | 50 | Y | ||
3 | 名称 | varchar | 50 | Y | ||
4 | 类别编号 | char | 5 | |||
5 | 应收款 | money | 8 | |||
6 | 地址 | varchar | 50 | |||
7 | 电话 | varcha | 50 | |||
8 | 传真 | varchar | 50 | |||
9 | 开户行 | varchar | 50 | |||
10 | 税号 | varchar | 50 | |||
11 | 法定代表人 | varchar | 50 | |||
12 | 帐户 | varchar | 40 | |||
13 | 邮编 | varchar | 10 | |||
14 | 备注 | varchar | 60 | |||
表3.7客户表
表8库存结存表的数据字典如表3.8所示
序号 | 名称 | 数据类型 | 长度、精度要求 | 唯一性要求 | 必要性要求 | 其它描述 |
1 | 结存编号 | varchar | 16 | Y | Y | |
2 | 帐别 | varchar | 50 | Y | ||
3 | 结存日期 | date time | 8 | Y | ||
4 | 期初总金额 | money | 8 | Y | ||
5 | 期末总金额 | money | 8 | Y | ||
6 | 库存配件数量 | varchar | 8 | Y | ||
7 | 扎帐人ID | varchar | 16 | Y | ||
8 | 扎帐类型 | varchar | 2 | Y | ||
Y |
表3.8库存结存表
表9盘点表的数据字典如表3.9所示
序号 | 名称 | 数据类型 | 长度、精度要求 | 唯一性要求 | 必要性要求 | 其它描述 |
1 | 盘点编号 | varchar | 16 | Y | ||
2 | 盈亏数量 | decimal | 9[14,2] | Y | ||
3 | 盈亏金额 | money | 8 | Y | ||
4 | 备注 | varchar | 60 |
表3.9盘点表
表10登录表的数据字典如表3.10所示
序号 | 名称 | 数据类型 | 长度、精度要求 | 唯一性要求 | 必要性要求 | 其它描述 |
1 | 用户名 | varchar | 16 | Y | ||
2 | 密码 | varchar | 16 | Y |
表3.10登陆表
§2.3设计全局数据库实体关系
图2.1 数据库的全局实体关系
第三章 系统详细设计
§3.1系统总结构图
图3.1 系统总结构图
§3.2子功能划分
本系统按功能分为基础信息管理、日常业务、系统查询、系统帮助4大部分。
基础信息管理 |
产品信息录入 |
客户信息录入 |
供应商信息录入 |
图3.2 系统基础管理结构图
§3.2.1基础信息管理
产品信息录入:对配件信息的录入,修改,添加,和查询,是最基本的数据库调用。
客户信息录:对客户信息的录入,修改,添加,和查询,建立良好的客户关系。
供应商信息录入:对供应商信息的录入,修改,添加,和查询,以了解配件的出处。
日常业务 |
图3.3 系统日常业务结构图
§3.2.2日常业务
入库管理:
可以分为3种性质入库:(1)采购入库,它由收货部来完成,供应商或配送中心或其他分店送货,根据其订货单来收货,在这过程中主要检查单据(采购单)、数量(规格、单位、数量、进价) 、质量(外观、标识、标注、相关日期)。(2)销售退换货入库,必须依照销售单据付款小票进行退货,与此同时要变更当天的实际库存,登记退货商品便于分析商品的市场情况。(3)领用退回库,因为领用过多而造成的。
出库管理:
它主要实现了配件出库管理从手工管理到计算机管理的重要转变。其中,包括添加出库信息、添加出库单、和库存查询的子功能。添加出库信息主要是添加出库的配件、出库配件的数量、出库时的价格等。当添加完出库信息点击确定后,会在上面的表中显示出出库的信息,并可以对其进行相应的修改和删除。
作者还在该子模块中设置了计算出库总金额和总数量的功能,这样可以在添加出库配件后及时察看到配件的库存情况。
当库管人员添加完配件的出库信息后发现,添加的信息有某项是错的可以通过此功能来实现。但当修改的时候一定要注意数据库的一致性。
退货管理:
配件出库房以后,由于各种原因要遇到用户退货。退货管理主要就是对照着退货报在退货界面里添加退货配件信息。添加退货配件信息主要是添加被退回的配件的ID、配件的数量、出库时的价格,退货时间,和退货人员等。当添加完退货信息点击确定后,会在上面的表中显示出出库的信息,并可以对其进行相应的修改和删除。
然后还可以进行统计被退回的配件的总金额和总数量。
库存盘点:
库存盘点是个综合管理部分,作者在设计个功能的时候,主要是和前面的入库管理,出库管理,退货管理等几大模块有机联系起来的,通过整体的运算了查看最终的实际库存,盈亏数量,以及盈亏金额。这也是整个系统最核心的部分。以通过盘点的形式来了解这个公司的运做情况[5]。
系统查询 |
产品信息查询 |
客户信息查询 |
供应商信息查询 |
出库信息查询 |
退货信息查询 |
库存记录查询 |
图3.4 系统查询结构图
§3.2.3系统查询
产品信息查询:
在此子模块中可以对配件编号、名称、型号、产地,等进行新增、删除、修改的操作,也可直接查询配件报表中所有配件的信息。并且在药配件信息查询子模块中又加入了配件信息添加、配件信息修改和配件信息删除功能。通过这几大功能可以完成对配件报表里的数据进行添加、修改和删除,但是在完成对配件报表的操作的时候一定要保证数据库的完整性,即对其它数据表进行相应的修改。
客户信息查询:
在此子模块中可以对客户编号、名称、地址,邮编,等进行新增、删除、修改的操作,也可直接查询客户信息表中所有的信息。并且在信息查询子模块中又加入了信息添加、信息修改和信息删除功能。通过这几大功能可以完成对客户表里的数据进行添加、修改和删除,但是在完成对客户表的操作的时候一定要保证数据库的完整性,即对其它数据表进行相应的修改。
供应商信息查询:
在此子模块中可以对供应商编号、名称、地址,邮编,等进行新增、删除修改的操作,也可直接查询供应商信息表中所有的信息。并且在信息查子模块中又加入了信息添加、信息修改和信删除功能。通过这几大功能可以完成对客户表里的数据进行添加、修改和删除,但是在完成对供应商表的操作的时候一定要保证数据库的完整性,即对其它数据表进行相应的修改。
出库信息查询:
设计功能的目的是为了便于库管员对出库的配件及信息进行查询核对工作以及盘点工作。此功能包括按出库编号查询、配件名称查询等。这样就可以满足工作人员多方面的查询目的。
入库信息查询:
设计功能的目的是为了便于库管员对入库的配件及信息进行查询方便以后的审
工作。此功能包括按入库编号查询、配件名称查询等。
退货信息查询:
便于库管员对退货的配件及信息进行查询方便以后的审核工作。此功能包括按退货编号查询、配件名称查询等。
图3.5 系统设置结构图
§3.2.4系统帮助
用户管理:添加用户,删除用户,修改用户,为不同的用户级别设置不同的权限。
注销: 退出主界面,返回用户登陆界面。
§3.3系统全局数据流程图
图3.6系统的全局流程图
§3.3系统模块设计
§3.3.1采购计划模块设计
1.简要说明
库管员根据配件库存情况和市场销售状况,编制采购计划,交给配件管理员。
2.流程描述
(1)库管员选取采购计划菜单项,开始使用案例。
(2)系统显示采购计划表输入界面。
(3)库管员输入配件查询条件。
(4)系统显示符合条件的配件信息、各分公司该期配件计划采购总量,实际库存量。
(5)库管员选中要采购的配件,添加到采购计划列表中。
(6)保存采购信息。
(7) 库管员在采购计划列表中输入各配件计划采购数量及其他相关信息。
(8) 使用案例结束。
3.本案例中所涉及信息的描述
采购计划表 实物库存表 材料库存表
4.采购模块序列图
图3.7采购模块序列图
§3.3.2入库模块设计
1.简要说明
库管员生成入库单,实物入库。
2.流程描述
(1)库管员选取配件入库菜单项,开始使用案例。
(2)系统显示配件入实物库界面。
(3)库管员输入配件基本信息。
(4)库管员修改入库配件数量,确认入库。
(5)系统保存出库单,计算实物库结存。
(6)使用案例结束。
3.本案例中所涉及信息的描述
配件入库单 配件基本信息 实物库存表 采购计划表
4.入库模块序列图
图3.8入库模块序列图
§3.3.3入库模块流程图
1.简要说明
库管员生成出库单,实物出库。
2.流程描述
(1)库管员选取配件出实物库菜单项,开始使用案例。
(2)系统显示配件出实物库界面。
(3)库管员输入物资编号。
(4)系统显示物资基本信息和对应实际库存。
(5)库管员修改配件出库数量,确认出库。
(6)系统保存出库单,计算实物库结存。
(7)使用案例结束。
3.本案例中所涉及信息的描述:
配件出库单 配件基本信息 配件实物库存表
4.出库模块序列图
图3.9出库模块序列图
§3.3.4退货模块设计
1.简要说明
配件出库房以后,由于各种原因要遇到用户退货。退货管理主要就是对照着退货报表在退货界面里添加退货配件信息。
2.流程描述
(1)库管员选取退货菜单项,开始使用案例。
(2)系统显示退货界面。
(3)库管员选择退货表。
(4) 库管员确认退货。
(5)系统修改库存。
(6)使用案例结束。
3.本案例中所涉及信息的描述
配件基本表 退货报表 配件实物库存表
4.退货模块序列图
图3.10退货模块序列图
§3.3.5配件盘点
1.简要说明
库存盘点是个综合管理部分,作者在设计个功能的时候,主要是和前面的入库管理,出库管理退货管理联系起来的,通过整体的运算了查看最终的实际库存,盈亏数量,以及盈亏金额。
2.前提条件
- 库管员具有相关权限。
3.流程描述
(1)库管员选取盘点菜单项,开始使用案例。
(2)系统显示盘点界面。
(3)库管员输入待盘点配件的查询条件。
(4)系统生成并显示符合查询条件的盘点报表。
(5)库管员输入各配件的实际库存。
(6)系统算出各配件的盘亏、盘盈,保存。
(7)使用案例结束。
4.本案例中所涉及信息的描述
配件库存表 配件盘点表
5.盘点模块序列图
图3.11盘点模块序列图
§3.3.6配件基本信息的查询模块设计
1.简要说明
用户查询基本信息。
2.流程描述
(1)系统显示基本信息查询界面。
(2)用户输入查询条件。
(3)系统显示查询结果。
(4)用户浏览结果.
(5)系统保存结果。
(6)使用案例结束。
4.本案例中所涉及信息的描述
配件基本信息表
5.配件基本信息查询模块序列图
图3.12配件基本信息查询模块序列图
§3.3.7用户登录
1.简要说明
所有用户在使用系统前,输入用户帐号和密码,系统验证给用户使用本系统的相应权限。
2.流程描述
(1)用户启动本系统,开始使用案例。
(2)系统显示登录界面。
(3)用户输入帐号,密码。
(4)若帐号和密码合法,系统返回用户权限,否则进入其它事件流。
(5)根据用户权限显示系统主界面。
(6)使用案例结束。
3.本案例中所涉及信息的描述
用户信息表
4.登录模块序列图
图3.13登录模块序列图
§4.1模块实现的理论基础
在进行界面与数据的接口中,作者选用的是Ado,Ado是ActiveX Data Object的缩写,它是Microsoft数据库应用程序开发新接口,是Microsoft新的数据访问技术,是建立在OLE DB之上的高层数据库访问技术。ADO被设计用来同新的数据访问层OLE DB Provider一起协同工作,以提供通用数据访问(Universal Data Access)。OLE DB是一个低层的数据访问接口,用它可以访问各种数据源,包括传统的关系型数据库,以及电子邮件系统及自定义的商业对象。
即使对OLE DB、COM不了解也能轻松使用ADO,因为它非常简单易用,甚至比DAO都要简单易用,并不失灵活性。ADO提供了一个熟悉的,高层的对OLE DB的自动封装接口。如同RDO对象是ODBC驱动程序接口一样,ADO对象是OLE DB的接口;如同不同的数据库需要它们自己ODBC驱动程序一样,不同的数据源要求它们自己的OLE DB提供者(OLE DB Provider)。虽然目前OLE DB提供者比较少,但微软正积极推广该技术,并打算用OLE DB取代ODBC[6]。
ADO最基本的操作流程:初始化COM库,引入ADO库定义文件;用Connection对象连接数据库;利用建立好的连接,通过Connection、Command对象执行SQL命令,或利用Record Set对象取得结果记录集进行查询、处理;使用完毕后关闭连接释放对象。
§4.2登陆模块实现
在这一阶段主要的任务是进行编程工作,把所有的功能按照需求分析所描述的那样实现即可,数据库的结构设计好了就比较好做,没有很深的算法等技术要求。
登陆界面设计,用户名从系统的用户表中取,界面如下图,在登陆之后超级用户可以进行管理员和用户的添加,删除,修改。
图4.1 汽车配件登陆界面
登陆界面的设置是很简单的代码,主要是对数据库中的登陆权限表查询,其部分主要代码如下:
Set adoUser = New Recordset
adoUser.Open "select * from 登陆权限表 where 用户名 like '" & Text1.Text & "' and 密码 like '" & Text2.Text & "'", db, adOpenStatic, adLockOptimistic //从登陆权限表中查询用户信息
If adoUser.RecordCount = 1 Then
If adoUser(0) = "用户" Then
Else
Form3.info.Visible = True
Form3.rcyw.Visible = True / /如果登录的只是普通用户,那么录入和日常管理他们将没有权利
End If
MsgBox "欢迎进入汽车配件管理系统!"//当密码,用户和登录权限表里面是一致的时候,登录成功,弹出对话框 ‘欢迎进入汽车配件管理系统’
Form3.Show
Unload Me
Else
MsgBox "输入密码错误!"//弹出对话提示“输入密码错误”
§4.3配件入库模块实现
入库模块的设置是很简单的代码,主要是对数据库中的配件信息查询和对入库报表进行添加,修改,删除,及统计出库的总金额和总数量。
进入模块点击查询按钮,这里为用户提供了两种查询方式,分别为入库编号查询和名称查询。首先任意选择一种查询方式,在给出的查询条件下拉列表中选择查询依据,接着在输入框中输入对应的查询条件信息,点击确定即可此条查询操作。(如:选择但条件查询,选择查询依据为编号,输入查询编号为0001,点击确定即可完成查找操作。)
进入该模块点击添加按钮,在输入信息框中输入入库信息,点击确定完成添加操作。
进入该模块点击修改按钮,即可修改入库的基本信息,点击确定即可完成修改操作。
进入该模块点击删除按钮,点击要删除的入库配件的基本,点击确定即可完成修改入库。
入库界面的设置
图4.2 入库模块界面
其部分主要代码如下
Private Sub Form_Load()
Set db = New Connection // 建立一个新的连接
db.CursorLocation = adUseClient
db.Open "PROVIDER=MSDASQL;dsn=qcmis;uid=;pwd=;" // 连接到 数据库qcmis
Set adoPrimaryRS2 = New Recordset
adoPrimaryRS2.Open "select * from 产品入库报表 Order by 入库编号", db, adOpenStatic, adLockOptimistic //从数据库中调用产品入库报表,并按照入库编号排序
Set DataGrid2.DataSource = adoPrimaryRS2
Set adoPrimaryRS1 = New Recordset
adoPrimaryRS1.Open "select * from 配件信息报表", db, adOpenStatic, adLockOptimistic //显示配件信息报表的基本信息
Set DataGrid1.DataSource = adoPrimaryRS1
mbDataChanged = False
End Sub
§4.4配件出库界面设计
出库界面的设置是很简单的代码,主要是对数据库中的配件信息查询和对出库报表进行添加,修改,删除,及统计出库的总金额和总数量。
进入模块点击查询按钮,这里为用户提供了两种查询方式,分别为出库编号查询和名称查询。首先任意选择一种查询方式,在给出的查询条件下拉列表中选择查询依据,接着在输入框中输入对应的查询条件信息,点击确定即可此条查询操作。(如:选择但条件查询,选择查询依据为编号,输入查询编号为0001,点击确定即可完成查找操作。)
进入该模块点击添加按钮,在输入信息框中输入入库信息,点击确定即完成添加操作。
进入该模块点击修改按钮,即可修改出库的基本信息,点击确定即可完成修改操作。
进入该模块点击删除按钮,点击要删除的出库配件的基本,点击确定即可完成修改出库。
出库界面设计如下:
图4.3出库模块界面
其统计总金额和总数量的主要代码如下:
Private Sub count_Click()
On Error GoTo err
Dim i As Integer
Dim lZongjia As Long
Dim lZongshuliang As Long
lZongjia = 0
lZongshuliang = 0
Set adoPrimaryRS = New Recordset
adoPrimaryRS.Open "select * from 产品出库报表 Order by 出库编号", db, adOpenStatic, adLockOptimistic //从数据库中调用产品出库报表,并按照出库编号排序
adoPrimaryRS.MoveFirst
'Do While (Not adoPrimaryRS.BOF)
For i = 1 To adoPrimaryRS.RecordCount
adoPrimaryRS(8) = adoPrimaryRS(5) * adoPrimaryRS(4)
lZongjia = adoPrimaryRS(8) + lZongjia
lZongshuliang = adoPrimaryRS(4) + lZongshuliang
adoPrimaryRS.MoveNext // 计算出库配件的总金额和总数量
Next i
'Loop
'adoPrimaryRS.Update
MsgBox "出库总金额'" & lZongjia & "',出库总数量'" & lZongshuliang & "'"//用弹出对话框的形式显示出出库的总金额和总数量
Set DataGrid1.DataSource = adoPrimaryRS
err:
End Sub
§4.5配件退货界面设计
退货界面的设置是很简单的代码,主要是对数据库中的配件信息查询和对出库报表进行添加,修改,删除,及统计退货的总金额和总数量。
进入模块点击查询按钮,这里为用户提供了两种查询方式,分别为退货编号查询和名称查询。首先任意选择一种查询方式,在给出的查询条件下拉列表中选择查询依据,接着在输入框中输入对应的查询条件信息,点击确定即可此条查询操作。(如:选择但条件查询,选择查询依据为编号,输入查询编号为0001,点击确定即可完成查找操作。)
进入该模块点击添加按钮,在输入信息框中输入入库信息,点击确定即完成添加操作。
进入该模块点击修改按钮,即可修改出库的基本信息,点击确定即可完成修改操作。
进入该模块点击删除按钮,点击要删除的出库配件的基本,点击确定即可完成修改入库。
退货界面设计如下:
图4.4退货模块界面
部分关键代码如下
Private Sub count_Click()
On Error GoTo err
Dim i As Integer
Dim lZongjia As Long
Dim lZongshuliang As Long
lZongjia = 0
lZongshuliang = 0
Set adoPrimaryRS = New Recordset
adoPrimaryRS.Open "select * from 退货报表", db, adOpenStatic, adLockOptimistic
adoPrimaryRS.MoveFirst// 从数据库中调出退货报表
While Not adoPrimaryRS.EOF
adoPrimaryRS(9) = adoPrimaryRS(3) * adoPrimaryRS(4)
lZongjia = adoPrimaryRS(9) + lZongjia//计算退货金额
lZongshuliang = adoPrimaryRS(3) + lZongshuliang//计算退货总数量
adoPrimaryRS.MoveNext
Wend
MsgBox "退货总金额'" & lZongjia & "',退货总数量'" & lZongshuliang & "'"//弹出对话框显示退货金额和退货总数量
Set DataGrid.DataSource = adoPrimaryRS
err:
End Sub
§4.6配件盘点界面设计
库存盘点是个综合管理部分,盘点界面的设置相对其他界面的设置要复杂些,主要是对入库,出库,退货,等几个日常业务进行总的计算和盘点来查看当前时期的库存量。,这也是整个系统核心的部分。
配件盘点界面设计如下:
图4.5 盘点模块界面
关键代码如下:
Set adoPrimaryRS3 = New Recordset
adoPrimaryRS3.Open "select * from 产品入库报表 Order by 入库编号", db, adOpenStatic, adLockOptimistic // 从数据库里面调用产品入库报表并按照入库编号序
Set adoPrimaryRS4 = New Recordset
adoPrimaryRS4.Open "select * from 产品出库报表 Order by 出库编号", db, adOpenStatic, adLockOptimistic //从数据库里面调用产品出库报表并按照入库编号序
Set adoPrimaryRS5 = New Recordset
adoPrimaryRS5.Open "select * from 退货报表", db, adOpenStatic, adLockOptimistic
adoPrimaryRS3.MoveFirst / /从数据库里面调用退货报表并按照入库编号排序
Do While (Not adoPrimaryRS.BOF)
For i = 1 To adoPrimaryRS3.RecordCount
lRukuZongjia = adoPrimaryRS3(8) + lRukuZongjia
lRukuZongshuliang = adoPrimaryRS3(4) + lRukuZongshuliang
adoPrimaryRS3.MoveNext //计算入库总数量和总金额
Next i
adoPrimaryRS4.MoveFirst
'Do While (Not adoPrimaryRS.BOF)
For i = 1 To adoPrimaryRS4.RecordCount
lchuukuZongjia = adoPrimaryRS4(8) + lChukuZongjia
lChukuZongshuliang = adoPrimaryRS4(4) + lChukuZongshuliang
adoPrimaryRS4.MoveNext //计算出库总数量和总金额
Next i
adoPrimaryRS5.MoveFirst
'Do While (Not adoPrimaryRS.BOF)
For i = 1 To adoPrimaryRS5.RecordCount
lTuihuoZongjia = adoPrimaryRS5(9) + lTuihuoZongjia
lTuihuoZongshuliang = adoPrimaryRS5(4) + lTuihuoZongshuliang
adoPrimaryRS5.MoveNext //计算退货总金额和总数量
Next i
Text3.Text = lRukuZongshuliang - lChukuZongshuliang
Text4.Text = lChukuZongjia - lRukuZongjia
Text2.Text = lRukuZongshuliang + lTuihuoZongshuliang – lChukuZongshuliang //把计算出来的库存数量,盈亏数量,盈亏金额显示在相对应的框里面
adoPrimaryRS2.AddNew
§4.7用户权限管理的界面设计
用户权限管理界面的设置是很简单的代码,系统主要的功能有:
用户管理、权限管理,本系统中,根据每个人的角色来确定他所拥有的权限,比如用户就不能添加,修改,数据库的相关数据。
(1)增加、修改、删除用户和管理员。
(2)设置用户密码。
(3)对用户的权限进行修改、收回权限。
其部分主要代码如下:
Private Sub Form_Load()
Set db = New Connection
db.CursorLocation = adUseClient
db.Open "PROVIDER=MSDASQL;dsn=qcmis;uid=;pwd=;"
Set adoPrimaryRS = New Recordset
adoPrimaryRS.Open "select * from 登陆权限表", db, adOpenStatic, adLockOptimistic//调用数据库里面的登陆权限表,并添加用户或管理员
Set DataGrid1.DataSource = adoPrimaryRS
End Sub
第五章 系统功能测试
§5.1引言
§5.1.1编写目的
测试分析报告是在测试分析的基础上,对测试的结果以及测试的数据等加以记录和分析总结。它也是测试过程中的一个重要环节,同时,它也是对软件性能的一个总的分析和认可及对不足之处的说明。因此,测试分析报告对于今后对软件的功能的加强,不足之处的弥补等都起着十分重要的提纲作用。另外,它还有利于今后软件开发者阅读原程序,根据测试提供的数据和结果,分析原代码,掌握各函数的功能和局限性。从而缩短软件开发者的再开发时间和所耗费的精力.资金[7] 。
从这方面上,不难发现,测试分析报告所指明的对象主要是针对于软件开发者。
§5.1.2测试技术
作者所采用的设计技术是适用于黑盒测试的边界值分析和等价划分相结合的策略。使用边界值分析方法设计测试方案首先应该确定边界情况,通常输入等价类和输出等价类的边界,选取的测试数据应该刚好等于、刚好小于和刚刚大于边界值。等价划分法首先需要划分输入数据的有效等价类和无效等价类。在确定输入数据的等价类时常常还需要分析输出数据的等价类,以便根据输出数据的等价类导出对应的输入数据等价类[8]。
经验表明,用这种方法设计出的测试方案暴露程序错误的能力最强。必要时用等价划分法补充测试方案。
§5.1.3定义
ORACLE: 系统服务器所使用的数据库管理系统(DBMS)。
SQL: 一种用于访问查询数据库的语言
事务流:数据进入模块后可能有多种路径进行处理。
主键:数据库表中的关键域。值互不相同。
外部主键:数据库表中与其它表的主键关联的域。
ROLLBACK: 数据库的错误恢复机制。
§5.2 测试计划执行情况
运行环境
由于系统将由两部分程序组成,客户机上的客户程序及数据服务器程序[9]。
1.服务器端子系统的运行要求:
系统软件: Window 2000 Server
数据库管理系统:ORACLE
硬件要求:Pentium4 2.0以上, 1024M RAM, 80G HD
2.客户端子系统的运行要求:
系统软件: Window NT Workstation
数据库管理系统:SQL Server
硬件要求:Pentium 3以上,256M RAM, 40G HD
§5.3 测试用列
本项目所做的测试列表如下:表5.1
项目名称: 汽车配件管理系统
测试类型(单元/集成/功能):配件信息管理功能
测试日期:2006/5/24
编号 | 测试说明 | 期望结果 | 实际结果 | 成功/失败 |
1 | 测试配件信息添加是否成功 | 配件信息成功写入数据库。 | 数据库中可以找到新添加记录。 | 成功 |
2 | 测试删除配件信息 | 将配件信息删除。 | 数据库中配件信息删除 | 成功 |
3 | 测试修改配件信息 | 将修改的配件信息输入数据库。 | 数据库中配件信息修改 | 成功 |
表5.1 测试用例表
本项目所做的测试列表如下:表5.2
项目名称: 汽车配件管理系统
测试类型(单元/集成/功能):配件入库管理
测试日期:2006/6/4
编号 | 测试说明 | 期望结果 | 实际结果 | 成功/失败 |
1 | 测试入库配件信息录入 | 配件信息成功写入数据库。 | 数据库中可以找到新添加记录。 | 成功 |
2 | 测试查询入库配件基本信息 | 显示选中的入库配件信息。 | 调用数据库的入库报表显示入库配件信息 | 成功 |
3 | 测试统计入库配件的总金额和数量 | 将入库配件的总金额和总数量成功显示 | 弹出对话框显示入库配件的总金额和总数量 | 成功 |
表5.2 测试用例表
本项目所做的测试列表如下:表5.3
项目名称: 汽车配件管理系统
测试类型(单元/集成/功能):配件盘点管理功能
测试日期:2006/6/1
编号 | 测试说明 | 期望结果 | 实际结果 | 成功/失败 |
1 | 测试查询所有日常业务的基本情况 | 显示入库,出库,退货等总的情况 | 调用数据库里面的入库表,出库表,退货表 | 成功 |
2 | 测试综合计算所有业务操作,计算实际库存量 | 综合计算并把实际库存,盈亏金额及盈亏数量显示在相对的框内 | 显示库存,盈亏金额和数量 | 成功 |
表5.3 测试用例表
§5.3.2测试机构和人员
本模块由钟莉进行测试:
§5.4评价
§5.4.l软件能力
经过测试表明,用户要求的各项基本功能均可正常实现。
§5.4.2缺陷和限制
当多用户同一时间段内进行操作时,会影响处理速度甚至出现脚本错误。
数据库需要SQL-server软件支持,可移植性较差,且操作人员要求有一定的计算机基础。
§5.4.3建议
限制同时使用的用户个数或提高系统的性能。
对操作人员进行上岗培训。
§5.4.4测试结论
软件基本达到设计要求,软件功能完整,用户界面良好,错误处理正确,且能正确提示错误种类。总的来说,软件通过测试[10]。
结论
汽车配件管理信息系统是一个典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立 起数据一致性和完善性强,数据安全性好的库,而对于后者则要求应用程序功能完善,易使用等特点,经过考虑,作者使用VB语言,在短时间内建立系统应用原形,然后,对初始原形系统进行需求迭代,不断修正和改进,直到形成满意的可行系统。
经过四个月左右的设计和开发,汽车配件管理信息系统基本开发完毕。本系统的内容涵盖了物流主要的和必要的业务内容,它主要包括了:配件入库,配件出库,配件退货,库存盘点等四大要日常业务。
本系统的每一个管理子系统均做到内容详备合理、界面安排合理、查询检索功能强大。采用数据累计保存,满足用户和管理员对历史资料的查询等优点。
虽然系统总体功能已经实现,但是由于时间的关系,数据验证还不完全,还存在一些问题。数据库的关系稍欠逻辑性,希望加强在数据库方面的学习。
通过此次管理信息系统的开发遵循了标准软件开发的过程,由此对四年的学习进行了全面的回顾与总结。
1.系统分析的重要性
系统分析工作的主要任务是明确问题、确定问题,了解市场和用户的信息需求。由于对于用户信息需求的最大限度往往是软件开发成败的关键,而用户大都不是计算机专业人员,引导他们从规范和专业的角度考虑需求是重要的。由于明白这一点的重要性,在软件开发开始的时候就重视这一点,从而避免了多走弯路,加快了系统开发的进
2.严格按照既定规划进行系统的开发
在系统开发的前半部分工作,如系统分析、系统设计为系统开发的后续工作制定了大量的规范。因此,一旦系统分析、系统设计经过大量的论证,对比、反复考虑后定稿,在系统的实施过程中就要严格遵循这些即定的规范去做,本人对这个问题不够重视,所以也造成了部分工作不得不重来。
3.注重吸收商用软件的优点
在这点尤其要注重的是商用软件普遍具有的人性化的界面,友好的操作方法,方便、易用,这样才能促进用户选择使用。
4.广泛的积累素材
一本好的参考资料往往能够使系统的开发工作事半功倍,并使我们眼界不至于只局限于一个特定的框架体。
参考文献
[1] 黄淼云、方楠 .Visual Basic 6.0 程序设计实例[M] .北京希望电子出版社.1998
第1章第5节 56~88页.
[2] 胡昌平.信息管理科学导论[M].科学技术文献出版社. 1995.1第2章第1节43~66页
[3] 孟广军.信息资源管理导论[M].北京科学出版社.1998.6第1章第3节. 34~48页
[4] 郑杰,陶雷.实用软件工程[M]. 清华大学出版社.1999.5 第2章第1节 45~67页
[5] 陈禹.经济信息管理概论[M].中国人民大学出版社.1996.2 第1章第1节3~27页
[6] 朱顺泉,姜灵敏. 管理信息系统与务实.人民邮电出版社.1999.5 第2章第1节 45~67页
[7] 李明源,王宁. 数据库系统研究[M].高等教育出版社1998.4 第6章第1节 125~167页
[8] 司光亚 ,莫凯,秦光裕译.现代信息系统设计方法[M].北京电子工业出版社. 2005.9 第2章第5节 59~87页
[9] [美] Grady Booch,James Rumbaugh,and invar Jacobson --Addison-Wesley .The Unified Modeling Language User Guide[J], 2004.3 第35卷第2期. 178~181页
[10] [美] Efrem G.Mallach .Decision Support and Data Warehouse System.北京:清华大学出版社 2004.3 第22卷第2期.123 ~155
标签:毕设,varchar,退货,汽车配件,查询,配件,源码,入库,出库 From: https://blog.csdn.net/qq_52030698/article/details/139423279