1、中小企业ERP管理系统销售管理子系统设计与实现552020年5月29日文档仅供参考 本 科 毕 业 设 计 题 目: 中小企业ERP管理系统-销售管理子系统的设计与实现中小企业ERP管理系统-销售管理子系统的设计与实现摘要:当今的社会经济与信息技术飞速迅猛发展,中小型企业的销售管理系统决定了一个企业能否盈利,也是一个中小型企业发展和经营的关键。ERP系统的方便快捷,省时省力,几乎所有企业都会用到ERP系统。本文的系统主要使用J2EE的SSH框架做后台、ExtJS做前台。struts框架来做应用层,主要负责调用业务逻辑service层;hibernate框架用来做对象关系映射以及操纵数据库;sp
2、ring框架用来做管理的容器,管理框架和框架;ExtJS用来做前端界面,实现交互。该系统是根据中小企业中对销售单据和退货单据的记录,销售记录和退货记录查询的实际需求,方便实现了单据生成和存储的功能。具体实现了商品销售流程的处理,销售单据的以及单据的生成、查询和删除功能。还实现了客户退货的处理,客户退货单据的生存、查询和删除功能。用户能够随时在计算机上涌浏览器登陆系统进行管理,实现单据记录的简单方便化,提高企业工作效率,提高查询速度,实现企业的高效管理。关键词:ERP;销售管理;SSH;ExtJSThe small and medium-sized enterprise ERP manageme
3、nt system, sales management subsystemAbstract: Todays social economy and the rapid development of information technology, the sales management system of small and medium-sized enterprises enterprises can determine a profit, but also the small and medium enterprise development and management of the k
4、ey a. The ERP system is convenient, time-saving and labor-saving, almost all enterprises will use the ERP system.The SSH framework in this system mainly use J2EE as background, the ExtJS as the front. The struts framework to do the application layer, business logic layer is responsible for calling s
5、ervice; Hibernate framework for object relational mapping and database manipulation; spring framework for management of container, management framework and the framework; and ExtJS was used as the front-end interface, interactive.The system is based on the record of sales documents and return the do
6、cuments in the small and medium-sized enterprises, the actual demand sales records and return records query, to facilitate the realization of the document generation and storage function. The concrete realization of the process of commodity sales process, sales documents and document generation, que
7、ry and delete function. Also the handling of customer return, customer returns documents survive, query and delete function. The user can at any time in the computer upwelling browser landing systems management, simple and convenient realization of document records, improve the working efficiency of
8、 enterprises, improve the query speed, to achieve efficient management of enterprises.Keywords:ERP;marketing management;SSH;ExtJS目 录一、引言1(一)选题背景1(二)主要研究内容1(三)涉及的技术和框架2二、可行性分析5(一)经济可行性5(二)技术可行性5(三)运行可行性5(四)法律可行性5三、需求分析6(一)业务流程分析6(二)系统功能模块需求分析8(三)非功能需求分析9(四)系统开发环境9四、系统概要设计10(一)总体功能结构设计10(二)数据初步库设计11(三
9、)E-R图12五、系统详细设计16(一)数据库逻辑设计16(二)各功能模块详细设计19(三)数据流图21(四)程序流程图22六、系统实现29(一)商品销售功能29(二)客户退货功能33(三)销售单据查询功能35(四)退货单据查询功能37(五)实现总结38七、系统测试39(一)测试的作用39(二)测试需求39(三)性能测试39(四)兼容性测试39(五)兼容性测试总结42总结44参考文献45致谢46中小企业ERP管理系统-销售管理子系统一、引言(一)选题背景中国加入WTO后,也正式成为世界大市场的一员。很多中小企业想让自己能在这个大市场中生存、发展、盈利。她们可能有着好的产品质量、实惠的售价以及优
10、质的服务,但仅靠这些,是远远不够的。中小企业想让自己能在这个大市场中生存、发展,必须还要提高企业自身的管理水平,以方便快捷有效的企业信息管理系统支撑,才能在这个大市场中立于不败之地。现在中国大陆有中小企业上千万家,占据所有企业总数的99%以上。中小企业的不断发展和日益兴起,已经不能被社会信息化和企业信息化忽视。这些占据了中国企业中绝大部分企业的中小企业的信息化状况正是中国企业信息化的状况,这些中小企业的需求就是中国大部分企业的需求。每个企业都离不开采购、销售、库存、产品管理、报表分析等大量繁琐的业务。而开发ERP系统正好能够让中小企业提高自身的管理水平,因为ERP系统让管理变得方便和准确。ER
11、P系统也同时解决了每个企业离不开且繁琐的业务流程的处理。(二)主要研究内容现今很多中小企业管理模式不佳,公司规模也不大,很多企业的管理都还依赖着传统管理的方式。企业员工还在使用传统的人工手动方式管理进销存业务数据,还一直在用纸质单据以及手写的方式写入归档,这种老旧的管理模式有许多缺点:1、管理效率低,工作繁琐且强度大,需要成本多。2、手写处理速度慢、流通慢、准确度不高、工作效率不高等,企业信息传播和沟通不便,难以作为有用的决策信息。3、时间久了之后,单据和文件数量变得大量,体积变大,标记困难,对于查找、管理带来严重的不便。这些问题对与当今这个信息化大社会格格不入。老旧的管理模式已经跟不上现在高
12、度复杂、快速、准确的管理要求;原始的手工管理方式已经不适应现在的企业发展速度。因此中小企业必须利用信息技术,创造一种能够随时随地不受约束的管理方式。中小企业ERP管理系统,能够对企业的所有业务流程进行同时管理,单据录入变得快捷轻松,单据和文件的存储不再消耗大量的空间,想要查询任何单据时也是一目了然。对于一般员工而言,在管理操作上变得简单,不易出错;对于管理者而言,能够经过ERP系统对库存,销售,盈利,单据的查询,对企业信息做到心里有数,从而做出正确的决策和判断,推进企业发展。由此看来,中小企业ERP系统的存在十分重要,对企业的发展有着巨大的影响力,对ERP系统的研究有着深远的意义。(三)涉及的
13、技术和框架J2EE的技术在不断发展,现在已经较为成熟,因此采用主流的struts+spring+hibernate框架。不采用jsp+servlet+dao+jdbc框架的原因是,这种最基础的框架虽然不用反射,运行速度高,可是扩展和维护的工作量比较繁琐。相比较而言struts+spring+hibernate虽然运行速度慢点,可是开发效率高。两者都是MVC结构,V就是view,就是前端页面显示,选用ExtJS使其表现美观。M就是model,即模型层,选用hibernate对Mysql数据库的实现。C就是control控制层,经过struts等实现。Spring是个大容器,把各种关系都写在配置文
14、件中,降低类与类之间的耦合度。1、struts工作原理图1.1 struts工作原理如图1.1为struts工作原理Struts的模型主要有Action Bean 和 ActionForm Bean ,Action中封装了简单的逻辑操作,Action决定做什么,其它组件比如Javabean决定怎么做。ActionForm封装了用户的输入表单,因此Action不必跟表单交互,直接和ActionForm交互就能够了。Controller接受所有客户端请求,由ActionServlet来确定需要哪个动作类去执行对应的操作,同时通知ActionFormBean去封装用户输入表单,再交给ActionBe
15、an来执行对应的业务逻辑,然后靠ActionMapping来确定给客户端反馈的内容。当客户端提交一个请求时,会被提交到一系列过滤器,并判断是否需要调用某个Action来处理这个请求,Action处理完后,返回结果,结果又会反向经过拦截器,从struts.xml配置文件中找到对应的结果进行下一步输出。2、hibernate工作原理Hibernate这个框架的一个最主要目的就是封装底层JDBC直接对数据库进行操作,而且把数据库数据实例化,映射成JAVA对象,是建立在model层上的。经过hibernate能够忽略JDBC等直接访问数据库的语句,直接对JAVA对象操作从而达到简单操作数据库的目的,省
16、去手动写DAO层访问数据库的麻烦,对增删改等操作提供便利。但不如JDBC灵活,速度也不如JDBC快,可是开发和扩展会变得容易。3、spring工作原理Spring的两个特点:1. IoC(Inversion of control):即控制反转,把控制权本身转又对象本身转向容器,容器再根据配置文件去创立实例并建立各个实例之间的关系,由bean工厂创立个个实例bean。2. AOP(Aspect-Oriented Programming)即面向方面编程。最核心部分是IOC,动态注入能够不用new创立一个类的对象,能够自动生产。这就是java里的反射,就是在运行时动态地去创立和调用对象,spring
17、在运行时,根据spring的xml配置文件来动态创立和调用对象里的方法。Spring能够让对象和对象,模块和模块之间不经过代码来关联,取而代之的是经过配置类的说明来管理。4、ExtJS技术介绍ExtJS是一个用javascript写的Ajax框架,主要编写用于客户端界面。ExtJS是一个跟后台技术关系很小框架,因此能够用在许多开发开发出来的web应用中。ExtJS的一个最直观的好处就是界面相对JQuery平滑优美,对客户端界面的布局美观做出巨大贡献。而且功能丰富,前端的实现简单。5、MySQL数据库介绍MYSQL是一种小型关系型数据库管理系统,由于其可移植性高,安装快速简单小巧等优点,深受中小
18、型应用程序欢迎。MYSQL能够处理上千万条数据的记录,支持常见SQL语句,有着良好的运行效率,且相对其它大型数据库调试简单管理容易。但跟ORACLE、SQLServer等大型数据库比起来功能稍差,可存储的数据量也不够多。不过用于中小型系统足够。二、可行性分析软件的可行性分析是对以后的行动方针分析和提建议的行为。如果一个问题没有可行的解释,应该停止继续开发这个系统项目来避免时间、人力、物理、金钱的浪费。若问题比较好解决,应该尽力使问题变得可行。(一)经济可行性大四毕业前本人时间比较充裕,能够用许多闲暇的时间来开发这个系统。开发这个系统的软件和环境也都使用的是免费版本,不需要额外经费。本人宿舍有电
19、脑,使用个人电脑开发不存在电费之外的经济问题。服务器的搭建也能够在自己的电脑上进行,系统完成后能够给对其感兴趣的中小企业使用,或者自己有企业或者开店时也能够使用。(二)技术可行性系统的性质是一个web应用,主要技术的java基础和J2EE的struts、spring、hibernate框架、前台web界面的编写以及数据库技术。本人大学以来上过的课程或多或少接触到这些内容,对这些内容有一定的了解。对系统分析和设计上也有一定的能力。还有指导老师和同组同学的帮助,在技术上是可行的。(三)运行可行性本ERP系统使用的web服务器是tomcat。Tomcat服务器的构建和配置不需要太强大的硬件基础,对本
20、人的个人电脑构不成任何问题。只要在任何地方搭建起tomcat服务器并把系统发布到tomcat上,在任何地方输入正确的域名以及正确的用户名密码就能够随意访问并使用本系统。因此运行对开发者和使用者都不是问题。(四)法律可行性本系统的开发环境和运行环境都是开源的,不收取费用的,因此本系统的开发不会触及任何法律。运行过程也没有不良内容或者非法内容,因此不抵触任何法律,法律可行性没问题。三、需求分析能否做出一个符合要求的系统,开发前的需求分析是至关重要的,需求分析在整个开发过程中占有重要的地位,需求分析能够直接影响系统开发成本、系统开发质量以及系统开发时间。需求分析是系统设计的开始,是整个设计的基础。明
21、了的需求分析能够减少开发过程中走的错路,减少开发中的错误,缩短开发周期时间,系统开发成本减少。需求分析的任务主要是确定”做什么”而不是确定怎么做,就是对系统的完成目标有一个准确具体的要求。希求分析的结果是系统开发的基础,直接影响项目的好坏质量。本系统主要针对很多公司的人工管理方式,对应地设计出一个能够方便快捷而且准确地处理销售过程及销售单据查询的系统,让其摆脱浪费人力物力,浪费时间金钱成本,容易出现错账漏单、查询困难的现状。(一)业务流程分析业务流程分析主要是用图的形式分析出业务的具体处理过程。经过业务流程图能够准确地看到业务处理过程中数据的收集、输入、存储、传递、处理的方法、输入输出数据的形
22、式等。业务流程分析是系统需求分析的基础,是系统设计的大前提。此处主要对较为大多中小企业较为普遍的销售流程进行分析。表3.1 业务流程图符号表图3.1 销售业务流程图图3.1中销售员先能够得到所有商品的信息,库存数量会显示在商品信息中,如果库存大于0,而且商品符合要求,则选择商品,此时能够继续选择多个商品,确认好所有销售信息后录入。录入成功后会修改此商品的库存数量,对库存产生影响。同时生成销售单据,销售单据对销售单据查询提供依据,也对利润报表功能提供依据。经过单据查询能够根据销售单查询所有销售单信息。经过利润和报表查询能够根绝销售单查询利润报表信息。图3.2 退货业务流程图图3.2中销售出去的商
23、品难免有很小百分比的数量会出现问题,或者客户买回去的商品不符合。这时候客户会选择退货,销售员受理退货信息,首先销售员能够从已有的商品信息中选择到要退货的商品,此时还能够添加多个退货商品,对退货的商品信息确认无误后录入。此时库存数量会增多,影响库存。并生成退货单。退货单是退货单查询的依据,同时也影响到报表信息。可查询单据经过退货单显示出所有退货信息。查询利润和报表也会根据退货单显示报表信息。(二)系统功能模块需求分析系统功能模块需求分析的作用是,弄清用户对业务流程处理所提出的要求,在此基础上分析和确定出系统目标。据此确定出跟销售流程有关的模块,分别是销售管理模块,库存管理模块,统计报表模块,基础
24、资料模块以及系统管理模块,如图3.3图3.3 系统总体设计图3.1 销售管理销售员在该模块把销售信息或者退货信息录入,此模块会生成销售单或退货单,会实现商品库存数量的修改。此模块中可增删改销售单据或退货单据,以及实现查询所有销售单据和退货单据的功能。3.2库存管理该模块主要处理库存的信息,实现库存警报损益等功能。3.3统计报表该模块经过已有的销售单据和退货单据,做出销售量的直观统计。还要实现用柱状图直观地显示出按天数,按月数的销售盈利情况。3.4基础资料该模块功能主要用于对商品信息、客户信息的管理功能。能够对商品信息进行添加、修改和删除。还有对客户信息进行添加、修改和删除的功能。3.5系统管理
25、该模块主要对用户管理,以及一些数据库的备份还原等功能。能够创立、修改和删除具体权限。创立、修改和删除用户。(三)非功能需求分析前端网页界面要求尽可能的直观和美观。拥有在大部分运行环境和浏览器下的较强的兼容性。在网络没问题的情况下系统运行时不出现迟钝,滞后的现象,页面加载和数据处理速度快。(四)系统开发环境系统开发工具:MyEclipse 10。系统开发语言:JAVA数据库软件:MySQL以及Navicat运行平台:Windows XP/Windows 7分辨率:任何分辨率四、系统概要设计系统设计阶段要做的是的是将系统分析阶段所提出的反映企业信息需求的需求分析方案转变成能够实施的基于计算机与通信
26、系统的物理方案。系统设计阶段主要任务设计出系统的总体目标,根据系统分析阶段对系统逻辑功能的需求分析,确定系统各模块之间的组成和联系,选择出合适的软件和硬件设备,提出系统的方法,实现总体目标。系统设计阶段的主要目标包括:系统概要设计;详细设计。(一)总体功能结构设计首先绘制总体功能模型图。总体功能模型图用一个方块代表一个模块,方块内写出此模块的模块名。模块之间的关系用直线连接起来。用自顶向下的方法先画比较高的层次、再画层次较低的模块结构,然后再根据需要一步一步扩充,直至把模块细分。应用总体功能模型图能够直观地设计评价系统,系统的加工和修改在系统总体功能模型图中简单易懂,能够让用户、管理人员和其它
27、软件设计者和使用者很轻松地了解系统的大致功能结构,对程序的编写和维护也有利。现以销售管理系统为对象,根据系统分析的结果,按照结构化的系统设计方法,应用总体功能模型图进行模块结构设计。每次与老婆亲热的时候,她就总是抱怨没有任何感觉,她说她迟早要体验一冷下真正高chao的感觉。 我那些哥们儿都嘲笑我的阴jing跟11岁的小男孩儿差不多,我的精神负担很重,总担心老婆有一天会耐不住寂寞而出轨! 幸好后来我加了马老中医的徽|杏 msdf003,刚使用了马老师开的中药剂后的几天内,我就感觉有些热热的感觉,后来一量,发现阴jing真的变长了。好几年的早xie的毛病没有了,坚持的时间特别长。每次大约能做30分
28、钟以上,更加意想不到的是,经过几周期的服用,阴jing慢慢地变大了,从最开始的8厘米长到了13厘米,围度也大了2厘米,我老婆满意极了,说终于尝到了高chao的感觉。我也很是满意,我想如果能再长几厘米,让那些说我是”小小鸟”的人们都见鬼去吧! 图4.1 系统概要设计图图4.1中能够直观的看到系统功能模块的大致设计,首先在主界面选择销售管理,此模块中又细分出4个小模块,分别为商品销售、客户退货、销售单据查询、客户退货查询。也能够在主界面选择基础资料,次模块又细分出2个小模块,分别为客户管理和商品管理。也能够在主界面中选择系统管理,此模块又细分出3个小模块,分别为角色管理、用户管理和数据库管理。系统
29、各个模块在此一目了然,接下来的工作再对细分的模块作设计。(二)数据初步库设计数据库设计是是开发数据库和使用数据库的技术,整个系统很多业务逻辑都是在经过对数据库的读写中进行的,因此说数据库设计是系统开发的一个很重要的部分。经过正确的数据库逻辑和物理设计,构件合适的数据库模式,满足用户的需求。首先在需求分析中的业务流程中确定需要用到的数据库字典,分析后初步确认数据库实体和结构,得到以下初步确定的实体:商品(商品号、商品名、商品型号、商品类别、商品单位、进货价格、出售价格、库存数量、库存总价、库存下限、生产商名)客户(客户号、客户名、联系人、联系电话、联系地址)用户(用户名、密码、信息)销售单(销售
30、单号、客户号、客户名称、日期、应付金额、实付金额、成本金额)退货单(退货单号、客户号、客户名、日期、应付金额、实付金额、成本金额)更详细的数据库字典设计和补完的表会在详细设计中展示。(三)E-R图E-R图也称为实体-联系图,它用于直观地表现出实体、属性、模块等之间的联系,用图的方式描述出来。1.商品实体ER图图4.1 商品实体ER图图4.1为商品实体ER图,图中表示了商品这个实体的商品编号、商品名、商品型号、商品类别、商品单位、进货价格、出售价格、上次进价、库存数量、库存总价、库存下限、生产厂商名、备注的属性。2.客户实体ER图图4.2 客户实体ER图图4.2为客户实体ER图,图中表示了客户这
31、个实体的客户号、客户名、联系人、联系电话、联系地址、备注的属性。3.销售单实体ER图v图4.3 销售单实体ER图图4.3为销售单实体ER图,图中表示了销售单这个实体有销售单号、日期、用户、商品、成本金额、实付金额、应付金额、客户这些属性。4.退货单实体ER图v图4.4 退货单实体ER图图4.3为退货单实体ER图,图中表示了退货单这个实体有退货单号、日期、用户、商品、成本金额、实付金额、应付金额、客户这些属性。5.销售退货总体ER图图4.5 销售与退货总体ER图图4.2描述了销售出库和退货入库与商品库存之间的关系,对于销售出库,首先要从已有的商品信息处得到商品信息并选择商品信息,一次销售过程能够
32、选择多个商品,因此她们的关系是1:N的关系。当销售过程完成时,即完成了出库过程,此时库存减少,销售一次能够对应多个商品,库存多个商品信息也会变化,因此是N:M的关系。对于退货入库,首先要从已有的商品信息处得到商品信息并选择商品信息,一次退货过程能够选择多个商品,因此她们的关系是1:N的关系。当退货过程完成时,即完成了入库库过程,此时库存增加,退货一次能够对应多个商品,库存多个商品信息也会变化,因此是N:M的关系。每次销售出库都会生成一张销售单,因此销售出库和销售单是N:M的关系。销售单查询会根据销售单信息,因此销售单和销售单查询是N:M的关系。每一次退货入库都会生成一张退货单,因此退货入库和退
33、货单是N:M的关系。退货单查询会根据销售单信息,因此退货单和退货单查询是N:M关系。五、系统详细设计(一)数据库逻辑设计将概要设计中的设计转换出多个关系,最终得到以下结果:商品类别(商品类别号、商品类别名、根类别号)商品单位(商品单位号、商品单位名)商品(商品号、商品名、商品型号、商品类别号、商品类别名、商品单位、进货价格、出售价格、上次进价、库存数量、库存总价、库存下限、生产厂商名、备注)角色(角色号、角色名、角色说明)用户(用户号、登陆名、登陆密码、用户名、角色号、状态、角色说明)客户(客户号、客户名、联系人、联系电话、联系地址、备注)销售单(销售单号、客户号、客户名称、日期、应付金额、实
34、付金额、成本金额、交易状态、用户号、用户名、备注)销售单商品(销售查询单号、销售单号、商品号、商品名称、商品单位、商品型号、类别号、类别名、单价、数量、总价)退款单(退款单号、客户号、客户名称、日期、应付金额、实付金额、成本金额、交易状态、用户号、用户名、备注)退货单商品(退货查询单号、销售单号、商品号、商品名称、商品单位、商品型号、类别号、类别名、单价、数量、总价)设计好的数据字典把所有属性都具体化之后的数据表结构: 销售模块中涉及的数据库表有:splb、spdw、spxx、role、users、kh、ckb、ckbsp、tkd、tkdsp,具体如下各表所示字段类型字段大小可否空主键功能描述
35、lbidint11否是商品类别IDlbnamevarchar20可否商品类别名pidint11可否根类别ID表 5.1 splb(商品类别)表字段类型字段大小可否空主键功能描述dwidint11否是商品单位IDdwnamevarchar20否否商品单位名表 5.2 spdw(商品单位)表字段类型字段大小可否空主键功能描述spidvarchar10否是商品IDspnamevarchar20否否商品名xinghaovarchar20可否商品型号lbidint11否否商品类别IDlbnamevarchar20否否商品类别名dwvarchar10可否商品单位jhpricedouble0可否进货价格ch
36、pricedouble0可否出售价格scjjdouble0可否上次进价kcslint11可否库存数量kczjdouble0可否库存总价minnumint11可否库存下限csnamevarchar50可否生产厂商名bzvarchar200可否备注表 5.3 spxx(商品)表字段类型字段大小可否空主键功能描述roleidint11否是角色IDrolenamevarchar20否否角色名bzvarchar100可否角色说明表5.4 role(角色)表字段类型字段大小可否空主键功能描述useridint11否是用户IDlogincodevarchar20否否登陆名passwordvarchar20否
37、否登陆密码usernamevarchar20否否用户名roleidint11可否角色IDstateint11否否状态bzvarchar100可否角色说明表5.5 users(用户)表列名类型字段大小可否空主键功能描述khidint11否是客户IDkhnamevarchar50否否客户名lxrenvarchar30可否联系人lxtelvarchar30可否联系电话addressvarchar50可否联系地址bzvarchar200可否备注表5.6 kh(客户)表列名类型字段大小可否空主键功能描述djidvarchat14否是销售单号khidInt11可否客户IDkhnamevarchat50可否
38、客户名称riqidata0否否日期yfjedouble0可否应付金额sfjedouble0可否实付金额cbjedouble0可 否成本金额jystatedouble0可否交易状态useridInt11可 否用户IDusernamevarchar20可 否用户名bzvarchar200可 否备注表5.7 ckb(销售单)表列名类型字段大小可否空主键功能描述idvarchar11否是IDdjidvarchar14 否否销售单号spidvarchar10否否商品IDspnamevarchar20可否商品名称spdwvarchar20可否商品单位spxinghaovarchar20可否商品型号lbid
39、int11可否类别IDlbnamevarchar20可否类别名djdouble0可否单价slint11可否数量zjdouble0可否总价表5.8 ckbsp(销售单查询)表列名类型字段大小可否空主键功能描述djidvarchar14否是退货单号khidint11可否客户IDkhnamevarchar50可否客户名riqidate0否否日期yfjedouble0可否应付金额sfjedouble0可否实付金额cbjedouble0可否成本金额jystatevarchar2可否交易状态useridint11可否用户IDusernamevarchar20可否用户名bzvarchar200可否备注表5.
40、9 tkd(退款单)表列名类型字段大小可否空主键功能描述idvarchar11否是IDdjidvarchar14否否退货单号spidvarchar10否否商品IDspnamevarchar20可否商品名spdwvarchar20可否商品单位spxinghaovarchar20可否商品型号lbidint11可否类别IDlbnamevarchar20可否类别名djdouble0可否商品单价slint11可否商品数量zjdouble0可否商品总价表5.10 tkdsp(退款单商品)表(二)各功能模块详细设计前面对总体结构进行了设计,接下来是对各功能模块的详细设计。设计的目的是确定各个模块具体实现哪些
41、功能以及执行过程。功能类别功能名称描述用户登录用户登录用户输入账号与密码,系统对其进行验证,经过后可使用系统销售管理销售出库能够自动判断商品是否有库存,若有库存则能够选择和填入各种信息后销售,保存销售后对应商品库存减少客户退货添加客户退货单据,选择和填入各种信息后退货,保存后对应商品库存增加销售单据查询可根据日期、客户、单据编号、付款状态来查询与筛选销售单。删除所选的销售单客户退货查询可根据日期、客户、单据编号、付款状态来查询与筛选退货单。删除所选的退货单当前库存查询默认列出所有商品库存,也能够根据商品类别、商品编号或名称进行筛选与查询系统管理角色管理能够添加修改删除角色,设置角色权限用户管理
42、能够添加修改删除用户,设置用户角色数据库管理能够备份数据库到硬盘某处,也能够从硬盘某处恢复数据库,还能够清楚所有营业信息、所有信息表5.11 功能模块详细设计表表5.2-1中用文字描述每个模块的具体实现的内容,对所有模块有一个直观的设计要求。(三)数据流图1.商品销售数据流图 图5.1 商品销售数据流图图5.1中,用户得到客户的销售信息后,输入销售信息。结合商品表和客户表的可供选择信息,以及商品表中的库存信息。生成销售单。销售单会被保存到销售单表和销售商品表中。2.客户退货数据流图图5.2 客户退货数据流图图5.2中,用户得到客户的退货信息,输入退货信息。商品表和客户表会提供相应的客户信息和商
43、品信息,结合三者后保存退货单。退货单最后会保存到退货单表和退货商品表中。3.销售单查询数据流图图5.3 销售单查询数据流图图5.3中,用户输入关键字查询约束条件,查询的销售信息从销售单表和销售商品表获取。亦可删除查询的结果。4.退货单查询数据流图图5.4 退货单查询数据流图图5.4中,用户输入关键字查询约束条件,查询的退货信息从退货单表和退货商品表获取。亦可删除查询的结果。(四)程序流程图上面介绍了各功能模块设计与数据流设计,下面对各功能模块处理的过程作详细设计。1.销售管理模块处理过程设计该模块下有销售出库、客户退货、销售单据查询、客户退货查询、当前库存查询子模块。下面是处理过程图 图5.5 销售管理处理图如图5.5,该模块下有销售出库、客户退货、销售单据查询、客户退货查询、当前库存查询子模块。销售出库中,首先选择商品类别,填写商品信息;选择好要出售的商品后保存,数据库修改后就结束了。客户退货中,首先选择商品类别,填写商品信息;选择好要退货的商品后保存,数据库修改后就结束了。销售单查询中,要输出查询