1、摘要近年来,各销售企业随着销售规模的不断扩大,在物流管理,库存管理和销售管理等各个方面的投入也越来越多。但单一的人力与物力的投入并不能从根本上解决由于销售规模扩大所带来的信息管理困难的重大问题,反而使销售过程变得复杂,信息反馈变得迟缓,管理成本不断增加。随着企业管理理论的不断成熟,与之相应的应用于实践的管理系统也呼之欲出。随着网络技术的不断进步,计算机硬件支持的不断完善以及计算机软件开发理论的日趋成熟,为跨区域,多平台,即时的数据统一的联网销售系统的实现和应用提供了强大的技术支持。伴随着B/S开发模式的流行,操作人员仅仅需要一个浏览器就可以随时随地的对信息数据库进行访问,完成信息的添加,更改和
2、删除的工作。由于B/S对多客户端访问的支持,为系统的跨区域使用提供了极大地方便。同时数据库管理系统理论和功能上的完善,也保证联网销售管理系统数据的安全性。主题词 销售管理;多客户端联网;B/S开发;信息数据库; AbstractIn recent years, as the growing of sales in retail companies, there are increasingly investment in logistic management, stock control and sales management. However, the investment in hum
3、an resources and materials only cannot fundamentally solve the information management problems that brought from increasing sales scale, it complex the sales process instead-slowed down the information feedback process and increased the management cost. Thus, with the development of the enterprise m
4、anagement theory, the need for the corresponding management system in practice is urgent.The development of network technology, computer hardware supporting and software development theory has been providing powerful technical support for the cross-regional, multi-platform, real time and unified dat
5、a network sales. As the increasing popularity of B/S development model, operators only need a browser to access information database at anytime and anywhere, adding, changing or deleting information. The support of B/S to multi-client access also provides great convenience for cross-regional applica
6、tion. In the meantime, as the improvement of database management system theory and application, it also ensured the safety of network sales management database.Key Words Sales management;Multi-client networking;B / S ; Information Database目 录1综述11.1 选题意义及背景11.2 研究现状11.3 论文主要工作22相关技术介绍32.1 C#和ASP技术简介
7、32.2 三层架构技术简介32.3 SESSION技术简介53系统分析与设计63.1 需求分析63.1.1 系统功能性需求分析63.1.1.1 总店子系统需求分析63.1.1.2分店子系统需求分析73.2 系统的概要设计83.2.1 开发环境83.2.2系统实现功能目标83.2.3 系统权限设计93.2.4 关键功能活动图103.3 数据库设计设计123.3.1 E/R设计123.3.2 数据库关系图133.3.3 数据库表结构144系统实现164.1 数据库操作模块的实现164.2 登录模块的实现184.3 权限控制模块的实现184.4 销售管理模块的实现214.4.1 销售开票操作的实现2
8、14.4.2 销售列表的实现224.5 利润管理234.5.1 销售利润列表的实现234.5.2 拆零利润列表的实现244.6 商品管理模块的实现244.6.1 商品添加功能的实现244.6.2 商品列表的实现264.7 会员管理模块的实现264.7.1 添加会员操作的实现264.7.2 会员列表的实现274.8 管理员管理模块的实现274.8.1 添加管理员操作的实现274.8.2 管理员列表的实现274.9 店铺管理模块的实现284.9.1 添加店铺操作的实现284.9.2 店铺列表的实现285总结29致谢30参考文献311综述 本章主要介绍了论文的选题意义及背景,并对该领域的研究现状进行
9、了详细的分析,阐明了论文的主要工作,并简要介绍了论文的结构安排等内容。1.1 选题意义及背景连锁企业随着规模的扩大,连锁结构越来越复杂,往往会有二级乃至有三级连锁机构,传统的经营管理模式已经不适应现代连锁经营企业管理的需要,因此也就产生了大量的问题:1、商品种类繁多。一方面连锁经营企业的商品种类少则几千种,多则上万种,因此商品批次过多,效期管理工作困难,由此带来的失效损失巨大;另一方面因商品繁多,而手工操作的准确性不可能保证百分之百,所以销售统计及库存情况不准确。2、统计数量大。企业的零售量相当大,每天的销售数据统计、汇总相当困难,尤其对于门店端的数据,往往不能准确统计。3、销售门店多。因各销
10、售分店库存不同、销量不同,给配送工作带来巨大难度,不是库存积压就是缺货、断货。4、企业经营管理决策缺乏有效的数字依据,计划定制盲目、不合理,加大企业经营风险。而在财务管理方面,财务信息滞后,财务报表的及时性差,往往需较长的时间财务报表才可使用。5、销售前端关键业务信息收集与反馈速度缓慢。6、连锁总部远离客户的趋势明显。7、不能及时、准确了解各层次连锁机构的销售情况和库存情况。面对上述问题,为了合理调配企业海量的信息和复杂的销售流程,整合利用各部门信息资源,加强企业管理,提高信息反馈效率,建立高效的商品连锁销售管理信息系统有其现实意义。1.2 研究现状随着市场需求的不断扩大,近些年销售管理系统的
11、功能更加强大,并不仅仅包括销售模块,而是同时融合了库存管理,会员管理,甚至是员工管理的方面。目前的功能主要有:服务管理、商品管理、销售管理、采购管理、费用管理、权限管理。有的系统也已经和公司网站联系在了一起,这就涉及了更多的功能,包括:新闻公告发布、工作台、快速通道、服务管理。随着数据量的不断增加,以及数据挖掘概念的提出与成功应用,销售管理系统正在向用户提供强大的数据分析功能,通过对以往销售数据的汇总与分析,为用户日后的生产及销售工作提供科学的指导,针对这方面系统提供的主要功能有:潜在客户池、公共检索、自动化管理策略等。虽然系统的功能不断强大,但是系统也存在着一定的问题。随着经营规模的不断扩大
12、,一个公司常常拥有多个连锁机构,而各个连锁机构信息间不通畅,常常会导致很多问题,比如货品滞销,货品分配不合理。即便各个连锁分店采用了现代的销售管理系统,单如果没有进行互联,没有统一的数据管理,再加上把所有分店信息汇总起来相当困难,各个分店也就相当于各自为战,完全没有充分利用现代网络给我们带来的系统互联的便捷性。所以,本论文所关注的方面是各个连锁机构之间的网络互联个信息的统一处理,本文所展示的系统的开发也是基于这个出发点。1.3 论文主要工作论文从实现各个连锁机构之间的信息互通出发,并且针对这个方面提出了连锁销售系统的设计。该系统采用的是B/S模式进行互联,采用ASP技术进行实现,并且使用了微软
13、公司大力推荐的分层软件架构方式,使用SQL SERVER 2008作为数据的最终存储。该系统注重各个分店连锁机构之间信息的统一,而没有对销售系统应该具有的各个功能进行完全实现,只是针对一部分功能进行实现用以展示系统之间信息的统一。论文主要的研究内容如下:(1)使用ASP技术编写B/S模式的系统,系统发布后,各个客户端可以根据系统所在的地址进行访问,网站服务器会根据请求一一进行应答。多个客户端和一个服务器保证了各个客户端之间平等访问服务器的权利,同时实现了信息的统一存储,从而实现了各个连锁分店之间信息的统一。(2)使用SQL SERVER 2008数据库管理系统保证了数据的安全性。因为多个客户端
14、的存在,在进行操作时会发生偶然的的问题,比如同时对同一数据信息进行更新。在系统的设计及编写方面不能对这一类问题进行很好的处理,而数据库强大的事务处理功能可以很好的是这个问题得到解决,防止数据发生错乱,导致系统崩溃。(3)将系统的使用者分成了不同的角色,而各个角色之间的权限不同。如此便将总店的管理和分店的管理区分开来,有效防止了各个分店之间违规的信息查看,以及可能发生的影响全局的错误操作,也使各个角色有了更加明确的工作。(4)使用session技术对登录的用户进行信息存储,并在各个页面加载之前进行信息检查,防止用户越权访问页面,进行操作。同时也通过session技术实现了用户信息的识别,在分店系
15、统中只涉及该用户所在点的信息,从而保证了系统的安全性。2相关技术介绍项目的连锁销售系统采用ASP技术实现,采用分层的系统架构方式,数据库选择的是SQL SERVER 2008,编辑环境选择的是Microsoft Visual Studio 2010。本章节则主要介绍涉及到的技术问题,如c#和ASP技术,三层架构技术和session技术等,同时介绍了系统实现的物理环境和软件平台。2.1 C#和ASP技术简介C#是微软公司开发的一种与JAVA极其相似的面向对象的高级程序设计语言,它是由C和C+衍生出来的编程语言。虽说与JAVA极其相似,但c#也和JAVA有着明显的不差异,c#借鉴了Delphi的一
16、个特点,与组件对象模型是直接集成的,它是微软.net框架的重要组成部分。它在继承C和C+优点的同时也去掉了他们一些复杂过时的特征性质,比如去掉了c语言宏的概念以及摒弃了C+多重继承的特性,而继承了C+面向组件编程和高效率运行的优点。C#同时也借鉴了VB的可视化操作,形成了C#语言本身强大的操作能力,优雅的语法风格,创新的语言特性和便捷的面向组件编程。ASP也是微软公司的一种技术,需要注意的是asp并不是一种编程语言,与其说是一种技术,不如说是实现了一种编程环境,在这种编程环境下可以同时使用html,Jscript,CSS等多种网页编程语言以及C#,C+等程序设计语言。同时微软本身还提供了完美支
17、持这种环境的编译调试软件,比如VS2010,VS2012等,这些软件均能实现网页空间的拖拽,极大地方便了网页布局人员的工作。同时这些软件集成了ASP的WEB服务器,免去了如JSP般复杂的服务器配置工作。ASP网站发布在IIS中,IIS也是微软提供的一项免费组件,集成在Windows 2000及以上版本的系统中。ASP强大的语言兼容能力,功能强大的编译调试环境,简单易懂的编程方式,以及方便快捷的网站服务器,使得ASP成为了一种非常流行的网络编程技术。ASP的主要用途有:动态直观的对网页进行布局,更改网页元素等任何内容;可以通过HTML提交的表单信息与用户进行交互,并且通过后台程序进行响应;可以方
18、便的从数据库中查询更改信息,并通过界面向用户进行反馈;ASP虽然是一种动态技术,但是在向用户展示界面时提供的是静态网页,也就是说ASP的动态代码不能由浏览器编辑或者查看,大大提高了安全性。ASP的工作原理:用户通过浏览器向服务器发起请求服务器接收请求并开始运行ASP程序ASP将程序执行结果组装成不包含动态代码的网页,并将网页发送到浏览器。2.2 三层架构技术简介三层架构是软件体系架构的一种方式,分为三层:数据库访问层,业务逻辑层,表示层。当然三层的划分不是物理实现时的划分,而是根据各部分功能的不同进行的逻辑上的划分,目的是为了使三个层次具有专一的任务,是逻辑更加清晰。其中业务逻辑层是这三个层中
19、最重要的一层,负责系统主要功能的实现。三个层次各自实现的功能如下:1表示层(UI):主要任务就是向用户展示界面,位于最外层,最接近用户,用于显示数据和接收用户输入的数据,负责信息的显示和收集,并将收集的信息向业务逻辑层进行提交处理。一般也为显示或者收集的信息进行基本的有效性判断,从而减轻了业务逻辑层的负担,又不失逻辑分层上的严谨性。2业务逻辑层(BLL):主要任务就是实现系统各个功能。从表示层接收信息,根据需要完成的功能进行相关处理。向下调用数据库访问层的方法,向上为表示层提供需要展示的信息。业务逻辑层将整个系统的功能都进行了处理,而不负责信息收集,以及信息的持久化等工作。3数据库访问层(DA
20、L):主要任务就是对数据库进行,增添,删除,修改,查找的基本操作。这些基本操作都是通过业务逻辑层根据不同的功能需求进行相应的调用的,该层不涉及任何业务逻辑上的东西。但是需要注意的是,该层虽然针对原始数据进行操作,但它通常不负责数据物理上的存储以及查找的功能,对于数据物理上的操作,通常该层将借助数据库管理系统,如SQL SERVER 2008 ,My SQL 和Oracle进行具体的操作。当然有时该层也会访问二进制文件,文本文档或者XML文档等。通过以上三层的划分,表示层不直接与数据库访问层进行交互,也就是说数据的交互需要通过业务逻辑层才能进行,从而使业务逻辑层可以对信息进行功能上的处理以及合法
21、性检验的工作。表示层和数据访问层对功能的实现一无所知,表示层只负责界面怎么展示信息,数据库访问层只负责去数据库里得到信息,具体这些信息该怎么用都是业务逻辑层需要干的事。但是业务逻辑层对数据“从哪里来”,数据到“哪里去”同样一无所知。三个层次的交互关系如下图:表示层业务逻辑层数据访问层数据库系统图2-1三层架构各层之间交互图关于三个层次的划分:表示层:只向用户展示信息,采集用户输入的信息,并且将信息传递给业务逻辑层,此层不涉及任何的业务逻辑。业务逻辑层:只从表示层接收信息,根据功能需求做出相应处理,然后利用数据访问层进行增删改查等基本操作,并将信息整合之后向界面层进行反馈。该层不管数据的来与去。
22、数据访问层:只负责数据的增加,删除,查询和更改操作,该层是被业务逻辑层根据需求进行调用的。该层不涉及任何业务逻辑。进行层次的划分,本质上的目的是降低耦合,大大降低了各个模块间的依赖,优点在于使不同层次的开发人员只关注整个结构中的某一层,加快开发进度。在系统的后期维护中,能够很容易的用新的实现替换掉原有层次的实现,而保持其他层次不变,这样就极大地降低了维护的成本和时间。但由于数据在各个层次之间的传递,使系统的性能降低了,同时可能还会增加系统的开发成本。2.3 SESSION技术简介Session是指用户在初次浏览某个网站时,将于该网站的服务器进行连接,同时在服务器中将保存一份有浏览器信息生成的在
23、服务器端唯一识别的信息,这份信息将一直保持到用户关闭浏览器,结束这次访问。Session涉及客户端即浏览器,同时也涉及服务器端,比并且需要不间断的访问才能保持、需要注意的是,同一主机的不同客户端(即不同的浏览器)对同意服务器进行访问,在服务器中生成的Session是不同的,也就是说session生成的单位是客户端对服务器一对一的访问,而不是主机对服务器的访问。客户端请求请求服务器接收请求建立session首次访问读取,更改session图2-2 Session技术客户端于浏览器之间交互图存储于服务器的session可以在客户端与服务器的会话中中多次使用,也就是说客户端可以从服务器得到一些有用的
24、信息,也可将一些信息存进Session,供客户端后期访问。Session的这一特性,可以帮助B/S系统实现诸多技术上的问题。比如用户是否登录的判断,用户登录后权限的检查,界面刷新过程中临时信息的存储等,这些问题本系统也是通过Session技术进行解决的。在ASP中使用session的方法相当简单。Sessionuser = user; /将user对象存入session,在session中的唯一识别名称为userUser= Sessionuser; /从session中读取名为user的session信息Session.Remove(user); /将名为user的信息从session中删除3
25、系统分析与设计本章节对项目进行了详细的需求分析,并且实现了系统的概要设计,关键的功能绘制活动图,包括需要实现的功能和权限分配等问题,并且介绍了详细设计中各个模块中关键功能的实现代码分析。3.1 需求分析3.1.1 系统功能性需求分析根据本系统的实际使用功能,连锁销售管理系统主要由两个子系统构成:1、 总店子系统:由总店的管理员进行操作,面向总店的使用者,权限较高;2、 分店子系统:由分店的管理员进行操作,面向各个连锁店的使用者,权限较低。3.1.1.1 总店子系统需求分析1、基础资料管理(1)商品资料管理:添加基本的商品信息(只有存在基本的商品信息,才能进行出/入库以及等操作)。保存商品的进货
26、价格,用以销售时的利润计算。维护商品的其他信息,可以进行增加更改删除的操作。(2)门店资料管理:由于本系统是针对连锁销售进行的的设计,所以所有联网的门店均需要注册基本信息。门店基本资料应该包括门店的唯一识别ID,门店所在地以及联系方式等。管理操纵应该包括注册新门店,在门店地址或者联系方式等信息变更时可以进行更细,在门店不在进行经营是可以将门店的信息删除。 (3) 会员管理:会员是销售的对象,是销售时必须记录的信息。会员的基本信息包括唯一的识别代码,会员名以及折扣率等,折扣率是用于会员在购买商品时打折所用。系统的管理功能应该可以提供新会员的注册,会员信息的维护,即会员名的更改以及根据购买情况折扣
27、率的更改。(4)管理员管理:管理员身份是登录系统的依据,同时管理员本身具有一定的权限,只能进行指定的操作。包括新增管理员,更改管理员权限以及删除管理员等等。2、库存管理(1)入库操作,对商品进行采购之后,需要进行商品入库,只有入库之后的商品才能进行销售。入库价格参照当前保存的商品价格。进行入库操作时应该生成入库单,以供后期查询使用。 (2)出库操作,商品在销售之后必须进过出库操作才能将商品取走。出库操作也该生成出库单供后期查询使用,出库操作最重要的事对库存进行删减,保证真实货品量与系统中货品量的统一。(3)提供出/入库列表,可以查看任一时间的出/入库操作对库存进行更新的情况,保证正确的出入库数
28、量,发现错误可以对出入库表进行更改。(4)门店库存查询, 实时统计每个门店的各种商品库存情况,以列表方式显示某个门店某个商品的具体库存数量,对商品的不足和积压实时预警。(5)总部库存查询,实时统计总部的各种商品库存情况,以列表方式对显示库存的数量,商品的不足和积压实时预警。(6)由于可能存在各个店铺之间库存不合理的现象,所以需要店间调拨管理,加盟店之间的商品调拨。主要是将产品从数量充足的仓库掉往藏品缺乏的的仓库,仓库调整的时候要生成库存变更单,供后期查询。(7)由于可能存在商品为整装或者散装的问题,在销售时要核准有库存够不够,这就出现了整装和散装如何调整,也就是拆零的问题。拆零主要是整装拆成散
29、装,同时由于整装和散装单位价格不统一的问题,出现了拆零获利的问题,也就是说整装拆零后散装的总价值大于整装价值。3、销售管理(1)可以开销售单,包括产品单唯一识别编号,会员编号,销售日期,销售的店铺以及具体销售的商品信息,商品信息包括数量以及价格等。销售提交时需要生成销售清单和出库单,销售单生成时需要计算利润,结算总价是要参考购买会员的折扣率。(2)门店销售查询,实时统计每个门店的商品销售情况,以列表方式显示出来,可以进行关键字查询,需要包括的信息包括商品销售数量、销售额等。(3)查看销售利润,显示单位以每次销售为依据。包括销售编号以及所获得的利润等。3.1.1.2分店子系统需求分析1、基础数据
30、管理(1)货品管理:添加基本的商品信息(只有存在基本的商品信息,才能进行出/入库以及等操作)。保存商品的进货价格,用以销售时的利润计算。维护商品的其他信息,可以进行增加更改删除的操作。(2) 会员管理:会员是销售的对象,是销售时必须记录的信息。会员的基本信息包括唯一的识别代码,会员名以及折扣率等,折扣率是用于会员在购买商品时打折所用。系统的管理功能应该可以提供新会员的注册,会员信息的维护,即会员名的更改以及根据购买情况折扣率的更改。2、库存管理(1)出库操作,商品在销售之后必须进过出库操作才能将商品取走。出库操作也该生成出库单供后期查询使用,出库操作最重要的事对库存进行删减,保证真实货品量与系
31、统中货品量的统一。(2)提供出/入库列表,可以查看任一时间的出/入库操作对库存进行更新的情况,保证正确的出入库数量,发现错误可以对出入库表进行更改。(3)门店库存查询, 实时统计每个门店的各种商品库存情况,以列表方式显示某个门店某个商品的具体库存数量,对商品的不足和积压实时预警。3、销售管理(1)可以开销售单,包括产品单唯一识别编号,会员编号,销售日期,销售的店铺以及具体销售的商品信息,商品信息包括数量以及价格等。销售提交时需要生成销售清单和出库单,销售单生成时需要计算利润,结算总价是要参考购买会员的折扣率。(2)门店销售查询,实时统计每个门店的商品销售情况,以列表方式显示出来,可以进行关键字
32、查询,需要包括的信息包括商品销售数量、销售额等。3.2 系统的概要设计3.2.1 开发环境系统开发环境的需求见下表:表3-1 环境需求配置清单开发环境配置需求清单内存1GB以上系统Windows 7开发语言C#开发工具IIS数据库SQL SERVER 2008架构方式三层架构服务器VS2010自带ASP服务器调试浏览器FireFox浏览器3.2.2系统实现功能目标该系统主要模块包括库存管理和销售管理,还包括了一些基本资料模块,如货品管理,会员管理,店铺管理和管理员管理。具体功能设计如下表:3-2 系统功能设计表功能分类功能概况具体功能功能说明(可参考需求分析) 主要操作库存管理库存变更主要支持
33、入库操作,一次可对某一仓库入库多种产品库存变更列表入库和出库的总单列表,包括总单号,店铺号,时间以及总价等,不包括某一具体商品的入库数量。支持关键字查询详细变更列表详细列出某一具体商品在某一店铺的入库数量。支持关键字查询库存查看库存情况列表。可以对某一商品进行整装拆零。支持关键字查询销售管理销售开票一个店铺一次可以销售多种商品,并生成销售单,同时生成出库单(涉及库存管理)。销售概况销售总单列表,只显示总单号,销售对象,时间等信息,不涉及具体商品的销售情况详细销售列表店铺向销售对象销售具体商品的情况,包括价格等信息销售利润销售渠道获得的利润,不可更改拆零利润通过整装拆零获得的利润,不可更改基本资
34、料货品管理添加货品增加商品,只有存在相应产品时才可进行出/入库和销售操作货品列表货品列表中的编辑一项可以对已存在的货品信息进行更改。由于涉及价格和整/散装数量问题,需要清空库存后才可编辑。会员管理添加会员需输入新增会员编号,姓名,折扣率。会员列表只可更改姓名和折扣率。管理员管理添加管理员需输入管理员编号,密码,姓名,所在店铺以及权限管理员列表只可更改密码,姓名,所在店铺以及权限店铺管理新增店铺需输入店铺编号,名称,地址以及联系电话店铺管理只可更改名称,地址以及联系电话。注:1:只有店铺,货品资料存在时才可进行出库或者入库操作。2:只有店铺,货品(足量)以及会员同时存在时才可进行销售操作。3:由
35、于整装价格,整装数量和散装价格不一致问题,可能会产生拆零(将整装拆成散装)利润。4:在销售时,会参考会员折扣率确定最终价格。3.2.3 系统权限设计角色分类:表3-3 角色分类表管理员名称权限代码及代号所在店铺码0101总店管理员2 总店操作员其他3分店管理员4 分店操作员权限分配:表3-4 权限分配表功能概况具体功能1总店管理员2 总店操作员3分店管理员4 分店操作员库存管理库存变更是是是是库存变更列表是是是是详细变更列表是否否否库存查看是是是是销售管理销售开票是是是是销售概况是是是是详细销售列表是否否否销售利润是否否否拆零利润是否否否货品管理添加货品是否否否货品列表是是是是会员管理添加会员
36、是否是否会员列表是是是是管理员管理添加管理员是否否否管理员列表是是否否店铺管理新增店铺是否否否店铺管理是是否否3.2.4 关键功能活动图图3-5 登录模块过程图在登陆界面输入用户名密码,系统会校验相关信息是否正确,如果成功判断相关权限选择不同界面,如果失败则退出。图3-6销售操作活动图用户可以通过显示销售界面,查看药品信息,然后将药品添加到销售单,提交后体统会检查药品是否存在,如果存在会直接销售单,成功提交后自动生成出库单,并将入库记录添加到数据库中,如果成功出库,改变数据库中药品数量,显示列表,如果失败则显示失败,回滚。3.3 数据库设计设计3.3.1 E/R设计3-7 E/R设计图3.3.
37、2 数据库关系图3-8数据库关系图3.3.3 数据库表结构表3-9-1User表:列名属性是否主键完整性约束说明Users_idchar(10)是not nullIDPwchar(20)否not null密码Users_namechar(30)否not null用户名shop_idchar(10)否references Shop(shop_id)所在店铺IDauthoritychar(1)否authority=0 or authority=1权限表3-9-2Shop表:列名属性是否主键完整性约束说明shop_idchar(10)是not nullIDshop_namechar(20)否not
38、null商店名Addresschar(30)否无商店地址contactchar(20)否无商店联系方式表3-9-3 Products表:列名属性是否主键完整性约束说明pro_idchar(10)是not nullIDpro_namechar(20)否not null产品名称bulk_priceint否无散装价格while_priceint否无整装价格pack_numberint否无整装数量表3-9-4Member表:列名属性是否主键完整性约束说明mem_idchar(10)是not nullIDmem_namechar(20)否not null会员名allowanceint否无折扣率表3-9-
39、5AllStorage表:列名属性是否主键完整性约束说明allstor_idchar(10)是Not nullIDshop_idchar(10)否references店铺IDstor_datedatetime否无变更日期change_modechar(4)否出库 or 入库变更方式totalint否无总价表3-9-6AllSaleMember表:列名属性是否主键完整性约束说明allsalem_idchar(10)是not nullIDshop_idchar(10)否references店铺IDmem_idchar(10)否references会员IDstor_datedatetime否无销售日
40、期Costint否无货品成本sale_priceint否无销售价格member_allowanceint否无会员折扣final_priceint否无最终价格profitint否无利润表3-9-7SaleMember表:列名属性是否主键完整性约束说明salem_idchar(10)是not nullIDpro_idchar(10)否references店铺IDallsalem_idchar(10)否references会员IDpack_modechar(4)否0 or 1 or 2包装方式bulk_numberint否无散装数量bulk_priceint否无散装价格while_numberint
41、否无整装数量while_priceint否无整装价格totalint否无总价表3-9-8Bale表:列名属性是否主键完整性约束说明bale_idchar(10)是not nullIDpro_idchar(10)否references货品IDshop_idchar(10)否references店铺IDbale_timedatetime否无拆零日期bale_numberint否无拆零数量bulk_priceint否无散装价格while_priceint否无整装价格4系统实现本章详细介绍了各主要模块的实现原理,在介绍过程中详细分析了实现的实现代码。4.1 数据库操作模块的实现本系统采用三层架构模式开
42、发,分为界面层,逻辑层与数据层。系统在操作过程中需要频繁查询或者更改信息,所以系统的实现过程中需要多次对数据库进行操作,而在对数据库进行操作之前必须进行数据库连接。如果每一部分都单独编写数据库连接代码,将造成代码的冗余,同时降低了系统的可维护性。为此本系统将数据库连接参数写进配置文件Web.config,并为数据库的连接和基本语句的执行单独写作一个类DbHelperSQL。具体如下所示:配置文件:SaleManageWebWeb.configDbHelperSQL类的实现:SaleManageDBUtilityDbHelperSQL.cspublic abstract class DbHelp
43、erSQL/在配置文件Web.config中取得连接参数。PubConstant的代码在本类代码之下 public static string connectionString = PubConstant.ConnectionString; /执行sql语句,返回datasetpublic static DataSet Query(string SQLString) /与数据建立连接 using (SqlConnection connection = new SqlConnection(connectionString) DataSet ds = new DataSet();声明用于装载查询结果的对象 try connection.Open(); /打开会话 SqlDataAdapter command = new SqlDataAdapter(SQLString, connection); /执行SQL语句字符串 comman