为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

汽车配件销售管理信息系统毕业设计论文

2017-10-21 50页 doc 359KB 28阅读

用户头像

is_337177

暂无简介

举报
汽车配件销售管理信息系统毕业设计论文汽车配件销售管理信息系统毕业设计论文 *本科毕业设计(论文) 目 录 1 绪论 ................................................................................................................................. 1 1.1 研究背景 ....................................................................................
汽车配件销售管理信息系统毕业设计论文
汽车配件销售管理信息系统毕业论文 *本科毕业设计(论文) 目 录 1 绪论 ................................................................................................................................. 1 1.1 研究背景 ............................................................................................................... 1 1.2 利源汽车配件销售管理的现状 ........................................................................... 1 1.3 论文主要研究内容 ............................................................................................... 2 2 利源汽车配件销售管理系统开发工具简介 ................................................................. 3 3 利源汽车配件销售管理系统需求分析 ......................................................................... 5 3.1 利源汽车配件销售管理系统可行性研究 ........................................................... 5 3.2 利源汽车配件销售管理系统业务分析 ............................................................... 5 3.3 利源汽车配件销售管理系统数据分析 ............................................................... 6 3.3.1 系统数据流程图 ......................................................................................... 6 3.3.2 系统数据字典 ........................................................................................... 11 4 利源汽车配件销售管理系统总体设计 ....................................................................... 12 4.1 利源汽车配件销售管理系统数据库的设计 ..................................................... 12 4.1.1 数据库概念结构设计 ............................................................................... 12 4.1.2 数据库逻辑结构设计 ............................................................................... 12 4.1.3 数据库物理结构设计 ............................................................................... 13 4.2 利源汽车配件销售管理系统总体功能设计 ..................................................... 16 4.2.1 系统功能描述 ........................................................................................... 16 4.2.2 系统功能模块划分 ................................................................................... 17 5 利源汽车配件销售管理系统详细设计 ....................................................................... 18 5.1 利源汽车配件销售管理系统代码设计 ............................................................. 18 5.2 利源汽车配件销售管理系统输入输出设计 ..................................................... 19 5.3 利源汽车配件销售管理系统物理配置设计 ..................................................... 22 6 利源汽车配件销售管理系统实现 ............................................................................... 23 6.1 登录界面的实现 ................................................................................................. 23 6.2 主界面的实现 ..................................................................................................... 23 6.3 基础信息模块的实现 ......................................................................................... 24 6.4 信息查询模块的实现 ......................................................................................... 24 6.5 销售管理模块的实现 ......................................................................................... 26 6.6 销售分析模块的实现 ......................................................................................... 27 6.7 系统维护模块的实现 ......................................................................................... 31 6.8 系统信息模块的实现 ......................................................................................... 31 7 小结与不足 ................................................................................................................... 32 I *本科毕业设计(论文) 7.1 论文小结 ............................................................................................................. 32 7.2 论文不足 ............................................................................................................. 32 参考文献 ............................................................................................................................. 33 致 谢 ................................................................................................................................. 34 附录A ................................................................................................................................. 35 附录B.................................................................................................................................. 52 II *本科毕业设计(论文) 1 绪论 1.1 研究背景 随着经济的飞速发展,汽车已经逐步进入了家庭。人们购买汽车的能力和需求越来越高,这就刺激了汽车行业的飞速发展,使得汽车配件销售行业的竞争也越来越激烈。如何在激烈的竞争中取胜,是每个配件销售企业当前所面临的最严峻的挑战。而一个适用的销售管理系统则可以帮助企业提高管理效率,进而提升整体的管理水平, [1]使企业在竞争中取胜。 榆林利源汽车配件公司也处在这个复杂多变又充满激烈竞争的市场之中,同样使用了管理系统帮助企业经营。但是,在公司不断地发展的过程中,现有的系统由于其功能过于简单,逐渐暴露出许多不足,这些不足使公司的管理陷入了困境,如销售人员增加了,效率却下降了;业务量增加了,销售数据却混乱不堪等。这都反映出现有的管理系统已经不能发挥其提高管理效率的作用,反而成为利源公司发展中的一个障碍。此时的利源公司需要一个更新、更适用的系统来引导公司的管理走出困境、取得发展。论文正是基于这样的研究背景,根据利源公司配件销售业务需求,针对其现行系统的不足,同时结合配件销售的特点,为其设计出一套适用的汽车配件销售管理系统。 1.2 利源汽车配件销售管理的现状 利源汽车配件公司是一家专门经营汽车配件销售的企业。公司销售管理经历了最初的手工管理阶段到现在的销售管理系统管理阶段。虽然应用了现行的管理系统以后,公司的管理水平有了提高,但是系统功能的简单化随着公司的发展已经不能满足管理的需要,甚至使管理陷入混乱,具体体现在以下3个方面。 1 系统只对配件的信息进行管理,缺少对供应商及客户信息的管理。由于供应商信息管理的缺失,使公司不能准确的掌握供应商的供货情况,也无法对此做出判断,也就难以选择出更合适的供应商。而客户信息管理的缺失则造成对客户关系维护的困难,进而影响到对客户的服务水平。 2 系统只进行数据登记,没有数据统计分析功能。这就造成管理者无法明确地掌握配件销售的整体状况,也就不能有针对性的制定销售策略,以提高销售业绩、应对市场变化。 3 系统无法有效支持销售策略的执行。对于预先制定的销售策略,公司的人员时有遗忘,而系统也缺乏对此的提示,影响了销售管理水平的改善。 总之,以上种种现行系统的不足表现出现行系统没有实现对销售管理全过程的系统管理,因此导致了利源公司管理混乱的现状。 1 *本科毕业设计(论文) 1.3 论文主要研究内容 论文在软件工程思想的指导之下,采用结构化的系统开发方法,按用户至上的原 [2]则,完成了利源汽车配件销售管理系统的开发。论文针对现有系统的不足进行改进开发,主要的研究内容有以下几个方面。 1 对公司销售管理的全过程进行整体设计,使系统的管理涵盖配件销售的每个阶段,即使销售管理系统包括对配件进货、入库、销售、退货、售后分析决策以及决策执行这七个阶段的信息管理模块。 2 针对基础信息管理方面,增加对供应商信息和客户信息管理的模块。 3 实现销售统计分析功能。具体是通过各种图表直观显示出销售中各种数据的统计结果,包括对配件入库、销售、退货各阶段数据以及对单一配件的销售、供应商供货、客户购买等数据的统计分析。 4 通过销售报警的方式实现对销售决策执行的支持。即将销售决策执行的内容和时间设定为销售报警的内容,在决策执行时机到来时系统发出预警,提醒用户执行销售决策。 通过以上各方面的研究,使得新的销售管理系统达到适应利源公司业务拓展、满 [3]。 足公司管理需求的目的 2 *本科毕业设计(论文) 2 利源汽车配件销售管理系统开发工具简介 利源汽车配件销售管理系统前台界面的开发工具选择Delphi 7,后台数据库开发工具选择Microsoft SQL Server 2000。 1 Delphi 7 简介 Delphi是由著名的Borland(现在已和Inprise合并)公司开发的可视化软件开发工具。Delphi被称为第四代编程语言,它具有简单、高效、功能强大的特点。对于利源汽车配件销售管理系统的开发,使用Delphi语言较为方便,以下是Delphi语言的特点及优势。 (1)开发的高效 Delphi是一个RAD(Rapid Application Development,快速开发工具),它有可视化的开发环境。 ? Delphi是真正面向对象的。其基于面向对象技术构建的VCL库中的所有组件都可以被继承以创建新的组件。 ? Delphi的Code Insight技术(即代码自动完成功能)是建立在编译器信息上的,使用编译器信息的好处是更具灵活性。 (2)语言的高效 Delphi基于Object Pascal语言。这是一种真正支持面向对象而又优雅美观的语言。它在功能的健全上毫不逊色于各种其他的面向对象语言,但同时又不贪多,不盲目地增加复杂性。使得开发者运用各种模式进行设计时都能得到完善的支持,实现时却不用考虑太多语言/编译器细节。 (3)编译的高效 可以说,Delphi是Windows平台上最快的高级语言本地代码编译器。快速的编译器可以使用户频繁地在修改代码和编译运行的状态间切换。Delphi的编译器从来不会让程序员有等待的感觉。 (4)执行的高效 Delphi不但编译速度快,生成的目标代码的执行效率也非常高。Delphi与C++ Builder使用的是同一个后端优化器,因此其生成的代码的效率与优秀的C++编译器生成的代码相同。 Delphi生成完全本地代码,因此Delphi编译结果的可执行文件可以被独立执行、分发,不需要其他运行库支持。当然,也可以选择动态链接编译,这样可以大大减小可执行文件的长度。 (5)维护的高效 Delphi程序员虽然会在一定程度上被限制在VCL提供的框架中(当然,完全可以在Delphi中摆脱VCL编程),但这样更容易建立良好设计的代码。代码框架的优 3 *本科毕业设计(论文) [4]良使得软件维护成本大大降低。 2 Microsoft SQL Server 2000简介 Microsoft SQL Server 2000是Microsoft公司推出的关系型数据库管理系统。它具有强大的数据可管理功能,并提供了一套功能完善且具备可视化界面的管理工具。其优点具体表现在以下三个方面。 (1)非过程化语言 Microsoft SQL Server2000是一个非过程化的语言,因为它一次处理一个记录,可以对数据提供自动导航。Microsoft SQL Server2000允许用户在高层的数据结构上工作,不必对单个记录进行操作,而是对记录集操作。所有SQL语句接受集合作为输入,返回集合作为输出。Microsoft SQL Server2000的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。 (2)统一的语言 Microsoft SQL Server2000可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、 应用程序员、决策支持系统人员及许多其它类型的终端用户。基本的SQL 命令只需很少时间就能学会,最高级的命令在几天内便可掌握。 Microsoft SQL Server2000为许多任务提供了命令,包括: ? 查询数据 ? 在表中插入、修改和删除记录 ? 建立、修改和删除数据对象 ? 控制对数据和数据对象的存取 ? 保证数据库一致性和完整性 (3)所有关系数据库的公共语言 由于所有主要的关系数据库管理信息系统都支持SQL语言,用户可将使SQL Server 2000的技能从一个RDBMS转到另一个。而且所有用SQL编写的程序都是可以 [5]移植的。 4 *本科毕业设计(论文) 3 利源汽车配件销售管理系统需求分析 3.1 利源汽车配件销售管理系统可行性研究 利源汽车配件销售管理系统可行性研究主要包括该系统的管理可行性研究、经济可行性研究和技术可行性研究三方面。 首先,是管理可行性研究。利源汽车配件现在采用销售管理系统已经不能满足业务增长的需求,阻碍了公司的发展,急需一个新的销售管理系统来改进公司销售管理的混乱,即具备了新系统开发的管理可行性。 其次,是经济可行性研究。对于一个具有一定经营规模的公司,利源公司有足够的能力承担管理系统开发和实施的各项费用。公司在采用了新系统后也可以享受到管理费用、人工成本的减少等各项收益。综合分析其成本和收益,可以看出新系统的建设和使用是有利于利源公司长远发展的。 最后,是技术可行性研究。由于公司的所有人员都具有现行系统的操作经验和一般的计算机操作水平,因此经过一定的培训都可以掌握新系统的使用,具备技术操作 [6]的可行性。 总之,通过对利源汽车配件公司的管理、经济、技术三方面的可行性研究,可以得出该销售管理系统可以开发并实施。 3.2 利源汽车配件销售管理系统业务分析 利源汽车配件销售管理系统主要涵盖的业务有:供应商、客户、以及配件基本信息管理,配件入库、销售出库、退货时的登记和配件库存的统计,配件销售状况的分析以及分析后对于配件销售报警。具体每项业务的分析如下: 1 供应商、客户、配件基本信息的管理业务包括对这三者信息的添加、修改、删除及查询。供应商的信息是公司选定一个新的供应商时就对其信息输入系统管理,以备配件入库信息管理的需要。客户的信息是公司对每一位新的客户建立其信息档案,与其购买的配件对应管理,加深对客户的需求了解。配件的信息是对每一种新上架的配件建立其档案,配合每次的进货、入库、销售、退货等环节的信息需求。在需要时,按照不同的条件对四者的信息进行查询并打印。 2 配件入库、销售出库、退货时的登记和配件库存、进货的统计业务。在每次配件入库时,配合该配件的基本信息和供应商的信息,对入库的配件数量、进货价等信息进行登记。销售出库时,再配合配件的基本信息和客户的信息,对配件销售的信息进行登记。配件退货时,配合配件销售的信息,对退货的理由等信息进行登记。对配件的入库、销售、退货信息汇总,统计出配件的库存、进货信息。 3 配件销售状况的分析业务是指对利源公司配件入库、销售、退货三方面的情况按照日月年不同的时段、按照供应商、客户等不同的条件进行统计分析,并按照需 5 *本科毕业设计(论文) 要绘制出不同的统计分析图表,帮助利源公司的管理者做出合理的销售决策。 4 配件销售的报警业务是根据配件销售分析的结果将销售决策转化为具体的销售调整而设定的销售提示报警。此外,报警内容也包括管理者根据经营环境的变化做出的销售预警。 [7]整体业务流程图如图3-1所示。 销售提货单供应商 人员 配件入库记录 订货单 销售分析决策 销售客户人员 销售单 配件销售记录经理 退货申请 销售未核准的退 人员客户货申请 退货单配件退货记录 图3-1 业务流程图 3.3 利源汽车配件销售管理系统数据分析 3.3.1 系统数据流程图 利源汽车配件销售管理系统数据流程图按需要分为顶层数据流程图、一层数据流 [8]程图、二层数据流程图即各项数据处理的子数据流程图三层。 1 顶层数据流程图 顶层数据流程图从总体上反映了利源汽车配件销售管理系统与两个重要的外部实体供应商和客户的信息联系,如图3-2所示。 P1 供应商 客户 利源汽车配件销售管理系统 图3-2 顶层数据流程图 6 *本科毕业设计(论文) 2 一层数据流程图 一层数据流程图反映了利源汽车配件销售管理系统总体的功能模块,即供应商信息登记、配件入库登记、配件销售、客户信息登记、退货信息登记、库存统计、销售分析、销售报警8个模块之间的信息联系,具体如图3-3所示。 供应商信息 P1.1 供应商信息记录 D1.1 .01 供应商信息登记 配件入库记录 D1.4 供应商 P1.2 配件信息记录 D1.3 配件入库登记 配件信息 订单 信息 P1.4 P1.6 客户 配件销售 库存统计 客户信息 退货信息 P1.3 P1.5 配件销售记录 D1.5 客户信息登记 退货信息登记 P1.7 退货信息记录 D1.6 销售分析 客户信息记录 D1.2 P1.8 销售报警记录 D1.7 销售报警 图3-3 一层数据流程图 从图3-3可以看出利源公司将公司上游的供应商的基本信息登记在供应商信息记录中,对供应商提供的配件信息也进行记录,并对供应商与入库的配件建立联系。在客户购买配件时,对客户及购买的信息(即销售信息)都进行记录,在销售信息中体现出客户、配件之间的联系。客户在购买后又有退货的需要,则建立起客户、销售及退货的信息联系。而库存的统计又是对入库、销售、退货的综合。销售分析则是对入库、销售、退货、库存这四方面的统计分析,并把得出的结论转化为具体的销售调整, 7 *本科毕业设计(论文) 同时用销售报警的手段实现。 3 二层数据流程图 二层数据流程图是一层数据流程图中的8个功能模块分别细化后的子数据流程图,如图3-4中各分图所示。 供应商信息记录 D1.1 新供应 商信息 供应商新供应 信息 商信息 P1.1.1 P1.1.2 供应商 接收并查询供应商信息 录入新供应商信息 (a) 供应商信息登记子数据流程图 (a)图反映了在进行供应商信息登记时,先查询已有的供应商记录核实该供应商的信息是否已存在,对不存在的供应商信息(即新供应商信息)进行登记。 配件信息记录 D1.3 新配件 信息 配件 新配件 信息 信息 P1.2.1 P1.2.2 供应商 接收并查询配件信息 录入新配件信息 已有配件入库信息 新配件 P1.2.3 入库信 息 录入配件入库信息 供应商信息记录 D1.1 配件入库记录 D1.4 (b) 配件入库登记子数据流程图 (b)图反映了在进行配件入库的信息登记时,先查询配件信息记录,对已有配件信息记录的进行入库信息登记,对不存在配件信息记录的新配件先进行配件信息的登记,再进行配件入库信息的登记。 8 *本科毕业设计(论文) 客户信息记录 D1.2 新客户 信息 客户 新客户 信息 信息 P1.3.1 P1.3.2 客户 接收并查询客户信息 录入新客户信息 (c) 客户信息登记子数据流程图 (c)图反映了客户在购买配件时,先对客户的信息进行查询,如果是新客户,先进行客户基本信息的登记。 配件信息记录 客户信息记录 D1.3 D1.2 订单 信息 P1.4.1 P1.4.2 客户 查询配件库存量 录入配件销售信息 配件销 售信息 配件销售记录 D1.5 (d) 配件销售登记子数据流程图 (d)图反映了销售配件时根据客户的需求查询配件的库存记录,再对配件的销售信息进行记录。 配件销售记录 D1.5 退货 退货 信息 理由 P1.5.1 P1.5.2 客户 查询配件售出情况 核实配件退货理由 不予以退货的理由 P1.5.3 配件退货记录 D1.6 录入配件退货信息 (e) 配件退货登记子数据流程图 9 *本科毕业设计(论文) (e)图反映了客户由于某些原因提出退货的要求,先对其提供的购买信息进行查证核实,在确定购买属实后再对客户提出的退货理由进行判断。若理由符合退货原则,则登记退货信息;若理由不符合公司的退货原则,则对客户说明。 配件销售记录 配件退货记录 D1.5 D1.6 销售信息 退货信息 库存信息 P1.7.1 按条件汇总统计信息 入库信息 P1.7.2 配件入库记录 D1.4 按汇总数据绘制分析图表 销售分析数据 (f) 销售分析子数据流程图 (f)图反映了系统对配件的入库、销售、退货、库存信息的统计分析。先对这几项信息按照不同的条件进行汇总,再根据需要将汇总的数据绘制成直观的图表,为销售决策提供依据。其中库存数据直接由入库、销售、退货的数据汇总而成。 销售分析数据 P1.8.1 销售报警记录 D1.7 设定销售报警 报警处理信息 P1.8.3 P1.8.2 报警处理 销售操作 (g) 销售报警子数据流程图 图3-4 二层数据流程图 (g)图反映了根据销售分析,将做出的销售决策或调整转化为具体的方案后用销售报警手段实现的过程。即根据销售分析数据设定销售报警,当报警提醒时,采取 10 *本科毕业设计(论文) 销售操作,同时对报警也进行处理。这里的销售操作指具体的销售调整行为。报警处 理指对此项报警的解除、重新设定或其他的操作。 3.3.2 系统数据字典 (见附录A) 11 *本科毕业设计(论文) 4 利源汽车配件销售管理系统总体设计 4.1 利源汽车配件销售管理系统数据库的设计 数据库设计是在选定数据库管理信息系统的基础上建立数据库的过程。它包括概 [9]念结构设计、逻辑结构设计和物理结构设计三个阶段。 4.1.1 数据库概念结构设计 数据库的概念结构设计是指对数据库概念模型的设计,是用概念模型对现实世界进行全面、准确的描述。其中最为广泛的方法是P.P.Chen于1976年提出的实体-联系方法(Entity-Relationship Approach),简称E-R图法。 系统的E-R图如图4-1所示。 报警供应商 N M 管理 入库N MN NM 管理员管理 配件 MNM 销售退货 N N M 客户 图4-1 系统总E-R图 4.1.2 数据库逻辑结构设计 系统逻辑结构设计是将概念结构设计阶段完成的概念模型转化为SQL Sever 2000系统所支持的数据模型,转换后的具体关系模型如下所示。 1 配件(配件编号,配件名称,配件分类,配件规格或车型,配件单位,产地, 最低库存,最高库存,通用车型,库存数量,库存价格,零售价,会员 价,汽修厂价,备注) 2 供应商(供应商编号,供应商名称,联系人,联系电话,移动电话,账号, 12 *本科毕业设计(论文) 开户银行,地址,邮编,备注) 3 客户(客户编号,客户分类,客户名称,联系人,联系电话,移动电话,账 号,开户银行,地址,邮编,备注) 4 管理员(管理员编号,管理员姓名,登录口令,登录密码,性别,年龄,权 限级别,职务,备注) 5 销售报警(报警编号,报警时间,报警内容,报警处理,设定管理员编号, 处理管理员编号,备注) 6 配件入库(入库单号,配件编号,供应商编号,入库数量,入库价,入库金 额,入库日期,管理员编号,备注) 7 配件销售(销售单号,配件编号,客户编号,销售数量,售出价,销售金额, 销售日期,管理员编号,备注) 8 配件退货(退货单号,销售单号,配件编号,客户编号,退货数量,退货金 额,退货理由,退货日期,管理员编号,备注) 4.1.3 数据库物理结构设计 数据库的物理结构设计是为逻辑数据模型选取一个最适合应用环境的物理结构, 包括数据存储结构。系统采用的是SQL Server 2000数据库,系统数据库名为qpxsgl, 该数据库中包括8个数据表。 1 配件表 配件表主要用于存放配件的基本信息,其结构如表4-1所示。 表4-1 配件表 字段 字段名称 数据类型 字段大小 说明 字符型 配件编号 1 pj_bh 7 字符型 配件名称 2 pj_mc 20 字符型 配件分类 3 pj_fl 12 字符型 配件规格或车型 4 pj_gg 10 字符型 配件单位 5 pj_dw 4 字符型 产地 6 cd 10 字符型 通用车型 7 tycx 10 整型 最低库存 8 zdkc 4 整型 最高库存 9 zgkc 4 整型 库存数量 10 kcsl 4 货币型 库存价格 11 kcjg 8 货币型 零售价 12 lsj 8 货币型 会员价 13 hyj 8 货币型 汽修厂价 14 qxcj 8 字符型 备注 15 bz 50 13 *本科毕业设计(论文) 2 供应商表 供应商表主要存放供应商的基本信息,其结构如表4-2所示。 表4-2 供应商表 字段 字段名称 数据类型 字段大小 说明 字符型 供应商编号 1 gys_bh 5 字符型 供应商名称 2 gys_mc 20 字符型 联系人 3 lxr 10 字符型 联系电话 4 lxdh 12 字符型 移动电话 5 yddh 12 字符型 账号 6 zh 20 字符型 开户银行 7 khyh 20 字符型 地址 8 dz 20 字符型 邮编 9 yb 7 字符型 备注 10 bz 50 客户表 3 客户表主要存放客户的基本信息,其结构如表4-3所示。 表4-3 客户表 字段 字段名称 数据类型 字段大小 说明 字符型 客户编号 1 kh_bh 5 字符型 客户名称 2 kh_mc 30 字符型 客户分类 3 kh_fl 8 字符型 联系人 4 lxr 10 字符型 联系电话 5 lxdh 12 字符型 移动电话 6 yddh 12 字符型 账号 7 zh 20 字符型 开户银行 8 khyh 20 字符型 地址 9 dz 30 字符型 邮编 10 yb 7 字符型 备注 11 bz 50 4 管理员表 管理员表主要存放管理员的基本信息,其结构如表4-4所示。 14 *本科毕业设计(论文) 表4-4 管理员表 字段 字段名称 数据类型 字段大小 说明 字符型 管理员编号 1 gly_bh 2 字符型 管理员姓名 2 gly_xm 10 字符型 登录口令 3 dlkl 10 字符型 登录密码 4 pass 6 字符型 性别 5 xb 2 字符型 年龄 6 nl 2 字符型 权限级别 7 qxjb 10 字符型 职务 8 zw 16 字符型 备注 9 bz 50 5 销售报警表 销售报警表主要存放销售报警的设定和处理信息,其结构如表4-5所示。 表4-5 销售报警表 字段 字段名称 数据类型 字段大小 说明 字符型 报警编号 1 bjbh 8 日期型 报警时间 2 bjsj 8 字符型 报警内容 3 bjnr 100 字符型 报警处理 4 bjcl 10 字符型 设定管理员编号 5 gly_bh 2 字符型 处理管理员编号 6 gly_bh2 2 字符型 备注 7 bz 50 6 配件入库表 配件入库表主要存放配件每次入库的信息,其结构如表4-6所示。 表4-6 配件入库表 字段 字段名称 数据类型 字段大小 说明 字符型 入库单号 1 rkdh 8 字符型 配件编号 2 pj_bh 7 字符型 供应商编号 3 gys_bh 5 整型 入库数量 4 rksl 4 货币型 入库价 5 rkj 8 货币型 入库金额 6 rke 8 日期型 入库日期 7 rkrq 8 字符型 管理员编号 8 gly_bh 2 字符型 备注 9 bz 50 15 *本科毕业设计(论文) 7 配件销售表 配件销售表主要存放销售配件的信息,其结构如表4-7所示。 表4-7 配件销售表 字段 字段名称 数据类型 字段大小 说明 字符型 销售单号 1 xsdh 8 字符型 配件编号 2 pj_bh 7 字符型 客户编号 3 kh_bh 5 整型 销售数量 4 xssl 4 货币型 售出价 5 scj 8 货币型 销售金额 6 xse 8 日期型 销售日期 7 xsrq 8 字符型 管理员编号 8 gly_bh 2 字符型 备注 9 bz 50 8 配件退货表 配件退货表主要存放配件退货登记的信息,其结构如表4-8所示。 表4-8 配件退货表 字段 字段名称 数据类型 字段大小 说明 字符型 退货单号 1 thdh 8 字符型 配件编号 2 pj_bh 7 字符型 客户编号 3 kh_bh 5 字符型 销售单号 4 xsdh 8 整型 退货数量 5 thsl 4 字符型 退货理由 6 thly 14 货币型 退货金额 7 the 8 日期型 退货日期 8 thrq 8 字符型 管理员编号 9 gly_bh 2 字符型 备注 10 bz 50 4.2 利源汽车配件销售管理系统总体功能设计 4.2.1 系统功能描述 基础信息管理功能:包括对配件信息、供应商信息、客户信息的添加、修改和删除。 销售查询功能:包括对销售中各种信息的查询和打印,有配件信息、供应商信息及客 户信息的查询和打印,配件入库、配件销售、配件退货、配件库存及 配件进货信息的查询和打印。 销售管理功能:包括对配件入库、配件销售、配件退货信息的录入、修改和删除,以 16 *本科毕业设计(论文) 及对销售报警的设定和处理。 销售分析功能:包括对单一配件的销售分析、供应商供货的分析、客户购买周期和客 户分类的分析、销售、入库、退货的时间分析。 系统维护功能:包括对用户的添加及其权限的设置、密码的修改、系统日志管理、数 据库的备份和还原。 4.2.2 系统功能模块划分 根据利源公司的业务需求和管理的需要,将系统划分为六个模块:基础信息模块、信息查询模块、销售管理模块、销售分析模块、系统维护模块和系统信息模块。具体的功能模块图如图4-2所示。 图4-2 主要功能模块示意图 17 *本科毕业设计(论文) 5 利源汽车配件销售管理系统详细设计 5.1 利源汽车配件销售管理系统代码设计 1 配件代码设计 配件代码采用7位数字编码,前两位数字代表该配件的分类代号(其他类代 号01,变速器系统代号02,传动系统代号03,底盘代号04,覆盖件代号05, 发动机系统代号06),后五位数字是配件同类型产品的顺序号。 X X X X X X X X 顺序号 分类代号 例如:变速器系统类的第一个配件的编号是0200001,发动机类的第十个配件编 号是0600010。 2 供应商代码设计 供应商的代码采用5位数字编码,前三位数字代表供应商所在地区号的后三 位数字,后两位数字是该地区供应商的顺序号。 X X X X X 顺序号 所在地区代号 例如:西安地区的第一个供应商编号是02901。 3 客户代码设计 客户代码采用5位数字编码,第一位数字代表客户的分类(“1”代表汽修厂, “2”代表会员,“3”代表一般客户),后四位数字代表该类别中客户的顺序号。 X X X X X 顺序号 分类代号 例如:第一个汽修厂客户编号是10001,第三个会员编号是20003. 4 管理员代码设计 管理员代码采用2位数字编码,由于利源公司的管理员较固定,所以采用顺 序编码。 X X 顺序号 例如:第一个管理员编号是01。 18 *本科毕业设计(论文) 5.2 利源汽车配件销售管理系统输入输出设计 1 输入设计 系统的输入表单主要有配件信息表、供应商信息表、客户信息表、配件入库表、配件销售表、配件退货表、销售报警表、管理员信息表,输入表的格式如表5-1、表5-2、表5-3、表5-4、表5-5、表5-6、表5-7、表5-8所示。 表5-1 配件信息表 配配配配配产最最通库库零会汽备件件件件件地 低高用存存售员修注 编名分规单库库车数价价 价 厂号 称 类 格位 存 存 型 量 格 价 或 车 型 表5-2 供应商信息表 供应商供应商联系人 联系电移动电账号 开户银地址 邮编 备注 编号 名称 话 话 行 表5-3 客户信息表 客户客户客户联系联系移动账号 开户地址 邮编 备注 编号 分类 名称 人 电话 电话 银行 表5-4 配件入库表 入库单配件编供应商入库数入库价 入库金入库日管理员备注 号 号 编号 量 额 期 编号 表5-5 配件销售表 销售单配件编客户编销售数售出价 销售金销售日管理员备注 号 号 号 量 额 期 编号 表5-6 配件退货表 退货单销售单配件编客户编退货数退货金退货理退货日管理员备注 号 号 号 号 量 额 由 期 编号 19 *本科毕业设计(论文) 表5-7 销售报警表 报警编号 报警时间 报警内容 报警处理 设定管理处理管理备注 员编号 员编号 表5-8 管理员信息表 管理员管理员登录口登录密性别 年龄 权限级职务 备注 编号 姓名 令 码 别 2 输出设计 系统输出的报表和表单主要有配件信息一览表、供应商信息一览表、客户信息一览表、管理员信息一览表、入库单、销售单、退货单、进货清单,分别如表5-9、表5-10、表5-11、表5-12、表5-13、表5-14、表5-15、表5-16所示。 表5-9 配件信息一览表 利源汽配配件信息一览表 制表日期: 年 月 日 配配配配配产最最通库库零会汽备件件件件件地 低高用存存售员修注 编名分规单库库车数价价 价 厂号 称 类 格位 存 存 型 量 格 价 或 车 型 表5-10 供应商信息一览 利源汽配供应商信息一览表 制表日期: 年 月 日 供应商供应商联系人 联系电移动电账号 开户银地址 邮编 备注 编号 名称 话 话 行 表5-11 客户信息一览表 利源汽配客户信息一览表 制表日期: 年 月 日 客户客户客户联系联系移动账号 开户地址 邮编 备注 编号 分类 名称 人 电话 电话 银行 20 *本科毕业设计(论文) 表5-12 管理员信息一览表 利源汽配管理员信息一览表 制表日期: 年 月 日 管理员管理员登录口登录密性别 年龄 权限级职务 备注 编号 姓名 令 码 别 表5-13 入库单 利源汽配入库单 入库单号 入库日期: 年 月 日 供应商: 地址: 邮政编码: 联系人: 联系电话: 移动电话: 开户银行: 账号: 编号 名称 产地 通用车型 单位 数量 单价 金额 本页合计 表5-14 销售单 利源汽配销售单 销售单号: 购货日期: 年 月 日 购货单位: 地址: 邮政编码: 联系人: 联系电话: 移动电话: 开户银行: 账号: 名称 产地 通用车型 单位 数量 单价 金额 本页合计 地址: 邮政编码: 联系人: 电话: 表5-15 退货单 利源汽配退货单 退货单号: 销售单号: 退货日期: 年 月 日 退货单位: 地址: 邮政编码: 联系人: 联系电话: 移动电话: 开户银行: 账号: 名称 产地 通用车型 单位 数量 单价 金额 本页合计 21 *本科毕业设计(论文) 表5-16 进货清单 利源汽配进货清单 制表日期: 年 月 日 配件编号 配件名称 配件分类 规格 单位 产地 通用车型 进货量 5.3 利源汽车配件销售管理系统物理配置设计 操作系统:Windows 2000/XP 开发工具:Delphi 7.0 数据库:SQL Server 2000 硬件配置:CPU:Pentium 200MHz 以上 内存:32MBRAM以上 硬盘:100MB以上磁盘空间 显示分辨率:最低800×600像素 建议1024×768像素 系统的开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。该系统以Windows2000/XP为平台,采用Delphi面向对象程序的开发语言,还采用当前流行的Microsoft SQL Server2000数据库,有效的保证了系统兼容性和可扩展[10]性。 22 *本科毕业设计(论文) 6 利源汽车配件销售管理系统实现 6.1 登录界面的实现 系统的用户主要是利源公司的销售人员和管理者,他们登录时都使用设定的登录口令和密码进行系统登录,每次登录的登录信息将被系统自动记入系统日志,以便管理员查看人员登录系统的情况。登录界面如图6-1所示。 图6-1 系统登录界面 6.2 主界面的实现 系统的主界面有该系统六个功能模块的菜单和树形列表以及常用功能的快捷按钮,方便用户使用不同的方式操作系统。不同权限级别的用户对该系统的操作有不同的限制,“系统管理员”权限的用户可以对系统所有功能进行操作查看,而“一般管理员”权限的用户不能对“系统维护”这一功能模块进行操作或查看。系统主界面如图6-2所示。 图 图6-2 系统主界面 23 *本科毕业设计(论文) 6.3 基础信息模块的实现 系统的基础信息模块包含三个子模块,分别实现的是配件信息、供应商信息、客户信息这三种基础信息的管理。这三个子模块的实现为利源公司的销售管理提供了基础信息,方便了销售管理业务的进行。其具体实现的功能是对这三种信息的添加、修改和删除,实现该功能的代码见附录。配件信息管理界面如图6-3所示。 图6-3 配件信息管理界面 6.4 信息查询模块的实现 系统的信息查询模块包括了配件信息、供应商信息、客户信息查询,入库信息、销售信息、退货信息、库存信息、进货信息查询8个子模块。在每个子模块中都可以实现对该模块信息按照不同的条件进行查询及打印。 1 配件信息查询 该模块可以按照配件的编号、名称、规格分别进行查询,也可以查出相同类别或相同车型或同一产地的配件。 2 供应商信息查询 该模块可以按照供应商的编号、名称、联系人、联系电话、地址进行供应商的查找,也可以查出开户银行相同的供应商。 3 客户信息查询 该模块可以按照客户的编号、名称、联系人、联系电话、地址进行客户的查找,也可以查出同一类别或开户银行相同的客户。 4 入库信息查询 该模块可以根据需要,按照入库单号、配件编号、供应商编号、操作员编号、入库日期这五种条件单一或组合查出入库信息。 5 销售信息查询 24 *本科毕业设计(论文) 该模块可以根据需要,按照销售单号、配件编号、客户编号、操作员编号、销售日期这五种条件单一或组合查出销售信息。 6 退货信息查询 该模块可以根据需要,按照退货单号、销售单号、配件编号、客户编号、操作员编号、退货日期这六种条件单一或组合查出退货信息。 7 库存信息查询 该模块可以根据需要,查出充足(即库存量大于最低库存)、不足(即库存量小于最低库存)、过量(即库存量大于最高库存)的配件信息。也可以通过显示行颜色的区分(红色代表库存过低,低于最低库存需补货的配件;蓝色代表库存量高于最高库存的配件;无颜色代表库存在正常范围(即库存数量小于最高库存,大于最低库存) [11]内的配件)直观地看出这三种情况下的配件信息。 8 进货信息查询 该模块是对系统自动统计出的缺货信息的显示。通过该界面,用户可以清晰地看到实时的缺货信息,以及系统给予的进货量的建议。可以直接打印出进货的清单。 配件信息查询、销售信息查询、库存信息查询界面分别如图6-4、图6-5、图6-6所示。 图6-4 配件信息查询界面 图6-4显示出系统中,配件分类属于发动机系统类的配件共有14种。 图6-5 销售信息查询界面 图6-5显示出,在2008年12月8日销售了编号为0100001的暖风开关共三只, 25 *本科毕业设计(论文) 销售总额87元,分别销售给被客户编号30007的刘先生,10001的景阳汽修,10003的张武汽修。 图6-6 库存信息查询界面 图6-6显示出,库存信息被刷新后,库存配件的种类共91种,其中编号0200001的变速箱总成库存过量(即库存数量大于最高库存),编号0200003的2/3同步器齿固库存不足(即库存数量低于最低库存)。 6.5 销售管理模块的实现 系统的销售管理模块是对配件销售中各种业务操作的实现,包括配件入库、配件销售、配件退货、销售报警这四个子功能模块。 1 配件入库 该模块是对配件入库信息管理的模块,它主要实现对配件入库的信息即供应商与配件对应信息及入库数量、入库价等信息的登记、修改、删除,同时系统自动增加配件信息中的库存数量。 2 配件销售 该模块是对配件销售信息管理的模块,它主要实现对配件销售的信息即客户与配件对应信息及销售数量、售出价等信息的登记、修改、删除,同时系统自动减少配件信息中的库存数量。 3 配件退货 该模块是客户因为某种原因要对已购配件退货,并已得到销售人员核准时,对配件退货信息管理的模块,它主要实现对配件退货的信息即销售信息及退货数量、退货日期等信息的登记、修改、删除,同时系统自动修改配件信息中的库存数量。 4 销售报警 该模块是系统中的一个重点模块,这是利源公司的管理者对销售中的各项数据进 26 *本科毕业设计(论文) 行销售分析后做出一些销售调整的决策预警。这个预警是提前设定的,以时间作为触发器,当设定的销售报警的时间来临时,报警就会在系统登录时弹出,提示销售人员做出销售调整的操作。 入库管理、销售报警界面分别如图6-7、图6-8所示。 图6-7 入库管理界面 图6-8 销售报警界面 图6-8显示出,2009年6月5日的销售报警界面,红色自动标出的是当天的报警信息;蓝色标出的是报警时间还未到,所以还未处理的报警信息;无色的则是已经报警且被处理过的报警信息。 6.6 销售分析模块的实现 利源汽车配件销售管理系统的销售分析模块也是系统中的一个重要模块,包括入库分析、销售分析、退货分析、配件分析、客户分析和供应商分析六个子模块。在这六个子模块中按不同的条件,用不同的图表对利源公司销售的情况进行总体的或局部的分析,帮助管理者制定出更利于公司经营的决策。 1 入库分析 在入库分析子模块中,系统主要分析出某一年的月入库情况和某个月的日入库情况。同时可以根据需要,将这些情况用三种不同的图表来显示。其中条形图可以帮助 27 *本科毕业设计(论文) 管理者看出每个点的数据具体值,可以对不同点的数值进行比较。折线图则可以对某一年或某一月的入库总趋势进行显示,帮助用户看出入库的趋势。饼形图则显示出各月或各日入库额所占的年入库额或月入库额的比重大小。这些图表可以从侧面反映出利源公司的经营状况。 2 销售分析 销售分析子模块和入库分析类似,主要分析出某一年的月销售情况和某个月的日销售情况。也可以用条形图、折线图、饼形图来查看统计的数值、趋势或份额。与入库分析相配合,可以更直观、更全面的查看到了公司总体的经营状况。 3 退货分析 退货分析子模块在继承了上述两个模块共有的时间分析后,还加入了对退货理由分布及对退货客户分类的分析。退货理由分布分析可以看出在退回的配件中因为质量不合格、购买出错、销售出错这三种理由的配件各占多少数量,以此来分析出是否增加对配件质量的鉴定或是提高销售人员的业务水平。退货客户分类分析图可以看出退货的客户主要分布在一般客户、会员或是汽修厂,并配合退货理由的分布来判断出如何提高对客户的服务。 4 配件分析 配件分析子模块主要是针对单一的某种配件的销售情况进行的分析。它可以分析出某种配件某一年的月销售情况和该配件某一月的日销售情况。这可以帮助用户看出该配件的销售淡季和旺季,并以此作为配件库存的调整依据,促进销售。 5 客户分析 客户分析子模块包括了客户分类分析和购买周期分析两部分。其中客户分类分析是对某一年或某一月中三类客户(即汽修厂、会员、一般客户)购买额的分析,从而针对不同的客户群制定不同的销售策略。购买周期分析则是对单一客户的月购买额或日购买额的分析,从而找出该客户的购买周期,为特殊客户制定特定的销售策略,提高客户购买的满意度。 6 供应商分析 供应商分析子模块是对单一供应商的供货情况进行的分析,找出供货量减少或增加的供应商,并分析出现此状况的原因,以此作为选择出更合适的供应商的依据。 销售分析、退货分析、配件分析、客户分类分析、供应商分析界面分别如图6-9、图6-10、图6-11、图6-12、图6-13所示。 28 *本科毕业设计(论文) 图6-9 销售分析界面 图6-9显示出,2008年中各月的销售分析图,其中11月份的销售额最多,五月份的销售额最低。 图6-10 退货分析界面 图6-10显示出,共有3次配件退货,其中2次是由于购买出错导致的,1次是由于质量问题导致的。针对这个结果,销售人员可以进一步查看质量问题退货的配件信息及供应信息,并以此作为该配件的供应商选择的一个依据。 图6-11 配件分析界面 29 *本科毕业设计(论文) 图6-11显示出,编号0100001的配件在2008销售量非常集中,主要在2008年的1、2、11、12月,其中又以2008年1月、12月最多。这样的现象可以引起销售人员的重视。经查询后可以知道0100001配件是暖风开关,而且是212/2020型号的,这种型号的暖风开关是用于冬季启动车内暖气的开关,因而该配件在冬季使用的次数较多,而其他季节则基本不用,即该配件的销售具有很强的季节性。因此,对于该配件的销售策略可以适当调整:在每年的1、2、11、12月增加对该配件的存货,即提前进货并加大库存量,而其他月份则保持最低库存即可。 图6-12 客户分类分析界面 -12显示出,2008年公司的销售额中汽修厂的购买额最多,即可推断出汽修 图6 厂是利源公司的最大的客户群,因此可以对汽修厂提供额外的送货服务以稳固双方的合作关系;同时应该扩大这个群体,使更多的汽修厂成为长期合作的客户。此外,也不能忽略会员这个群体,可以通过适当的价格优惠发展出更多的会员。 图6-13 供应商分析界面 图6-13显示出,2008年编号02902供应商供货的情况,每月都有供货且1月的金额总数额最大,最高一次是1月11日。 30 *本科毕业设计(论文) 6.7 系统维护模块的实现 该模块是对系统的支持管理模块,包括用户管理、密码设置、系统日志、数据库备份、数据库还原五个子模块。 1 用户管理子模块是系统管理员对所有使用该系统的用户信息的管理,包括对用户的添加和删除以及对用户权限的设置。 2 密码设置是针对每个用户修改其登录系统所使用的登录口令和登录密码修改而设置的。 3 系统日志是对用户系统登录和退出系统的信息进行查看的模块。 4 数据库的还原和备份是对系统数据保护的一项,可以定期对数据库进行 [12]备份和还原,维护系统的数据。 6.8 系统信息模块的实现 该模块包括系统的帮助子模块和系统的关于子模块。 31 *本科毕业设计(论文) 7 小结与不足 7.1 论文小结 在利源汽车配件销售管理系统的设计与实现中,通过对利源公司业务的深入调查和分析,从总体上对该公司的配件销售管理进行规划和设计,并充分利用各种资源成功地实现了对利源汽车配件销售管理系统的设计。主要完成的工作有: 1 以配件销售管理过程为中心,从总体上完善了系统的流程,使系统实现了配件销售中从入库、销售、退货、分析等全过程的管理; 2 增加了供应商信息管理功能,加强了对配件供应环节的管理;增加了客户信息管理功能,有效地提高对客户的服务水品; 3 实现了随时对销售的各种数据进行统计分析的功能,有效地支持了销售决策的制定,增强了公司对各种变化的应对能力; 4 实现了销售报警功能,提醒用户的一些销售操作,帮助用户执行各种销售决策或调整。 按照最初的规划,从以上四个重点方面改进完善了利源公司的现行系统,最终完成了对利源汽车配件销售管理系统的设计与实现,满足了利源公司管理和发展的需求。 7.2 论文不足 系统设计的任务虽然圆满完成,但是还有一些地方需要进一步改进和完善,具体如下: 1 一些与其他系统的接口(如财务系统、采购物流系统等)未能实现; 2 仅实现了系统的单机使用功能,未考虑到系统的联机使用。 利源汽车配件销售管理系统还需要在今后的使用过程中根据需要不断地改进和完善,才能更好地适应利源公司的需要,也才能不断地提高公司的管理水平,促进公司的业务发展。 32 *本科毕业设计(论文) 参考文献 [1] Kenneth C. Laudon,Jane P. Laudon. Management Information Systems Managing the thDigital Firm [M].9 Edition. New York:Pearson Education,2007. [2] 张海藩.软件工程导论[M].第2版.北京:清华大学出版社,1992. [3] 赵定贵.汽车配件销售管理系统开发设计[D].四川:电子科技大学,2007. [4] 李俊平,薛晓燕等.Delphi面向对象程序设计[M].第2版.北京:高等教育出版社,2006. [5] 罗运模,王珊等.SQL Server数据库系统基础[M].高等教育出版社,2002. [6] 甘仞初.信息系统分析与设计[M].颜志军,杜晖,龙虹.第1版.北京:高等教育出版社,2006. [7] 黄梯云.管理信息系统[M].李一军.第3版.北京:高等教育出版社,2005. [8] 柳佩九,匡巧艳,杨开泰等.管理信息系统及其开发技术[M].第1版.长沙:国防科技大学出版社,2005. [9] 苗雪兰,刘瑞新,宋会群.数据库原理及应用教程[M].第2版.北京:机械工业出版社,2005. [10] 周兴华,李增民,臧洪光. .Delphi7数据库项目案例导航[M].第1版.北京:清华大学出版社,2005. .北京:人民邮电出版[11] 明日科技,华传铭,梁冰.Delphi组件参考大全[M].第1版 社,2006. [12] 明日科技,梁冰,李钟尉,吕双.Delphi技术方案宝典[M].第1版.北京:人民邮电出版社,2008. 33 *本科毕业设计(论文) 致 谢 衷心感谢我的指导老师——*老师,她从一开始的选题、开题、系统的设计、论文的撰写及后来的答辩都给予了我很大的指导和帮助。她系统的思维方式和独到的专业见解都使我的系统设计思维有了很大的突破。她谦虚严谨的治学态度、一丝不苟的敬业精神、仔细耐心的指导方式也深深影响了我,并将使我受益终身。 特别感谢*老师,在我的系统编程中对我悉心地指导和解惑,帮助我走出了设计中的困境。他认真的工作态度和丰富的专业知识都使我受益匪浅。 同时感谢答辩小组的各位老师对我毕业设计的指导和评审。 最后感谢所有大学四年里培育和教导过我的老师,感谢他们的谆谆教诲。也感谢和我朝夕相处的大学同学,感谢他们的支持和帮助。 34 *本科毕业设计(论文) 附录A 1 数据项的定义 (1)数据项编号:A01 数据项名称:配件编号 简述或别名:配件的编号 数据项类型:字符型 长 度:7 (2)数据项编号:A02 数据项名称:配件名称 简述或别名:配件的名称 数据项类型:字符型 长 度:20 (3)数据项编号:A03 数据项名称:配件分类 简述或别名:配件的分类 数据项类型:字符型 长 度:12 (4)数据项编号:A04 数据项名称:配件规格 简述或别名:配件的规格或车型 数据项类型:字符型 长 度:10 (5)数据项编号:A05 数据项名称:配件单位 简述或别名:配件的单位名称 数据项类型:字符型 长 度:4 (6)数据项编号:A06 数据项名称:产地 简述或别名:配件的产地 数据项类型:字符型 长 度:10 (7)数据项编号:A07 数据项名称:通用车型 35 *本科毕业设计(论文) 简述或别名:配件的通用车型 数据项类型:字符型 长 度:10 (8)数据项编号:A08 数据项名称:数量 简述或别名:配件的入库数量、销售数量、库存数量、最低库存量、最高 库存量、退货数量 数据项类型:数值型 长 度:4 (9)数据项编号:A9 数据项名称:价格 简述或别名:配件的入库价格、库存价格、零售价、会员价、汽修厂价、 售出价 数据项类型:货币型 长 度:8 (10)数据项编号:A10 数据项名称:备注 简述或别名:备注 数据项类型:字符型 长 度:50 (11)数据项编号:A11 数据项名称:编号 简述或别名:供应商的编号、客户的编号 数据项类型:字符型 长 度:5 (12)数据项编号:A12 数据项名称:名称 简述或别名:供应商的名称、客户的名称 数据项类型:字符型 长 度:20 (13)数据项编号:A13 数据项名称:联系人 简述或别名:供应商的联系人、客户方的联系人 数据项类型:字符型 长 度:10 36 *本科毕业设计(论文) (14)数据项编号:A14 数据项名称:联系电话 简述或别名:供应商的联系电话、客户的联系电话 数据项类型:字符型 长 度:12 (15)数据项编号:A15 数据项名称:移动电话 简述或别名:供应商的移动电话、客户的移动电话 数据项类型:字符型 长 度:12 (16)数据项编号:A16 数据项名称:账号 简述或别名:供应商的账号、客户的账号 数据项类型:字符型 长 度:30 (17)数据项编号:A17 数据项名称:开户银行 简述或别名:供应商的开户银行、客户的开户银行 数据项类型:字符型 长 度:20 (18)数据项编号:A18 数据项名称:地址 简述或别名:供应商的地址、客户的地址 数据项类型:字符型 长 度:20 (19)数据项编号:A19 数据项名称:邮编 简述或别名:供应商的邮编、客户的邮编 数据项类型:字符型 长 度:7 (20)数据项编号:A20 数据项名称:客户分类 简述或别名:客户的分类 数据项类型:字符型 长 度:12 37 *本科毕业设计(论文) (21)数据项编号:A21 数据项名称:单号 简述或别名:入库、销售、退货的单据号码 数据项类型:字符型 长 度:8 (22)数据项编号:A22 数据项名称:日期 简述或别名:入库日期、销售日期、退货日期 数据项类型:日期型 长 度:8 (23)数据项编号:A23 数据项名称:退货理由 简述或别名:退货的理由 数据项类型:字符型 长 度:14 (24)数据项编号:A24 数据项名称:管理员编号 简述或别名:员工的编号 数据项类型:字符型 长 度:2 (25)数据项编号:A25 数据项名称:管理员姓名 简述或别名:员工的姓名 数据项类型:字符型 长 度:10 (26)数据项编号:A26 数据项名称:登录口令 简述或别名:员工登录系统的用户名 数据项类型:字符型 长 度:10 (27)数据项编号:A27 数据项名称:登录密码 简述或别名:员工登录的密码 数据项类型:字符型 长 度:6 38 *本科毕业设计(论文) (28)数据项编号:A28 数据项名称:性别 简述或别名:员工的性别 数据项类型:字符型 长 度:2 (29)数据项编号:A29 数据项名称:年龄 简述或别名:员工的年龄 数据项类型:字符型 长 度:2 (30)数据项编号:A30 数据项名称:权限级别 简述或别名:员工操作系的权限级别 数据项类型:字符型 长 度:10 (31)数据项编号:A31 数据项名称:职务 简述或别名:员工的职务 数据项类型:字符型 长 度:16 (32)数据项编号:A35 数据项名称:报警编号 简述或别名:报警的编号 数据项类型:字符型 长 度:8 (33)数据项编号:A33 数据项名称:报警时间 简述或别名:设定的报警时间 数据项类型:日期型 长 度:8 (34)数据项编号:A34 数据项名称:报警内容 简述或别名:报警的具体内容 数据项类型:字符型 长 度:50 39 *本科毕业设计(论文) (35)数据项编号:A35 数据项名称:报警处理 简述或别名:报警后对报警本身的操作 数据项类型:字符型 长 度:10 2 数据结构的定义 (1)数据结构编号:DS01-01 数据结构名称:新供应商信息 简 述:新供应商提供的基本信息 数据结构组成:供应商名称+联系人+联系电话+移动电话+账号+开户银行+ 地址+邮编 (2)数据结构编号:DS02-01 数据结构名称:配件信息 简 述:配件的基本信息 数据结构组成:配件编号+配件名称+配件分类+配件规格或车型+配件单位 +产地+最低库存+最高库存+通用车型+库存数量+库存价 格+零售价+会员价+汽修厂价 (3)数据结构编号:DS02-02 数据结构名称:配件入库信息 简 述:配件入库的信息 数据结构组成:入库单号+配件编号+供应商编号+入库数量+入库价 +入库日期+职工编号 (4)数据结构编号:DS03-01 数据结构名称:新客户信息 简 述:新客户的基本信息 数据结构组成:客户名称+联系人+联系电话+移动电话+账号 +开户银行+地址+邮编 (5)数据结构编号:DS04-01 数据结构名称:订单信息 简 述:客户需求的订单信息 数据结构组成:配件名称+配件型号+配件规格或车型+配件数量 (6)数据结构编号:DS04-02 数据结构名称:配件销售信息 简 述:配件销售的信息 数据结构组成:销售单号+配件编号+客户编号+销售数量+售出价 40 *本科毕业设计(论文) +销售日期 (7)数据结构编号:DS05-01 数据结构名称:退货请求信息 简 述:客户提出的退货请求 数据结构组成:供应商名称+配件名称+配件型号+配件规格或车型 +退货数量+退货理由 (8)数据结构编号:DS05-02 数据结构名称:退货信息 简 述:核准后的退货信息 数据结构组成:退货单号+配件编号+客户编号+销售单号+退货数量 +退货理由+退货日期 (9)数据结构编号:DS06-01 数据结构名称:库存信息 简 述:配件库存的信息 数据结构组成:配件编号+配件名称+库存数量 (10)数据结构编号:DS07-01 数据结构名称:汇总信息 简 述:配件销售汇总的信息 数据结构组成:(DS02-02)+(DS04-02)+(DS05-02)+(DS06-01) (11)数据结构编号:DS07-02 数据结构名称:分析数据 简 述:配件销售分析的数据 数据结构组成:(DS02-02)+(DS04-02)+(DS05-02)+(DS06-01) (12)数据结构编号:DS08-01 数据结构名称:报警信息 简 述:设定的报警信息 数据结构组成:报警时间+报警内容 (13)数据结构编号:DS08-02 数据结构名称:报警处理信息 简 述:报警后对报警的处理信息 数据结构组成:DS08-01+报警处理 3 数据流的定义 (1)数据流编号:F01-01 数据流名称:新供应商信息 简 述:新供应商提供的基本信息 41 *本科毕业设计(论文) 数据流来源:供应商 数据流去向:供应商信息登记的处理功能 数据流组成:新供应商信息数据结构 流 通 量:2次/月 (2)数据流编号:F02-01 数据流名称:配件信息 简 述:供应商提供的新配件的基本信息 数据流来源:供应商 数据流去向:配件信息登记的处理功能 数据流组成:配件信息数据结构 流 通 量:4次/月 (3)数据流编号:F02-02 数据流名称:配件入库 简 述:采购人员将购回配件入库 数据流来源:配件信息查询或登记的处理功能 数据流去向:配件入库信息录入的处理功能 数据流组成:配件入库信息数据结构 流 通 量:4次/周 (4)数据流编号:F03-01 数据流名称:新客户信息 简 述:客户提供的基本信息 数据流来源:客户 数据流去向:客户信息登记的处理功能 数据流组成:客户信息数据结构 流 通 量:2/日 (5)数据流编号:F04-01 数据流名称:订单 简 述:客户发出的需配件求 数据流来源:客户 数据流去向:配件销售的处理功能 数据流组成:订单信息数据结构 流 通 量:35次/日 (6)数据流编号:F04-02 数据流名称:配件销售 简 述:配件销售给客户的信息 42 *本科毕业设计(论文) 数据流来源:配件库存查询的处理功能 数据流去向:销售信息录入的处理功能 数据流组成:配件销售数据结构 流 通 量:34次/日 (7)数据流编号:F05-01 数据流名称:退货请求 简 述:客户发出的退货请求 数据流来源:客户 数据流去向:配件售出情况查询处理功能 数据流组成:退货请求信息数据结构 流 通 量:1次/周 (8)数据流编号:F05-02 数据流名称:退货许可 简 述:对退货信息的登记 数据流来源:配件售出情况查询处理功能 数据流去向:退货登记处理功能 数据流组成:退货信息数据结构 流 通 量:1次/周 (9)数据流编号:F06-01 数据流名称:销售数量 简 述:用销量计算库存 数据流来源:配件销售登记 数据流去向:库存统计处理功能 数据流组成:配件编号+配件名称+销售数量 流 通 量:35次/日 (10)数据流编号:F06-02 数据流名称:入库数量 简 述:用入库数量计算库存 数据流来源:配件入库登记 数据流去向:库存统计处理功能 数据流组成:配件编号+配件名称+入库数量 流 通 量:35次/日 (11)数据流编号:F06-03 数据流名称:退货数量 简 述:用退货数量计算库存 43 *本科毕业设计(论文) 数据流来源:配件退货登记 数据流去向:库存统计处理功能 数据流组成:配件编号+配件名称+退货数量 流 通 量:1次/周 (12)数据流编号:F07-01 数据流名称:销售情况 简 述:查询销售情况 数据流来源:配件销售登记 数据流去向:汇总处理功能 数据流组成:配件销售信息数据结构 流 通 量:3次/日 (13)数据流编号:F07-02 数据流名称:入库情况 简 述:查询入库情况 数据流来源:配件入库登记 数据流去向:汇总处理功能 数据流组成:配件入库信息数据结构 流 通 量:3次/日 (14)数据流编号:F07-03 数据流名称:退货情况 简 述:查询退货情况 数据流来源:配件退货登记 数据流去向:汇总处理功能 数据流组成:配件退货信息数据结构 流 通 量:1次/周 (15)数据流编号:F07-04 数据流名称:库存情况 简 述:查询库存情况 数据流来源:配件库存统计处理功能 数据流去向:汇总处理功能 数据流组成:配件库存数据结构 流 通 量:3次/日 (16)数据流编号:F08-01 数据流名称:报警设定 简 述:确定报警内容 44 *本科毕业设计(论文) 数据流来源:销售分析处理功能 数据流去向:报警设定处理功能 数据流组成:销售报警数据结构 流 通 量:1次/周 (17)数据流编号:F08-02 数据流名称:报警处理 简 述:对报警的操作 数据流来源:报警设定处理功能 数据流去向:报警处理处理功能 数据流组成:销售处理数据结构 流 通 量:1次/周 4 处理逻辑的定义 (1)处理逻辑编号:P01-01 处理逻辑名称:查询供应商信息 简 述:查询已登记的供应商信息 输入的数据流:供应商信息,来源是供应商信息记录 处 理:查询已登记的供应商信息,查明是否已存在 输出的数据流:已存在的供应商信息,去向是外部实体“供应商”;不存在 供应商信息,去向是“录入供应商信息”处理逻辑 处 理 频 率:2次/周 (2)处理逻辑编号:P01-02 处理逻辑名称:录入供应商信息 简 述:录入新的供应商信息 输入的数据流:供应商信息,来源是供应商提供的信息 处 理:录入新的供应商的基本信息 输出的数据流:“供应商信息记录”数据存储 处 理 频 率:2次/年 (3)处理逻辑编号:P02-01 处理逻辑名称:查询配件信息 简 述:查询已登记的配件信息 输入的数据流:配件信息,来源是配件信息记录 处 理:查询已登记的配件信息,查明是否已存在 输出的数据流:已存在的配件信息,去向是“录入配件入库信息”处理逻 辑;不存在配件信息,去向是“录入配件信息”处理逻辑 处 理 频 率:4次/周 45 *本科毕业设计(论文) (4)处理逻辑编号:P02-02 处理逻辑名称:录入新配件信息 简 述:录入配件的基本信息 输入的数据流:配件信息,来源是供应商提供的配件信息记录 处 理:录入配件的基本信息 输出的数据流:“配件信息记录”数据存储 处 理 频 率:4次/月 (5)处理逻辑编号:P02-03 处理逻辑名称:录入配件入库信息 简 述:配件入库是录入信息 输入的数据流:供应商信息,来源是供应商信息记录;配件信息,来源是 配件信息记录 处 理:录入配件入库的相关信息 输出的数据流:“配件入库记录”数据存储 处 理 频 率:4/周 (6)处理逻辑编号:P03-01 处理逻辑名称:查询客户信息 简 述:查询已登记的客户信息记录 输入的数据流:客户信息,来源是客户信息记录 处 理:查询已登记的客户信息,查明是否已存在 输出的数据流:已存在的客户信息,去向是外部实体“客户”;不存在客户 信息,去向是“录入客户信息”处理逻辑 处 理 频 率:6次/日 (7)处理逻辑编号:P03-02 处理逻辑名称:录入客户信息 简 述:录入新客户信息 输入的数据流:客户信息信息,来源是客户提供的信息 处 理:录入新的客户的基本信息 输出的数据流:“客户信息记录”数据存储 处 理 频 率:2次/日 (8)处理逻辑编号:P04-01 处理逻辑名称:查询配件库存量 简 述:查询配件的库存信息 输入的数据流:客户的订单 处 理:查询配件的库存信息,查明配件存量是否充足 46 *本科毕业设计(论文) 输出的数据流:“录入配件销售信息”处理逻辑 处 理 频 率:36次/日 (9)处理逻辑编号:P04-02 处理逻辑名称:录入配件销售信息 简 述:录入配件销售的相关信息 输入的数据流:客户信息,来源是客户信息记录;配件信息,来源是配件 信息记录 处 理:登记配件销售的信息 输出的数据流:“配件销售记录”数据存储 处 理 频 率:35次/日 (10)处理逻辑编号:P05-01 处理逻辑名称:查询配件销售信息 简 述:查询配件销售的相关信息 输入的数据流:配件销售信息记录 处 理:查询配件销售的信息 输出的数据流:“核实配件退货理由”处理逻辑 处 理 频 率:1次/周 (11)处理逻辑编号:P05-02 处理逻辑名称:核实配件退货理由 简 述:对客户提出的退货理由进行核实 输入的数据流:退货理由 处 理:核实退货理由是否合理 输出的数据流:核准的退货理由,去向是“配件退货登记”处理逻辑; 不予以退货的理由,去向是“客户”外部实体 处 理 频 率:1次/周 (12)处理逻辑编号:P05-03 处理逻辑名称:录入配件退货信息 简 述:录入配件退货的相关信息 输入的数据流:销售信息,来源是“配件销售记录”数据存储;退货理由, 来源是“客户”外部实体 处 理:登记配件退货的信息 输出的数据流:“配件退货记录”数据存储 处 理 频 率:1次/周 (13)处理逻辑编号:P06 处理逻辑名称:统计库存 47 *本科毕业设计(论文) 简 述:统计每种配件的库存量 输入的数据流:配件入库量,来源是“配件入库记录”数据存储;配件销 售量,来源是“配件销售记录”数据存储;配件退货量, 来源是“配件退货记录”数据存储 处 理:配件入库量-配件销售量+配件退货量 输出的数据流:“配件信息记录”数据存储 处 理 频 率:37次/日 (14)处理逻辑编号:P07-01 处理逻辑名称:汇总统计信息 简 述:按一定的条件汇总配件的入库、销售、库存、退货及供应 商、客户信息 输入的数据流:入库信息,来源是“配件入库记录”数据存储;销售信息, 来源是“配件销售记录”数据存储;退货信息,来源是“配 件退货记录”数据存储;库存信息,来源是“库存统计” 处理逻辑;供应商信息,来源是“供应商信息记录”数据 存储;客户信息,来源是“客户信息记录”数据存储 处 理:按一定的条件汇总配件的入库、销售、库存、退货及供应 商、客户信息 输出的数据流: “图表绘制”处理逻辑 处 理 频 率:2次/月 (15)处理逻辑编号:P07-02 处理逻辑名称:图表绘制 简 述:按汇总统计的结果和需要绘制图表 输入的数据流:“汇总统计信息”处理逻辑 处 理:按汇总统计的结果和需要绘制图表 输出的数据流: “设定销售报警”处理逻辑 处 理 频 率:2次/月 (16)处理逻辑编号:P08-01 处理逻辑名称:设定销售报警 简 述:根据销售分析的结果制定销售策略并制定预警 输入的数据流:销售分析数据,来源是销售分析决策 处 理:制定销售的预警 输出的数据流:“销售操作”处理逻辑 处 理 频 率:1次/周 (17)处理逻辑编号:P08-02 48 *本科毕业设计(论文) 处理逻辑名称:销售操作 简 述:销售报警后,做出销售业务调整的操作 输入的数据流:销售报警内容,来源是“销售报警”处理逻辑 处 理:销售报警后,做出销售业务调整的操作 输出的数据流:“报警处理”处理逻辑 处 理 频 率:1次/周 (18)处理逻辑编号:P08-03 处理逻辑名称:报警处理 简 述:销售处理后对报警的设定操作 输入的数据流:处理信息,来源是“销售操作”处理逻辑 处 理:销售处理后对报警的设定的修改或取消 输出的数据流:“销售报警”数据存储 处 理 频 率:1次/周 5 数据存储的定义 (1)数据存储编号:D1 数据存储名称:配件信息记录 简 述:配件的基本信息 数据存储结构:配件编号+配件名称+配件分类+配件规格或车型+配件单位 +产地+最低库存+最高库存+通用车型+库存数量+库存价 格+零售价+会员价+汽修厂价+备注 关 键 词:配件编号 相 关 处 理:P02-01,P02-02,P06,P07-01 (2)数据存储编号:D2 数据存储名称:供应商信息记录 简 述:供应商的基本信息 数据存储结构:供应商编号+供应商名称+联系人+联系电话+移动电话+账 号+开户银行+地址+邮编+备注 关 键 词:供应商编号 相 关 处 理:P01-01,P01-02,P02-03,P07-01 (3)数据存储编号:D3 数据存储名称:客户信息记录 简 述:客户的基本信息 数据存储结构:客户编号+客户分类+客户名称+联系人+联系电话+移动电 话+账号+开户银行+地址+邮编+备注 关 键 词:客户编号 49 *本科毕业设计(论文) 相 关 处 理:P03-01,P03-02,P04-02,P07-01 (4)数据存储编号:D4 数据存储名称:配件入库记录 简 述:配件入库的相关信息 数据存储结构:入库单号+配件编号+供应商编号+入库数量+入库价 +入库日期+管理员编号+备注 关 键 词:入库单号+配件编号+供应商编号 相 关 处 理:P02-03,P06,P07-01 (5)数据存储编号:D5 数据存储名称:配件销售记录 简 述:配件销售的相关信息 数据存储结构:销售单号+配件编号+客户编号+入库数量+入库价 +入库日期+管理员编号+备注 关 键 词:销售单号+配件编号+供应商编号 相 关 处 理:P04-02,P05-01,P06,P07-01 (6)数据存储编号:D6 数据存储名称:配件退货记录 简 述:配件退货的相关信息 数据存储结构:退货单号+配件编号+客户编号+销售单号+退货数量 +退货理由+退货日期+管理员编号+备注 关 键 词:退货单号+销售单号+配件编号+客户编号 相 关 处 理:P05-03,P06,P07-01 (7)数据存储编号:D7 数据存储名称:报警信息记录 简 述:报警相关的信息 数据存储结构:报警编号+报警时间+报警内容+报警处理+设定人员+处理 人员+备注 关 键 词:报警编号 相 关 处 理:P08-01,P08-03 6 外部实体的定义 (1)外部实体编号:S1 外部实体名称:供应商 简 述:为公司提供配件的商家 输出的数据流:F01-01,F01-02 (2)外部实体编号:S2 50 *本科毕业设计(论文) 外部实体名称:客户 简 述:购买公司配件的人群 输出的数据流:F03-01,F03-01,F05-01 51 *本科毕业设计(论文) 附录B 1 登录界面代码 if FileExists('log.dat') then begin AssignFile(f,'log.dat'); Reset(f,SizeOf(WriteLog)); Seek(f,FileSize(f)); end else //ShowMessage('文件不存在~'); begin FileCreate('log.dat'); AssignFile(f,'log.dat'); CloseFile(f); AssignFile(f,'log.dat'); Reset(f,SizeOf(WriteLog)); Seek(f,FileSize(f)); end; if Log=False then begin with qry1 do begin Open; if RecordCount=0 then begin if (edt_koul.Text='Tom') and (edt_passw.Text='123') then begin Log:=True; end; end else begin First; for i:=1 to RecordCount do 52 *本科毕业设计(论文) begin if (Trim(edt_koul.Text) =Trim(FieldByName('dlkl').AsString)) and (Trim(edt_passw.Text) =Trim(FieldByName('pass').AsString)) then begin Log:=True; WriteLog.UserNum:=FieldByName('gly_bh').AsString; WriteLog.UserName:=FieldByName('gly_xm').AsString; WriteLog.Operation:='登录系统'; WriteLog.Oper_DateTime:=FormatDateTime('yyyy年mm月dd日 hh:mm:ss',Now); User_Power:=FieldByName('qxjb').AsString; UserName :=FieldByName('gly_xm').AsString; BlockWrite(f,WriteLog,1); CloseFile(f); Break; end; Next; end; end; end; if not Log then ShowMessage('用户名或密码错误,请检查~') else Close; end; 2 主窗体代码 在状态栏中显示系统当前的时间和操作员,代码如下: procedure TForm_main.tmr1Timer(Sender: TObject); begin stat1.Panels [2].Text:='系统当前时间:'+dateTimeToStr(now); end; procedure TForm_main.FormCreate(Sender: TObject); var Form_login: TForm_login; begin 53 *本科毕业设计(论文) Form_login:=TForm_login.Create(self); try Form_login.ShowModal; finally Form_login.Free; end; stat1.panels[1].text:='系统当前的操作员:'+ UserName; end; 3 基础信息模块代码 基础信息模块包括供应商信息、配件信息、客户信息,以配件信息模块为例,其 添加、修改、保存、删除的代码如下: (1)【添加】按钮的OnClick事件处理过程的代码 Edt2.ReadOnly:= false; Edt3.ReadOnly:= false; Edt5.ReadOnly:= false; Edt6.ReadOnly:= false; Edt7.ReadOnly:= false; Edt8.ReadOnly:= false; Edt9.ReadOnly:= false; Edt10.ReadOnly:= false; Edt16.ReadOnly:= false; Edt1.ReadOnly:= false; Edt4.ReadOnly:= false; Edt17.ReadOnly:= false; Edt2.Clear; Edt3.Clear; Edt5.Clear; Edt6.Clear; Edt7.Clear; Edt8.Clear; Edt9.Clear; Edt10.Clear; Edt16.Clear; OperType := CST_OPERTYPE_ADD; 54 *本科毕业设计(论文) cbb1.SetFocus; btn_Md.Enabled := False; btn_save.Enabled := True; btn_del.Enabled := False; btn_query.Enabled:=true; (2)【修改】按钮的OnClick事件处理过程的代码 if edt2.Text ='' then Exit; edt2.Enabled :=false; Edt2.ReadOnly:= False; Edt3.ReadOnly:= False; Edt5.ReadOnly:= False; Edt6.ReadOnly:= False; Edt7.ReadOnly:= False; Edt8.ReadOnly:= False; Edt9.ReadOnly:= False; Edt10.ReadOnly:= false; Edt11.ReadOnly:= false; Edt12.ReadOnly:= false; Edt13.ReadOnly:= false; Edt14.ReadOnly:= false; Edt15.ReadOnly:= false; Edt16.ReadOnly:= false; Edt1.ReadOnly:= false; Edt4.ReadOnly:= false; Edt17.ReadOnly:= false; OperType := CST_OPERTYPE_MODFIY; Edt3.SetFocus; btn_add.Enabled := False; btn_save.Enabled := True; btn_del.Enabled := False; btn_query.Enabled:=True; (3)【保存】按钮的OnClick事件处理过程的代码 qry1 .Open ; if GP_ShowMsg_TwoButtton('提示','确定要保存吗,','OC')='CANCEL' then Exit; if (edt2.Text = '' ) or (edt3.Text ='') or (cbb1.Text='') then Exit; 55 *本科毕业设计(论文) if OperType = CST_OPERTYPE_NONE then Exit; if (OperType = CST_OPERTYPE_ADD )then begin qry1.Close; qry1.SQL.Clear; qry1.SQL.Add('select * from peij '); qry1.Open; with qry1 do begin Open; First; for i:=1 to RecordCount do begin if Trim(edt2.Text) = Trim(FieldByName('pj_bh').AsString) then begin GP_ShowMsg('提示','该配件编号已存在~'); Exit; end; Next; end; Insert; qry1.FieldByName('pj_fl').Asstring:= cbb1.Text ; qry1.FieldByName('pj_bh').AsString:= edt2.Text ; qry1.FieldByName('pj_mc').AsString:= edt3.Text ; qry1.FieldByName('pj_gg').AsString:= edt5.Text ; qry1.FieldByName('pj_dw').AsString := edt6.Text ; qry1.FieldByName('cd').AsString:= edt7.Text ; qry1.FieldByName('tycx').AsString:= edt8.Text ; qry1.FieldByName('zdkc').AsString:= edt9.Text ; qry1.FieldByName('zgkc').AsString:= edt10.Text ; qry1.FieldByName('bz').AsString := edt16.Text ; qry1.FieldByName('jjl3').AsString:= edt1.Text ; qry1.FieldByName('jjl2').AsString:= edt4.Text ; qry1.FieldByName('jjl1').AsString := edt17.Text ; qry1.FieldByName('kcj').AsString := edt12.Text ; 56 *本科毕业设计(论文) qry1.FieldByName('lsj').AsString:=IntToStr(StrToInt(edt12.Text)* StrToInt(edt17.Text) div 100); qry1.FieldByName('pthyj').AsString:=IntToStr(StrToInt(edt12.Text)* StrToInt(edt4.Text) div 100) ; qry1.FieldByName('viphyj').AsString:=IntToStr(StrToInt(edt12.Text)* StrToInt(edt1.Text) div 100) ; end; end; if (OperType = CST_OPERTYPE_MODFIY )then begin qry1.Close; qry1.SQL.Clear; qry1.SQL.Add('select * from peij '); qry1.SQL.Add('where pj_bh =:pjbh '); qry1.Parameters.ParamByName('pjbh').Value:= edt2.Text; qry1.Open; with qry1 do begin qry1.Edit; qry1.FieldByName('pj_fl').Asstring:= cbb1.Text ; qry1.FieldByName('pj_mc').AsString:= edt3.Text ; qry1.FieldByName('pj_gg').AsString:= edt5.Text ; qry1.FieldByName('pj_dw').AsString := edt6.Text ; qry1.FieldByName('cd').AsString:= edt7.Text ; qry1.FieldByName('tycx').AsString:= edt8.Text ; qry1.FieldByName('zdkc').AsString:= edt9.Text ; qry1.FieldByName('zgkc').AsString:= edt10.Text; qry1.FieldByName('bz').AsString := edt16.Text ; qry1.FieldByName('jjl3').AsString:= edt1.Text ; qry1.FieldByName('jjl2').AsString:= edt4.Text ; qry1.FieldByName('jjl1').AsString := edt17.Text ; qry1.FieldByName('kcj').AsString := edt12.Text ; qry1.FieldByName('lsj').AsString:=IntToStr(StrToInt(edt12.Text)* StrToInt(edt17.Text) div 100); qry1.FieldByName('pthyj').AsString:=IntToStr(StrToInt(edt12.Text)*StrToInt(edt4.Text) 57 *本科毕业设计(论文) div 100) ; qry1.FieldByName('viphyj').AsString:=IntToStr(StrToInt(edt12.Text)* StrToInt(edt1.Text) div 100) ; end; end; qry1.Post; qry1.Close; qry1.SQL.Clear; qry1.SQL.Add('select * from peij '); qry1.Open; OperType := CST_OPERTYPE_NONE; btn_Add.Enabled := True; btn_Md.Enabled := True; btn_save.Enabled := False; btn_del.Enabled := True; btn_query.Enabled:=true; GP_ShowMsg('提示','保存成功~'); Edt2.Clear; Edt3.Clear; Edt5.Clear; Edt6.Clear; Edt7.Clear; Edt8.Clear; Edt9.Clear; Edt10.Clear; Edt11.Clear; Edt12.Clear; Edt13.Clear; Edt14.Clear; Edt15.Clear; Edt16.Clear; Edt2.ReadOnly:= true; Edt3.ReadOnly:= true; Edt5.ReadOnly:= true; Edt6.ReadOnly:= true; 58 *本科毕业设计(论文) Edt7.ReadOnly:= true; Edt8.ReadOnly:= true; Edt9.ReadOnly:= true; Edt10.ReadOnly:= true; Edt11.ReadOnly:= true; Edt12.ReadOnly:= true; Edt13.ReadOnly:= true; Edt14.ReadOnly:= true; Edt15.ReadOnly:= true; Edt16.ReadOnly:= true; Edt1.ReadOnly:= true; Edt4.ReadOnly:= true; Edt17.ReadOnly:= true; (4)【删除】按钮的OnClick事件处理过程的代码 if edt2.Text ='' then exit; if GP_ShowMsg_TwoButtton('提示','确定要删除吗,','OC')='CANCEL' then Exit; qry1.Close; qry1.SQL.Clear; qry1.SQL.Add('select * from peij'); qry1.SQL.Add('where pj_bh =:pei'); qry1.Parameters.ParamByName('pei').Value:= edt2.Text; qry1.Open; qry1.Delete; Edt2.Clear; Edt3.Clear; Edt5.Clear; Edt6.Clear; Edt7.Clear; Edt8.Clear; Edt9.Clear; Edt10.Clear; Edt11.Clear; Edt12.Clear; Edt13.Clear; Edt14.Clear; 59 *本科毕业设计(论文) Edt15.Clear; Edt16.Clear; 4 信息查询模块代码 信息查询模块包括供应商信息、配件信息、客户信息查询、入库信息、销售信息、 库存信息、进货信息查询,以配件信息查询和入库信息查询模块为例。 (1)配件信息查询的【查询】按钮的OnClick事件处理过程的代码 if edt1.Text ='' then Exit; if cbb1.Text ='配件编号' then begin qry1.Close ; qry1.SQL.Clear ; qry1.SQL.Add('select * from peij '); qry1.SQL.Add('where pj_bh =:pjbh'); qry1.Parameters.ParamByName('pjbh').Value:= edt1.Text; qry1.Open; end else if cbb1.Text ='配件名称' then begin qry1.Close ; qry1.SQL.Clear ; qry1.SQL.Add('select * from peij '); qry1.SQL.Add('where pj_mc =:pjmc'); qry1.Parameters.ParamByName('pjmc').Value:= edt1.Text; qry1.Open; end else if cbb1.Text ='配件分类' then begin qry1.Close ; qry1.SQL.Clear ; qry1.SQL.Add('select * from peij '); qry1.SQL.Add('where pj_fl =:fen'); qry1.Parameters.ParamByName('fen').Value:= edt1.Text; qry1.Open; 60 *本科毕业设计(论文) end else if cbb1.Text ='配件规格' then begin qry1.Close ; qry1.SQL.Clear ; qry1.SQL.Add('select * from peij '); qry1.SQL.Add('where pj_gg =:gg'); qry1.Parameters.ParamByName('gg').Value:= edt1.Text; qry1.Open; end else if cbb1.Text ='通用车型' then begin qry1.Close ; qry1.SQL.Clear ; qry1.SQL.Add('select * from peij '); qry1.SQL.Add('where tycx =:tong'); qry1.Parameters.ParamByName('tong').Value:= edt1.Text; qry1.Open; end else if cbb1.Text ='产地' then begin qry1.Close ; qry1.SQL.Clear ; qry1.SQL.Add('select * from peij '); qry1.SQL.Add('where cd =:chan'); qry1.Parameters.ParamByName('chan').Value:= edt1.Text; qry1.Open; end; edt2.Clear; edt2.Text :=IntToStr(qry1.RecordCount); (2)入库信息查询的【查询】按钮的OnClick事件处理过程的代码 SQLstring:='select * from ruk,gongys,peij where ruk.gys_bh=gongys.gys_bh and 61 *本科毕业设计(论文) ruk.pj_bh = peij.pj_bh'; sq:= 'select sum(rke) as he from ruk,gongys,peij where ruk.gys_bh=gongys.gys_bh and ruk.pj_bh = peij.pj_bh'; if chk1.Checked then begin SQLstring:=SQLstring+' and rkdh='+''''+ cbb1.Text +''''; sq:=sq+' and rkdh='+''''+ cbb1.Text +''''; end; if chk2.Checked then begin SQLstring:= SQLstring+' and ruk.gys_bh = '+ ''''+ cbb2.Text +''''; sq:= sq+' and ruk.gys_bh = '+ ''''+ cbb2.Text +''''; end; if chk3.Checked then begin SQLstring:= SQLstring+' and ruk.pj_bh = '+ ''''+ cbb3.Text +''''; sq:= sq+' and ruk.pj_bh = '+ ''''+ cbb3.Text +''''; end; if chk4.Checked then begin SQLstring:= SQLstring+' and ruk.gly_bh = '+ ''''+ cbb4.Text +''''; sq:= sq+' and ruk.gly_bh = '+ ''''+ cbb4.Text +''''; end; if chk5.Checked then begin SQLstring:= SQLstring+' and rkrq = '+ ''''+ edt1.Text +''''; sq:= sq+' and rkrq = '+ ''''+ edt1.Text +''''; end; qry1.Close; qry1.SQL.Clear; qry1.SQL.Add(SQLstring); qry1.Open; qry6.Close; qry6.SQL.Clear; qry6.SQL.Add(sq); 62 *本科毕业设计(论文) qry6.Open; edt2.Text :=IntToStr(qry1.RecordCount); edt3.Text :=qry6.FieldByName('he').AsString; 5 销售管理模块代码 销售管理模块包括配件入库、销售、退货管理和销售报警管理,其添加、修改、 删除的代码与基础信息模块类似,只有入库、销售、退货管理中保存功能中增加了对 配件库存数量的修改过程,因此,这里仅摘录入库管理【保存】按钮的OnClick事件 处理过程中有关库存数量修改代码,代码如下: if (OperType = CST_OPERTYPE_ADD )then begin qry1.Close; qry1.SQL.Clear; qry1.SQL.Add('select * from ruk '); qry1.Open; with qry1 do begin Open; First; for i:=1 to RecordCount do begin if (Trim(cbb2.Text) =Trim(FieldByName('rkdh').AsString)) and (Trim(cbb1.Text) =Trim(FieldByName('gys_bh').AsString))and(Trim(cbb3.Text) =Trim(FieldByName('pj_bh').AsString)) then begin GP_ShowMsg('提示','该入库记录已存在~'); Exit; end; Next; end; Insert; qry1.FieldByName('rkdh').Asstring:= cbb2.Text ; qry1.FieldByName('gys_bh').AsString:= cbb1.Text ; qry1.FieldByName('pj_bh').AsString:= cbb3.Text ; qry1.FieldByName('rksl').AsString:= edt9.Text ; qry1.FieldByName('rkj').AsString:= edt10.Text ; 63 *本科毕业设计(论文) qry1.FieldByName('rkrq').AsString := edt11.Text ; qry1.FieldByName('gly_bh').AsString:= cbb4.Text ; qry1.FieldByName('bz').AsString:= edt12.Text ; qry1.FieldByName('rke').AsString:=IntToStr(StrToInt(edt9.Text)*StrToInt(ed t10.Text)) ; qry6.Close; qry6.SQL.Clear; qry6.SQL.Add('select * from peij where pj_bh=:pjbh'); qry6.Parameters.ParamByName('pjbh').Value:= cbb3.Text; qry6.Open; with qry6 do begin edit; qry6.FieldByName('kcsl').AsString:=IntToStr(StrToInt(edt8.Text)+StrToIn t(edt9.Text)) ; end; qry6.Post; qry6.Close; qry6.Open; end; end; if (OperType = CST_OPERTYPE_MODFIY )then begin qry1.Close; qry1.SQL.Clear; qry1.SQL.Add('select * from ruk '); qry1.SQL.Add('where pj_bh =:pjbh and rkdh=:ru and gys_bh=:gysbh'); qry1.Parameters.ParamByName('pjbh').Value:= cbb3.Text; qry1.Parameters.ParamByName('ru').Value:= cbb2.Text; qry1.Parameters.ParamByName('gysbh').Value:= cbb1.Text; qry1.Open; j:=qry1.FieldByName('rksl').AsString; with qry1 do begin Edit; 64 *本科毕业设计(论文) qry1.FieldByName('rksl').AsString:= edt9.Text ; qry1.FieldByName('rkj').AsString:= edt10.Text ; qry1.FieldByName('rkrq').AsString := edt11.Text ; qry1.FieldByName('gly_bh').AsString:= cbb4.Text ; qry1.FieldByName('bz').AsString:= edt12.Text ; qry1.FieldByName('rke').AsString:=IntToStr(StrToInt(edt9.Text)*StrToInt(ed t10.Text)) ; qry6.Close; qry6.SQL.Clear; qry6.SQL.Add('select * from peij where pj_bh=:pjbh'); qry6.Parameters.ParamByName('pjbh').Value:= cbb3.Text; qry6.Open; with qry6 do begin edit; qry6.FieldByName('kcsl').AsString:=IntToStr(StrToInt(edt8.Text)-trtoint(j)+ StrToInt(edt9.Text)) ; end; qry6.Post; qry6.Close; qry6.Open; end; end; 6 销售分析模块代码 销售分析模块包括配件入库、销售、退货分析和配件、客户、供应商分析。其中 配件入库、销售模块及退货分析的功能相似,以销售分析模块为例摘录其代码。配件、 供应商和客户分析功能相似,以配件分析模块为例摘录其代码。 (1)销售分析模块代码 procedure TForm_xiaosfx.SpeedButton2Click(Sender: TObject); var AMonth : Array[1..12] of String; i : Integer; begin if ComboBox1.Text<>'' then begin 65 *本科毕业设计(论文) AMonth[1] := '一'+#13+#13+' 月'; AMonth[2] := '二'+#13+#13+' 月'; AMonth[3] := '三'+#13+#13+' 月'; AMonth[4] := '四'+#13+#13+' 月'; AMonth[5] := '五'+#13+#13+' 月'; AMonth[6] := '六'+#13+#13+' 月'; AMonth[7] := '七'+#13+#13+' 月'; AMonth[8] := '八'+#13+#13+' 月'; AMonth[9] := '九'+#13+#13+' 月'; AMonth[10] := '十'+#13+#13+' 月'; AMonth[11] := '十'+#13+' 一'+#13+' 月'; AMonth[12] := '十'+#13+' 二'+#13+' 月'; Str := ''; Str := 'select sum(xse) as ''月金额'','; Str := Str+' case'; for i:=1 to 12 do begin Str := Str+' when month(xsrq)='+IntToStr(i)+' then '+''''+AMonth[i]+''''; end; Str := Str+' end '+'''月份'''; Str := Str+' from xiaos'; Str := Str+' where year(xsrq)='+ComboBox1.Text; Str := Str+' Group by month(xsrq)'; XAxis := '月份'; YAxis := '月金额'; Title := Self.ComboBox1.Text+'年销售图表'; ComboBox3.Text := '条型图'; Select_Chart(Str,XAxis,YAxis,Title,'TBarSeries',DBChart1); DBGrid1.DataSource := DataSource1; self.Caption := Label4.Caption; end; end; procedure TForm_xiaosfx.ComboBox1Change(Sender: TObject); begin 66 *本科毕业设计(论文) if ComboBox1.Text<>'' then begin IsGray(1,0); if ComboBox2.Text<>'' then IsGray(1,1); end else IsGray(0,0); end; procedure TForm_xiaosfx.ComboBox2Change(Sender: TObject); begin if ((ComboBox1.Text<>'') and (ComboBox2.Text<>'')) then IsGray(1,1) else IsGray(1,0); end; procedure TForm_xiaosfx.Delete_Chart(DChart : TDBChart); begin if DChart.SeriesCount>0 then DChart.SeriesList.Delete(0); end; procedure TForm_xiaosfx.Select_Chart(S, XLabel, YVal, Caption, C_Type: String; DChart : TDBChart); var Series : TChartSeries; begin Delete_Chart(DChart); try with ADOQuery1 do begin close; SQL.Clear; SQL.Add(s); Open; end; 67 *本科毕业设计(论文) DChart.Gradient.Visible := True; DChart.Gradient.EndColor := clLime; DChart.Gradient.StartColor := clWhite; DChart.Gradient.Direction := gdfromcenter; Except DChart.Title.Text.Clear; DChart.Title.Text.Add('图表加载失败'); end; if C_Type='TBarSeries' then Series := TBarSeries.Create(self); if C_Type='TPieSeries' then Series := TPieSeries.Create(self); if C_Type='TLineSeries' then Series := TFastLineSeries.Create(self); DChart.AddSeries(Series); Series.DataSource := ADOQuery1; Series.XLabelsSource := XLabel; Series.YValues.valuesource := YVal; Series.Marks.Style := smsValue; DChart.Title.Text.Clear; DChart.Title.Text.Add(Caption); if ((C_Type='TLineSeries') or (C_Type='TBarSeries')) then begin DChart.AxisVisible := True; DChart.View3DWalls := True; DChart.Legend.Visible := False; end; end; procedure TForm_xiaosfx.ComboBox3Change(Sender: TObject); begin case ComboBox3.ItemIndex of 0 : Select_Chart(Str,XAxis,YAxis,Title,'TBarSeries',DBChart1); 1 : Select_Chart(Str,XAxis,YAxis,Title,'TLineSeries',DBChart1); 2 : begin Select_Chart(Str,XAxis,YAxis,Title,'TPieSeries',DBChart1); 68 *本科毕业设计(论文) DBChart1.Legend.Visible := False; end; end; end; procedure TForm_xiaosfx.SpeedButton3Click(Sender: TObject); begin if ((ComboBox1.Text<>'') and (ComboBox2.Text<>'')) then begin Str := ''; Str := Str+'select sum(xse) as ''日金额'',day(xsrq) as ''日'''; Str := Str+' from xiaos'; Str:=Str+'where(year(xsrq)='+ComboBox1.Text+')and(month(xsrq)='+ComboBox2.Text+'; Str := Str+' Group by day(xsrq)'; XAxis := '日'; YAxis := '日金额'; Title:=Self.ComboBox1.Text+年'+self.ComboBox2.Text+'月份'+self.Label5.Caption; ComboBox3.Text := '线型图'; Select_Chart(Str,XAxis,YAxis,Title,'TLineSeries',DBChart1); DBGrid1.DataSource := DataSource1; self.Caption := label5.Caption; end; end; (2)配件分析模块代码 procedure TForm_peijfx.ComboBox1Change(Sender: TObject); begin if (ComboBox1.Text<>'') and(cbb1.Text<>'') then begin DS := ComboBox1.Text; bh := cbb1.Text ; Str := ''; Str := Str+'select * into ##ppe from xiaos'; Str := Str+' where year(xsrq)='+DS+'and pj_bh='+bh; Str := Str+#13+'select sum(a.xssl) as ''销售总量'',Month(a.xsrq) as ''月份'' from ##ppe as a '; Str := Str+' Group BY Month(xsrq)'; 69 *本科毕业设计(论文) Str := Str+#13+'drop table ##ppe'; XAxis := '月份'; YAxis := '销售总量'; Title := ComboBox1.Text+'年全年'+cbb1.Text +'号配件销售分析图'; ChartSetup(Str, XAxis, YAxis, Title, DBChart1, qry1, 1); end; end; procedure TForm_peijfx.DBChart1ClickSeries(Sender: TCustomChart; Series: TChartSeries; ValueIndex: Integer; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if button = mbLeft then begin SelectToColor(qry1.RecordCount-1,'clLime',clYellow,Series); Series.ValueColor[ValueIndex]:= clLime; A_Color[ValueIndex] := 'clLime'; Str := ''; Str := Str+'Select b.xssl as xssl,b.xsrq as xsrq'; Str := Str+' into ##ppe'; Str := Str+' from xiaos as b'; Str:=Str+'whereyear(b.xsrq)='+DS+'andmonth(b.xsrq)='+''''+Trim(Series.XLabel[Valu eIndex])+''''; Str := Str+#13+'select sum(xssl) as ''月销售总量'',day(xsrq) as ''日期'''; Str := Str+' from ##ppe'; Str := Str+' Group BY day(xsrq)'; Str := Str+#13+'drop table ##ppe'; XAxis := '日期'; YAxis := '月销售总量'; Title := DS+'月'+bh+'号配件销售情况'; ChartSetup(Str, XAxis, YAxis, Title, DBChart2, qry2, 0); end else if button = mbRight then begin Series.ValueColor[ValueIndex]:= clred; A_Color[ValueIndex] := 'clred'; 70 *本科毕业设计(论文) end; CheckBox1.Checked := False; end; 7 系统维护模块代码 系统维护模块包括用户管理、密码设置、系统日志、数据库备份、数据库还原。其中用户管理、密码修改模块的功能与基础信息模块的功能相似,其代码可以借鉴。这里仅摘录系统日志、数据库备份代码。 (1)系统日志代码 begin if FileExists('log.dat') then begin AssignFile(f,'log.dat'); Reset(f,SizeOf(ReadLog)); end else //ShowMessage('文件不存在~'); FileCreate('log.dat'); ListView1.Items.Clear; while not eof(f) do begin BlockRead(f,ReadLog,1); with ListView1 do begin ListItem := Items.Add; if ReadLog.Operation='登录系统'then ListItem.ImageIndex:=1; if ReadLog.Operation='退出系统'then ListItem.ImageIndex:=2; ListItem.Caption:=ReadLog.UserNum; ListItem.SubItems.Add(ReadLog.UserName); ListItem.SubItems.Add(ReadLog.Operation); ListItem.SubItems.Add(ReadLog.Oper_DateTime); end; end; CloseFile(f); 71 *本科毕业设计(论文) (2)数据库备份模块代码 procedure TForm_backup.Timer1Timer(Sender: TObject); begin if GG.Progress <=100 then begin GG.Progress := GG.Progress + 1; if GG.Progress = 100 then begin Timer1.Enabled := False; Application.MessageBox('数据备份成功~','提示',64); end; end; end; procedure TForm_backup.SpeedButton2Click(Sender: TObject); begin if Edit1.Text = '' then begin Showmessage('请选择备份路径~'); Exit; end; Try with ADOQuery1 do begin Close; SQL.Clear; SQL.Add('use master BACKUP DATABASE qpxsgl To Disk = '+ QuotedStr(Edit1.Text)+'use qpxsgl'); ExecSQL; end; Timer1.Enabled := True; Except Application.MessageBox('数据备份失败~','提示信息',0); end; end; 72
/
本文档为【汽车配件销售管理信息系统毕业设计论文】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索