




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
年4月19日产品销售管理系统的设计与实现资料内容仅供参考,如有不当或者侵权,请联系本人改正或者删除。引言随着现代科学技术的迅猛发展,计算机技术已经渗透到各个领域,成为各行业必不可少的工具,特别是Internet技术的推广和信息高速公路的建立,使IT产业在市场竞争中越来越显示出其独特的优势,步入数字时代。而面对市场各企业的管理,高效的处理企业中管理问题在适应市场的发展中突显出尤为重要的作用。产品的销售管理在现代企业经营管理中占据着重要的地位,一个企业产品销售管理的水平几乎决定着企业的经济命脉。企业的所有功能、信息、组织管理方面都是一个集成整体的各个部分。管理信息系统(MIS)是企业CIMS工程中的一个分支,产品销售管理系统是企业MIS建设中重要的组成部分。计算机集成制造系统(CIMS:ComputerIntegratedManufacturingSystem)是在自动化技术、信息技术及制造技术的基础上,经过计算机及其软件,把企业全部生产活动所需的各种分散的自动化系统有机的集成起来,是适合于多品种、中小批量生产的总体高效益系统。MIS(管理信息系统)是CIMS中很重要的一个部分,是企业信息化的直接体现。管理信息系统(MIS)的概念起成熟于20世纪70年代。管理信息系统(MIS)就是借助以计算机、互联网等先进技术为代表的信息手段,将企业的经营及管理流程在线实现,并使企业管理层真正能够在线获得完整而明晰的”信息”,信息化是一项长期的事业,无论是跨国企业,还是国内的企业,都是在过去几十年中的不同时间、不同切入点开始信息化建设的。我们能够想象,在企业中,使用人工的方式管理各项产品销售信息不但效率低下,而且容易出错,安全性也很差。而且在实际的操中数据的查找以及客户信息的保管等都不容易实现。这些不但将导致管理费用的增加,服务质量也难以得到保证,从而影响企业的竞争力。本次毕业设计将完成北京东洋贸易有限公司产品销售管理系统,本系统的研究目的在于:实现该公司产品信息、销售信息管理及信息检索;实现客户信息管理,从而提高公司的工作效率和质量。本文将在后面对本系统各个功能模块一一加以详细阐述。1.项目概述1.1项目背景经过20多年的时间,中国企业的信息化建设工作取得了长足进展,但由于对企业信息化建设的途径缺乏系统而科学的认识,以往许多企业的信息化建设工作走了不少弯路,出现了一些误区,其中表现最为明显的倾向是不顾本单位信息化建设的现实条件,盲目地追求业务处理的自动化、决策自动化等更高层次的信息化建设,而忽视了企业信息库的构建这一信息化建设的第一步基础性工作。这种倾向又有许多不同的形式,在产品销售管理方面具体表现为:(1)不重实施,急于求成有的人认为将产品销售管理软件买来即可,对实施的重要性理解不够,有的甚至说只要提供说明书即可,还有的急于求成,要求在短时间内见到成效,这些做法是不切实际的。(2)企业与产品销售管理软件提供商配合不够企业在实施过程中配合不够,认为买产品销售管理软件出了钱,其它的事情都是软件公司的,企业被动地等着使用。应该说企业经过重复考查和选型,一旦选定了软件,企业应该与产品销售管理软件提供商建立一种长期合作的关系,更准确地说应是建立合作伙伴关系,二者应密切配合,以使所购的产品销售管理软件在企业能充分用好,为企业解决实际问题,带来直接的经济效益。(3)企业的标准太老或没有标准企业现有的标准太老,不太适合计算机处理。随着制造业信息化的发展,标准化落后于新技术的发展,满足不了企业需求的矛盾逐步显现。这些新技术很快就被利用为企业信息化管理平台,以及新的企业与客户、企业与企业、个人之间的沟通渠道。最为重要的是无沦信息来自哪项技术、哪个渠道,它都去更改同一个数据库,而保证了不同渠道看到的信息是同步的。这包括客户、供应链和其它各种企业信息。(4)企业的需求超前企业提出一些超前或不切实际的功能要求,而产品销售管理软件暂时不能满足。有的企业认为越先进的功能越好,在选型过程中一味追求先进,而没有考虑是否实用、是否可靠、是否有局限性等等问题。(5)企业推行的力度不够有人说:企业信息化的决心和态度,问题不在技术,关键在于企业领导人对信息化的参与和掌控。企业信息化实际上并不只是钱的问题,还涉及到企业的管理和运作是否能够配合改变。其实企业实施信息化不但要求产品销售管理软件提供商有丰富的经验和完善的产品,而且需要企业产品销售管理者参与到整个产品销售管理系统的设计和实施中去,否则管理思想就不能与产品销售管理软件技术相结合,从而功亏一篑,因此,企业信息化应该是”一把手”工程,企业决策者一定要坚定信心,贯彻到底,支持到底,这才是企业信息化成功的法宝。在企业信息化建设过程中涉及的各方面如产品销售管理系统的应用上与整个企业信息化的发展是同步前进的。1.2项目开发意义本课题的工作就是在企业CIMS和MIS建设中开发的一个产品销售信息管理软件--北京东洋贸易有限公司产品销售管理系统。北京东洋贸易有限公司产品销售管理系统是基于ASP.NET和SQLServer数据库开发的应用系统。使用ASP.NET技术能够动态生成管理页面,能够使产品的销售和管理变得很轻松。管理员登陆后只需添加或修改相应产品信息元素就能够了,系统将自动生成对应的信息。而使用SQLServer数据库将减轻维护人员的工作量,使系统便于维护和管理。本系统的研究目的在于:实现该公司产品信息、销售信息管理及信息检索;实现客户信息管理,从而提高公司的工作效率和质量。1.3软硬件需求本系统的软硬件需求如下:在Windows平台上运行后台数据库:SQLServerExpress运行环境:InternetExplorer、IIS7.5个人计算机,AMDCPU,1G内存2项目需求分析随着经济的不断发展和完善,企业的经营行为正迅速地由以生产为中心转向以营销为中心,经过强化销售来指导生产,从而创造更多的利润。当前,许多企业在销售管理环节上存在着大量的问题,如产品结构不合理、产品库存积压严重等等,这些因素严重制约着企业的发展,影响企业的生存。为了解决这些问题,决定开发商品销售管理系统。该系统从企业管理的实际需求出发,以市场为导向,经过对客户、商品库存、销售行为、销售过程等环节的记录、管理,建立弹性和灵活的销售业务流程及制度,从而使企业销售管理工作从经验走向科学。2.1系统的功能需求北京东洋贸易有限公司产品销售管理系统是一个实用的产品销售管理系统,能够实现该公司产品信息、销售信息管理及信息检索;实现客户信息管理,从而提高公司的工作效率和质量。(1).客户信息管理实现客户信息的增删改查等功能,而且能查看客户的购买记录,有效提高企业对客户信息管理的力度和效率。(2).产品信息管理产品信息查询查看:以表格形式呈现数据库中的产品信息,而且允许查找功能。产品信息的增删改管理,以表格形式呈现产品信息,而且有增添新产品的链接,表格上有修改和删除选项直接导入修改页面修改产品信息,或者删除该行。进货入库管理:输入产品编号后能够快速添加该产品的库存数量。退货出库管理:输入产品编号后能够快速减少该产品的库存数量。(3).销售信息管理订单管理:能够显示订单状况,而且打上处理标志,表格方式呈现利于管理。显示销售年份信息:选择销售年份后,即可显示该年份的月供销信息。修改销售年份信息,增加新的销售年份,或者修改原有销售年份中某个年份中的信息,将该年份以表格形式展示12个月份的信息,支持直接在表格上进行修改,查询统计功能:能够显示某年的年供销额,支持自动计算,支持显示图表。(4).库存管理库存统计:以表格形式呈现数据库中的产品库存情况,而且允许查找功能。库存预警:以表格形式呈现数据库中的产品库存情况,只显示库存不足的产品。(5).保密信息管理模块修改当前用户的密码:允许用户修改当前用户的管理员登陆密码。(6).用户管理用户查询查看:允许总经理级别管理员查看所有后台管理员的账号,同样以表格方式呈现,显示出用户的姓名,地址,电话等信息。用户的增删改:以表格形式呈现用户信息,而且有增添新用户的链接,表格上有修改和删除选项直接导入修改页面修改用户信息,或者删除该行。(7).数据维护该功能可实现对数据的备份和还原,保证数据的可恢复性和安全性。(8).退出系统:离开本系统。本系统功能图如下:登录权限管理登录权限管理验证登录信息并赋予相应权限验证登录信息并赋予相应权限历史购买记录信息客户订单信息退换货信息按指定方式搜索客户信息历史购买记录信息客户订单信息退换货信息按指定方式搜索客户信息客户交易信息管理客户信息管理模、客户交易信息管理客户信息管理模、客户信息的增删改查客户信息的增删改查北京东洋贸易有限公司产品销售管理系统按指定方式搜索产品信息北京东洋贸易有限公司产品销售管理系统按指定方式搜索产品信息产品详细信息的增删改查产品信息管理模、产品详细信息的增删改查产品信息管理模、进货管理进货管理退货管理退货管理显示销售年份信息添加、修改、删除销售年份信息订单管理查询统计功能销售报表管理显示销售年份信息添加、修改、删除销售年份信息订单管理查询统计功能销售报表管理查询销售情况销售信息管理查询销售情况销售信息管理商品库存情况商品库存情况库存统计库存统计库存管理库存管理库存预警库存预警数据维护数据维护用户用户管理退出系统退出系统图2-1销售管理系统功能图2.2数据流图分析数据流图是结构化分析方法中用于表示系统逻辑模型的一种工具。它以直观的图形清晰地描述了系统数据的流动和处理过程,图中没有任何具体的物理元素,主要强调的是数据流和处理过程。即使不是计算机专业技术人员也很容易理解,数据流图是软件开发人员和用户之间很好的通信工具。图2-2为本此毕业设计系统的数据流图顶层图,它体现了系统名称:F=f1客户信息+f2产品信息+f3销售信息+f4库存信息F1=f2产品信息+f3销售信息图2-2商品销售管理系统数据流图顶层图数据流0层图体现了系统的主要功能框架,本系统的0层图如图2-3所示:图2-3商品销售管理系统数据流图0层图0层图中的每个逻辑功能都需要细化,直到足够简单具体为止。图2-4对处理订单功能进行了细化:图2-4商品销售管理系统数据流图-处理订单功能细化图2-5是对添加订单功能的细化,经过输入要添加的订单信息点击确认以后,即可把新的订单信息保存到数据库中:图2-5商品销售管理系统数据流图-添加订单功能细化图2-6是对处理订单功能的细化,首先也进行用户信息的匹配验证,进入系统后,点击修改按钮即可对订单信息进行修改操作,确认后系统进行信息保存:图2-6商品销售管理系统数据流图-修改订单功能细化3项目概要设计3.1设计原则为了使本系统功能完备,操作简便,最大限度的提高软件的质量,从而满足用户的实际需要,在设计开发过程中遵守了如下原则:(1)合法性原则:依据产品核算系统的工作规定以及要求,参照核算实际的工作情况,进行诸如产品进货、销售等工作。(2)实用性原则:适合产品信息管理工作的实际需求,并能够处理一些特殊情况的要求,另外,尽可能预留空间,一边扩充功能。(3)易操作原则:要求设计的系统功能齐全,界面友好,操纵方便,必要的地方进行提示。(4)源程序可读性原则:为了便于其它设计,维护人员读懂代码或以后的代码修改,软件升级维护,尽可能做好代码注释工作。(5)安全性原则:能够为该系统的用户设置用户权限。3.2系统开发平台依开题报告中的各种平台的对比分析,比较权衡后确定开发平台为:表3-1系统开发平台开发工具MicrosoftVisualStudioExpress使用语言C#.NET数据库SQLServerExpress开发模式B/S开发环境MicrosoftVisualStudioExpress、SQLServerExpress、InternetExplorer、IIS7.5根据销售管理系统的特性,从程序入口(登陆窗口)开始,以各个部门将项目分块进行设计,做到分类清楚,一目了然,在系统界面,以及物理文件的路径结构上都进行分类规划,有利于日后进行内容的更新和扩充。由分块的性质,采用适宜的树状结构划分整个系统,依照系统的需求将系统分为:用户登陆,客户信息管理,产品信息管理,销售信息管理,库存信息管理,用户信息管理,保密信息管理(修改密码)几大类。并在各类下按照需求进行小类的划分。用户信息管理模块包括登陆验证,用户类别检查两个功能模块。客户信息管理模块下包括客户信息查询查看,客户交易信息管理,客户信息的增删改管理。产品信息管理包括产品信息查询查看,产品信息的增删改管理,进货入库管理,退货出库管理。销售信息管理模块包括订单管理,显示销售年份信息,修改销售年份信息,查询统计功能。库存管理包括库存统计和库存预警模块,保密信息管理包括修改当前用户的密码。用户管理包括用户查询查看,用户的增删改。以及系统的各种功能,例如退出系统。3.3系统架构设计--B/S模式随着网络规模的日益扩大,应用程序的复杂程度不断提高,传统的数据库应用架构已经不能胜任。为了充分利用网络资源,越来越多的信息需要在
www(WoridWideWeb)上发布,实现信息最大程度的共享。Browser/Serve结构伴随着Intemet的发展而很快地发展起来。Browser/Serve体系结构是一种三层结构,其三级结构组成如图1-2所示:图3-1B/S结构示意图B/S系统体系结构的特点:(1).友好、统一的图形用户界面在Browser/Server系统中,由于遵循了统一的标准协议,而且使用浏览器作为统一的客户软件,用户无须再花费大量的时间与精力去学习和熟悉不同的系统的使用方法,用户能够把大部分的精力集中在系统的内容上,而不是去记住系统的使用说明书。(2).减少网络中的数据流量在Browser/server系统中,由于数据的处理工作是由服务器来执行的,因此在读取数据和保存数据时,这些数据只在几台服务器之间传输,不需要经过浏览器与服务器之间的网络。一般来说,浏览器与服务器之间的网络大都是距离较长而且速度较低的,而服务器与服务器之间的网络则是距离较短而且速度较高的,因此采用Browser/Server后,能够充分地利用服务器之间的高速连接通路,而减少在浏览器与服务器之间的长距离低速网络中的数据流量。(3).更好的开放性开放性是发挥分布式系统优势的基本保障,它为不同厂商生产的产品协同工作创造了条件,可是这些产品还应当遵循统一的标准。在Browser/server系统中,采用了一致的HTTP协议以及其它一些共同的规则,不同系统之间的冲突将会大大减少。(4).平台无关性在Browser/Server系统中,程序的主体分布在Mid-Server上,客户机上只有一个标准的浏览器,它与服务器之间采用标准的TCP/IP及HTTP等协议进行通信,因此客户端的平台是相对独立的,它不依赖于服务器方所采用的软硬平台。用户能够自由地选择自己熟悉的平台进行工作。(5).有效地解决异种数据库联合使用的问题在Browser/Serve系统中,由于采用了Browser/Mid-Server/Server的三层体系结构,只需在中间层服务器上安装数据库的驱动程序,或者使用专门的服务器用作与数据库连接的桥梁。因为程序的主体是运行在中间服务器上的,客户端只是一个浏览器,避免了在客户端重复安装数据库驱动程序的问题,从而能够有效地解决异种数据库联合使用的问题。(6).客户端的维护工作简单Brower/Serve系统中,由于采用了通用的客户软件,维护工作主要集中在服务器端,而服务器是由专门的管理人员集中管理的,对系统的维护相对简单得多。因此本系统采用B/S架构设计系统。3.4开发工具简介3.4 选择MicrosoftSQLServer开发工具是由于其本身的巨大优势,具体如下:(1).性能和可伸缩性行业标准测试结果表明,SQLServer能够承受世界上最强的负载。诸如Unilever,Citi,BarclaysCapital,以及MediterraneanShipping这些使用SQLServer支持最关键应用程序的客户以及运行SQLServer的客户都体验到了可伸缩性的增强。最终,诸如Siemens以及RedPrairie这样的大型ISV厂商也历史性的从推广Oracle转变为推广SQLServer.(2).更加安全(漏洞更少)NationalVulnerabilityDatabase(NIST)报告显示了在过去四年时间里,Oracle的数据库产品中有超过250个致命的安全漏洞。而同一时期SQLServer却一个漏洞都没有。微软所取得的成功来自于可靠性计算项目中的安全引擎进程,全方位的安全特性,以及强大的更新系统,它们都能够降低安全风险并减少客户由于打补丁所造成的停机时间。专家表示在补丁管理方面的技术,Oracle比微软要落后五年,而且只有三分之一的Oracle数据库管理员会进行打补丁的操作。(3).开发效率SQLServer能够同VisualStudio团队协同工作,提供集成化的开发体验,并让开发人员在统一的环境中跨越客户端、中间层以及数据层进行开发。SQLServer在新的开发功能方面领先了一步。而反观Oracle经过附加的方式提供较为混乱的工具集和SDK,使得开发人员需要不断学习并跨越多个接口进行工作。事实上,IDC的报告表明,微软在提供应用程序平台的厂商中排名首位。(4).商业智能(BI)SQLServer作为微软集成化BI平台的组成部分,能够提供数据仓库、分析报表、绩效考核以及规划预算等功能。在Gartner的MagicQuadrantforBI报告和MagicQuadrantforDataWarehousing报告中,SQLServer都处于领先地位。SQLServer在数据仓库和商务智能方面都有很多创新功能。(5).与Office的集成SQLServer经过与大家所熟知的MicrosoftOffice用户界面紧密集成(例如DataMining结合Excel这样的免费管理单元),能够帮助客户实现更好的商业洞察力并快速做出商业决策。正因如此,IDC认为微软是发展速度最快的BI厂商。(6).总体拥有成本(TCO)和Oracle相比,SQLServer最强的优势在于能够以很低的TCO来提供上述好处。其主要原因是:1)业界领先的自我调优及自动管理功能能够降低人力成本。2)高效、集成的环境能够加快解决方案制定的时间从而快速实现商业洞察力。3)与Oracle有所不同,SQLServer并不需要额外付费就能够使用很多重要的功能,例如压缩、加密以及获取产品更新和安全补丁。因此本系统采用MicrosoftSQLServer作为后台数据库的开发工具。3.4.2 ASP.NET是一种建立在通用语言上的程序构架。一个已编译的、基于.NET的环境,把基于通用语言的程序在服务器上运行。将程序在服务器端首次运行时进行编译,比ASP即时解释程序速度上要快很多。微软公司发布了包括VisualBasic.NET、C#.NET、VisualC++.NET等与.NET兼容的语言来创作应用程序。ASP.NET是在服务器上运行的编译好的公共语言运行库代码,它可利用早期绑定、实时编译、本机优化和盒外缓存服务。这相当于在编写代码行之前便显著提高了性能。(1)世界级的工具支持ASP.NET框架补充了VisualStudio集成开发环境中的大量工具箱和设计器。编辑、拖放服务器控件和自动部署只是这个强大的工具所提供功能中的少数几种。(2)灵活性由于ASP.NET基于公共语言运行库,因此Web应用程序开发人员能够利用整个平台的威力和灵活性。Microsoft.NET框架类库、消息处理和数据访问解决方案都可从Web无缝访问。ASP.NET也与语言无关,因此能够选择最适合应用程序的语言,或跨多种语言分割应用程序。另外,公共语言运行库的交互性保证在迁移到ASP.NET时保留基于COM的开发中的现有投资。(3)简易性ASP.NET使执行常见任务变得容易,从简单的窗体提交和客户端身份验证到部署和站点配置。例如,ASP.NET页框架使您能够生成将应用程序逻辑与表示代码清楚分开的用户界面,和在类似VisualBasic的简单窗体处理模型中处理事件并不相同。另外,公共语言运行库利用托管代码服务(如自动引用计数和垃圾回收)简化了开发。(4)可管理性ASP.NET采用基于文本的分层配置系统,简化了将设置应用于服务器环境和Web应用程序。由于配置信息是以纯文本形式存储的,因此能够在没有本地管理工具帮助的情况下应用新设置。此”零本地管理”哲学也扩展到了ASP.NET框架应用程序的部署。只需将必要的文件复制到服务器,即可将ASP.NET框架应用程序部署到服务器。不需要重新启动服务器,即使是在部署或替换运行的编译代码时。(5)可缩放性和可用性ASP.NET在设计时考虑了可缩放性,增加了专门用于在聚集环境和多处理器环境中提高性能的功能。另外,进程受到ASP.NET运行库的密切监视和管理,以便当进程行为不正常(泄漏、死锁)时,可就地创立新进程,以帮助保持应用程序始终可用于处理请求。(6)自定义性和扩展性ASP.NET随附了一个设计周到的结构,它使开发人员能够在适当的级别”插入”代码。实际上,能够用自己编写的自定义组件扩展或替换ASP.NET运行库的任何子组件。(7)安全性借助内置的Windows身份验证和基于每个应用程序的配置,能够保证应用程序是安全的。3.4 ADO.NET对象模型中有五个主要的组件,分别是Connection对象、Command对象、DataAdapter、DataSet以及DataReader。这些组件中负责建立联机和数据操作的部分我们称为数据操作组件(ManagedProviders)分别由Connection对象、Command对象、DataAdapter对象以及DataReader对象所组成。数据操作组件最主要是当作DataSet对象以及数据源之间的桥梁,负责将数据源中的数据取出后植入DataSet对象中,以及将数据存回数据源的工作。图3-2ADO.NET对象模型Connection组件Connection对象主要是开启程序和数据库之间的连结。没有利用连结对象将数据库打开,是无法从数据库中取得数据的。这个物件在ADO.NET的最底层,我们能够自己产生这个对象,或是由其它的对象自动产生。Command组件Command对象主要能够用来对数据库发出一些指令,例如能够对数据库下达查询、新增、修改、删除数据等指令,以及呼叫存在数据库中的预存程序等。这个对象是架构在Connection对象上,也就是Command对象是透过连结到数据源的Connection对象来下命令的。因此Connection连结到哪个数据库,Command对象的命令就下到哪里。DataAdapter组件DataAdapter对象主要是在数据源以及DataSet之间执行数据传输的工作,它能够透过Command对象下达命令后,并将取得的数据放入DataSet对象中。这个对象是架构在Command对象上,并提供了许多配合DataSet使用的功能。DataSet组件DataSet这个对象能够视为一个暂存区(Cache),能够把从数据库中所查询到的数据保留起来,甚至能够将整个数据库显示出来。DataSet的能力不只是能够储存多个Table而已,还能够透过DataAdapter对象取得一些例如主键等的数据表结构,并能够记录数据表间的关联。DataSet对象能够说是ADO.NET中重量级的对象,这个对象架构在DataAdapter对象上,本身不具备和数据源沟通的能力,也就是说我们是将DataAdapter对象当做DataSet对象以及数据源间传输数据的桥梁。DataReader组件当我们只需要循序的读取数据而不需要其它操作时,能够使用DataReader对象。DataReader对象只是一次一笔向下循序的读取数据源中的数据,而且这些数据是只读的,并不允许作其它的操作。因为DataReade在读取数据的时候限制了每次只读取一笔,而且只能只读,因此使用起来不但节省资源而且效率很好。使用DataReader对象除了效率较好之外,因为不用把数据全部传回,故能够降低网络的负载。3.5数据库结构设计3.5本系统的E-R图如图3-3所示:用户实体:记录登陆该系统的用户的相关信息。产品实体:记录产品的相关信息。销售年份实体:记录销售年份的相关信息。客户实体:记录客户的相关信息。订单实体:记录订单的相关信息。历史订单实体:记录历史订单的相关信息退还货信息实体:记录退换货的相关信息图3-3系统的E-R图3.5数据库结构设计是整个系统中最重要的组成部分,用以实现用户的各种操作,以下分别进行介绍。北京东洋贸易有限公司产品销售管理系统数据库是由8张表组成。见表3-2表3-2所有表ID数据表名称数据表用途1用户表保存登陆该系统的所有用户的信息2销售年份表保存销售年份的销售信息3销售年表保存销售年信息4退换货表保存退换货信息5历史订单表保存历史订单信息6客户表保存客户信息7订单表保存订单信息8产品表保存所有产品的相关信息用户表结构、表3-3用户表字段类型长度说明用户名varchar20用户名密码varchar20密码用户类型varchar20用户类型真实姓名varchar20真实姓名电话varchar20电话地址varchar20地址销售年份表结构表3-4销售年份表字段类型长度说明年份nchar10年份月份int月份销售额float销售额销售利润float销售利润表3-5销售年表字段类型长度说明年份nchar10年份退换货表结构表3-6退换货表字段类型长度说明姓名nchar10姓名产品名称nchar10产品名称[退/换货]nchar10[退/换货]数量int数量提交时间datetimer接收时间是否处理bit是否处理历史订单表结构表3-7历史订单字段类型长度说明姓名nvarchar10姓名产品名称nvarchar20产品名称购买时间datetime购买时间购买数量int购买数量处理时间datetime处理时间客户表结构表3-8客户表字段类型长度说明客户编号nvarchar10客户编号姓名nvarchar10姓名性别nchar1性别年龄int年龄电话nvarchar20电话地址nvarchar20地址订单表结构表3-9订单表字段类型长度说明订单编号nchar10订单编号姓名nchar10姓名产品名称nchar10产品名称购买数量int购买数量下单时间nchar10下单时间是否处理bit是否处理产品表结构表3-10产品表字段类型长度说明产品编号nvarchar10产品编号产品名称nvarchar20产品名称产品产地nvarchar20产品产地产品型号nvarchar20产品型号产品介绍nvarcharMAX产品介绍添加日期datetime添加日期数量int数量4项目实现4.1公用模块及相关技术说明4.1.1图4-1母版页模块母版页是ASP.NET2.0的一项功能,其工作方式与WindowsSharePointServices3.0和OfficeSharePointServer在ASP.NET2.0中的工作方式相同。利用母版页,您能够创立单个网页模板并在应用程序中将该模板用作多个网页的基础,这样就无需从头创立所有新网页。为了在浏览器中呈现,母版页实际上要求两个独立的部件,即母版页自身和内容网页。母版页定义公用布局和导航栏,以及附加到该母版页的所有内容网页的默认公用内容。内容网页是一个特有的网页。在浏览器中呈现网页时,母版页提供公用内容,而内容网页则提供该网页所特有的内容。以下代码是母版页中的内容位置,将会被其它页面替代。<asp:ContentPlaceHolderID="ContentPlaceHolder1"runat="server"></asp:ContentPlaceHolder> 同时在母版页加入了一个ScriptManager,作为服务器端的控件,ScriptManager回应ASP.NET页面生命周期中的事件,利用这些事件协调ASP.NETAJAX使用的所有控件、选项和代码的活动。ScriptManager将关联某一特定事件,当事件发生时获得通知,并根据环境配置多个设置;此过程将经过ASP.NET页面的呈现循环多次重复进行。 <asp:ScriptManagerID="ScriptManager1"runat="server"></asp:ScriptManager>同时在母版页上设计了一个时间指示的文本标签,该Label能自动获取当前时间并进行显示,主要是由后台的代码实现,在这里说明一下Page_Load函数,这是一个后台由系统自动调用的函数,在页面读入或者回发的时候均会触发这个函数,执行里面的函数体,在这边对Label进行赋值,其内容由系统内置的类DateTime来自动获取当前时间,并由ToString按照M月d日H时m分的格式转换成字符串,完成显示。protectedvoidPage_Load(objectsender,EventArgse){Label1.Text=DateTime.Now.ToString("M月d日H时m分",DateTimeFormatInfo.InvariantInfo);}4.1.2在有表格呈现的地方采用GridView控件来实现,GridView控件显示表格的参数繁多,功能强大,以Cus_View.aspx来说明,首先放入一个GridView控件而且调整其外观参数,GridView的外观参数非常多,这里用到了间隔行不同的外观设定,即可得到如下图所示的间隔效果。图4-2GridView控件实现表格显示数据外观设定完毕后,对不同的列,根据数据库中的列名,依次进行设置,HeaderText设置该列第一行表头的文字,DataField设置数据库中的列名,绑定的时候将显示其在数据库中的数据部分。列又分为BoundField,CheckBoxField,HyperLinkField,ImageField,ButtonField,CommandField,TemplateField。本系统将使用其中的5种,BoundField是文字区域,普通数据则使用BoundField,如果当前列是能够点击的超链接,则使用HyperLinkField,HyperLinkField的设置里有导航地址,能够设置如”~/abc.aspx?id={0}”的格式,由{0}表示该行的值,这样的格式将使每一行导向不同的页面。单选框Field的Value设置由True或False控制,而最重要的CommandField则提供了删除,更新的操作,与其它控件相同,设置了OnRowDeleting和OnRowUpdating后在后台设置其执行函数。执行函数采用SQL语句,DELETE,UPDATE来操作数据库,具体实现能够从源代码中查看,关于GridView的数据绑定,同样也要用到SQL的Select语句,由实例化的BaseClass1中的ReadTable获取某个数据表内的数据,然后用DataBind方法来绑定数据。关于GridView的分页,采用了两种方法实现,其一是内部提供的方法,控件提供下面的页码索引和上一页、下一页等按钮,只需给响应事件的函数GridView1_PageIndexChanging添加改变页码和重新绑定的C#代码即可。另一种则用到了新的类PagedDataSource,由该类来为数据表分页,而且需要自己编写函数实现翻页功能,其优点是有更大的灵活性,能够自由安排翻页控制的显示方式,例如还能够显示总页数,当前页码等额外信息。由于很多情况下页面没有办法填充整个PageSize,而控件本身也不提供自动填充的功能。因此本系统使用了GridView1_DataBound响应函数,在其中计算该页欠缺的行数,然后进行填充,生成足够多的新行,而且给每行的所有单元格附上一个空格。4.1.3图4-3StyleSheet.css和web.configStyleSheet.css是外部链接样式表文件,在该文件内部定义好css样式后,链接该文件如下,即可使用id=”xxx”来引用StyleSheet.css中定义的样式。<linkhref="~/StyleSheet.css"rel="stylesheet"type="text/css"/>定义样式的格式,例子:#MainDiv{width:740px;margin-top:0px;margin-left:auto;margin-right:auto;}而web.config是一些网站的具体设置,其中大部分设置除了能够编辑该文件来实现外,还能够经过图形界面的设置来修改该文件,在这里需要将数据库的ConnectionString内容放在web.config里面,具体内容为:<connectionStrings><addname="ConnectionString"connectionString="DataSource=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\db.MDF;IntegratedSecurity=True;UserInstance=True"providerName="System.Data.SqlClient"/></connectionStrings>其中,DataSource=.\SQLEXPRESS表示这里使用的是SQLServerExpress,AttachDbFilename=|DataDirectory|\db.MDF表示数据库文件是本地目录下的APPDATA目录下的db.MDF,IntegratedSecurity=True;UserInstance=True是安全性设置以及是否新建用户例程的选项。4.1.4在App_CODE中新建一个.cs文件,该文件包含了一个命名空间GROUP.Base。在命名空间下设立基础的SQL调用函数类Class_Base,该类主要由以下几个函数构成,完成的功能包括,执行SQL语句,读写数据表DataTable,读写数据集DataSet,获得数据集DataSet,获得SQLDataReader,以及读取一行中的某个字段的值。其内容按照ADO.NET数据模型来设计,具体内容见下。//读写数据表publicDataTableReadTable(StringstrSql)//读写数据集publicDataSetReadDataSet(StringstrSql)publicDataSetGetDataSet(StringstrSql,StringtableName)publicSqlDataReaderreadrow(Stringsql)//读某一行中某个字段的值publicstringReadstr(StringstrSql,intflag)publicvoidExecsql(StringstrSql)ReadTable:该函数返回类型为DataTable,首先创立一个数据表dt,定义一个新的连接控件而且初始化,打开连接,定义初始化新的连接适配器而且用来填充数据到dt,关闭连接,返回这个dt。ReadDataSet:该函数返回类型为DataSet,首先创立一个数据集ds,定义一个新的连接控件而且初始化,打开连接,定义初始化新的连接适配器而且用来填充数据到ds,关闭连接,返回这个ds。GetDataSet:该函数返回类型为DataSet,首先创立一个数据集ds,定义一个新的连接控件而且初始化,打开连接,定义初始化新的连接适配器而且用来填充数据到ds,关闭连接,返回这个ds。同上一个函数相比多了一个参数,Readrow:该函数的返回类型为SqlDataReader,定义一个新的连接控件而且初始化,打开连接,定义初始化新的连接适配器,关闭连接,若Reader中有数据则返回。Readstr:该函数返回类型为string,首先创立一个数据集ds,定义一个新的连接控件而且初始化,打开连接,定义初始化新的连接适配器而且用来填充数据到ds,关闭连接,返回这个ds中的某个元素。Execsql:定义一个新的连接控件而且初始化,打开连接,执行SQL语句,关闭连接。4.1.5当用户验证成功时,进入管理页面,管理页面左侧是导航树,该树是由ASP.NET提供的控件TreeView构成。不同权限的页面,由完整和部分的树组成。TreeView控件的外观调整与其它ASP.NET控件类似,不再复述。而<Node>里的内容部分则以<asp:TreeNodeText="销售管理"Value="销售管理"></asp:TreeNode>来表示,其中Text是文字标签,Value是Node的值,用于区分不同Node,<asp:TreeNode>能够互相嵌套,以区分树根,树枝和树叶,形成一个完整的树的如图4-4所示图4-4管理导航树导航树的点击事件由switch(TreeView1.SelectedNode.Text)语句来完成,对每个不同的点击,判断其Value值,用改变this.iframe1.Attributes["Src"]到不同的页面。右侧是功能实现的主面板,即iframe1。Iframe相当于在浏览器内又设置了一个小型浏览器,在内部显示不同的网页和外部没有影响,而且浏览器地址栏也不会显示出iframe里页面的URL,对保护整个系统不被侵犯有很大作用。其默认值是一个欢迎页面。4.2功能实现4.2.1该功能主要由左边的IMG控件和右边的Login控件组成,左边的IMG控件使用较为简单,指定大小和图片的URL即可实现图片的显示:<asp:ImageID="Image2"runat="server"Height="248px"ImageUrl="~/Image/images.jpg"style="height:248px"Width="300px"/>而右边的登陆窗口,则需要进行复杂的设置:其中我们需要对外观进行设置,其中包括BackColor(背景颜色),BorderColor(边框颜色),BorderPadding(边框距离),BorderStyle(边框样式),BorderWidth(边框宽度),Font-Names(字体),Font-Size(字号),ForeColor(字体颜色),以及Height(高度),Width(宽度),这仅是外框的Style,内部TextBox的样式设置了文字大小和宽度,登陆按钮设置了背景颜色,边框颜色,边框样式,边框宽度,字体,字号,字体颜色等不再说明。进行完外观设置以后,在OnAuthenticate时间里面添加函数名Login1_Authenticate1,该按钮将触发后台定义的函数Login1_Authenticate1。我们对Login1_Authenticate1进行如下定义:stringstrsql="select*from用户where用户名='"+Login1.UserName.ToString()+"'and密码='"+Login1.Password.ToString()+"'";DataTabledt=newDataTable();dt=BaseClass1.ReadTable(strsql);Stringusertype=BaseClass1.Readstr(strsql,2);if(dt.Rows.Count>0){Session["admin"]=Login1.UserName.ToString();Session["type"]=usertype;if(usertype=="总经理")Response.Redirect("admin_default.aspx");if(usertype=="部门经理")Response.Redirect("mag_default.aspx");}当触发函数Login1_Authenticate1开始运行时,首先进行SQL查询,选择输入的用户名和密码匹配的行,保存到数据表dt,如果dt中的行大于0,即有匹配的行,则将用户名存入Session中的admin字段,将用户类型存入Session中的type字段,并进行用户类型的选择,分别导入两个不同页面,跳转页面采用的是Response类下的Redirect方法。经过在所有页面的Page_Load方法里面加入以下代码来验证是否是合法用户,只有合法用户的Session[”admin”]值才能经过验证,否则强行跳转至登陆页面。if(Session["admin"]==null||Convert.ToString(Session["type"])!="总经理"){Response.Redirect("Default.aspx");}图4-5登陆界面4.2.2查看客户信息:本部分由上面的查询模块和下面的数据表格模块组成,数据表格部分由4.1.2章节的GridView提供,查询功能的按钮事件代码如下:Response.Redirect("~/customer/cus_find.aspx?id="+TextBox1.Text);这里解释一下后面的?id=的部分,这是ASP.NET提供的QueryString传递参数的功能。QueryString集合是在ServerVariables集合中QUERY_STRING变量的分析版本。它能够让您以名称检索QUERY_STRING变量。Request.QueryString(参数)的值是出现在QUERY_STRING中所有参数的值的数组。经过调用Request.QueryString(parameter).Count能够确定参数有多少个值。如果变量未关联多个数据集,则计数为1。如果找不到变量,计数为0。经过QueryString将输入的查询字符串传递给cus_find.aspx。在这个页面中将传递过来的参数id放入SQL查询中,检查出符合条件的行用GridView进行显示。 同理,点击客户信息中姓名行将跳转至查看该客户的历史购买记录,同样利用了参数传递的QueryString。图4-6查看客户信息4.2.3使用GridView显示数据包括历史购买记录,退换货记录和客户订单信息。这个部分主要进行数据的呈现操作,实现方法即建立GridView绑定DataTable中的对应项,DataTable则由数据库查询得到。GridView提供了很多外观设定,例如能够另隔行颜色有差异,由此我们能够得到漂亮美观的表格。图4-7交易信息管理4.2.4产品信息管理查看产品信息本部分由上面的查询模块和下面的数据表格模块组成,数据表格部分由3.5章节的GridView提供,查询功能的按钮事件代码如下:Response.Redirect("~/customer/cus_find.aspx?id="+TextBox1.Text);这里解释一下后面的?id=的部分,这是ASP.NET提供的QueryString传递参数的功能。QueryString集合是在ServerVariables集合中QUERY_STRING变量的分析版本。它能够让您以名称检索QUERY_STRING变量。Request.QueryString(参数)的值是出现在QUERY_STRING中所有参数的值的数组。经过调用Request.QueryString(parameter).Count能够确定参数有多少个值。如果变量未关联多个数据集,则计数为1。如果找不到变量,计数为0。经过QueryString将输入的查询字符串进行传递。在这个页面中将传递过来的参数id放入SQL查询中,检查出符合条件的行用GridView进行显示。图4-8查看产品信息 产品信息管理原理同用户信息管理,不同点是增加了添加新产品的链接,能够进入如果编辑产品信息的页面,输入新产品信息数据后,由提交按钮触发Insert的SQL语句将新信息写回数据库,完成产品增添操作。 图4-9产品信息管理进、退货管当进入此页面时,只能进行输入产品编号提交的操作,进退货提交操作的按钮处于Disable的状态,呈现为灰色。当输入产品编号提交后,由Readrow读出一行信息,将信息各个部分填写入不同的文本框内,不能进行修改,而且使下面的进退货提交按钮处于Enable的状态,当输入进退货数量并提交后,后台首先计算出操作后的产品数量,然后Update回数据库。图4-10退货管理4.2.5库存管理库存统计/库存预警库存管理的统计部分是为用户提供一个简洁的库存表,能够方便查看各个产品的库存数量,实现方法同产品信息的查看,使用GridView来绑定数据,进行直观、直接的显示,在库存预警页面,由Select语句的限定条件<x能够查看数量小于x个的产品数量。 图4-11库存预警4.2.6销售信息管理订单管理同产品信息管理类似,编辑选项有CheckBox控件。图4-12订单管理 显示销售年份信息首先由DropList选择年份,DropList与GridView一样,与数据库的年份表进行绑定,选择年份之后,将年份信息作为QueryString,显示该年份的信息记录,信息记录使用GridView实现。加入打印报表的功能,实现方法:调用window.print,如下所示:<inputtype="button"onclick="window.print()"value="打印报表">图4-13显示销售年份信息修改销售年份信息 首先由DropList选择年份,DropList与GridView一样,与数据库的年份表进行绑定,选择年份之后,将年份信息作为QueryString,显示该年份的信息记录,信息记录使用GridView实现,加入了编辑功能,与跳转到编辑页面不同,该表编辑能够直接在表上进行,实现原理是运用GridView将需要编辑的行标记为编辑行,编辑后Update的工作与前述一致。 增添年份原理:首先在年份表增添该年份的信息(SQLINSERT),然后于销售表中创立12个月份,详细资料都为NULL,实现方法是进行12次循环SQL插入语句,完成后将页面跳转到该年份资料的修改画面,进行数据录入。图4-14修改销售年份信息查询统计首先由DropList选择年份,DropList与GridView一样,与数据库的年份表进行绑定,选择年份之后,将年份信息作为QueryString,显示该年份的信息记录,信息记录由SELECT选择后进行累加,最后输出(亦可使用SQL语句实现累加),表格图由Execl另外制作,文件名与年份一样存入upload_img目录中便能够实现自动显示。商品的库存情况显示基本与查看产品信息一致,包括搜索功能等。图4-15查询统计功能4.2.7数据维护主要涉及两个方面,数据库的备份功能和还原功能,由于必须对物理路径进行读写,首先必须保证IIS对App_Data有足够的权限进行操作,另外,我们需要获得服务器的App_Data的真实物理路径,Server.MapPath能够帮助我们做到这一点。备份还原的具体操作由SQlSERVER来执行,因此我们使用BACKUPDATABASEmyDataBaseTODISK……和RESTOREDATABASEmyDataBaseFROMDISK……来实现此功能。数据库能够在线备份,当需要还原的时候必须先将数据库离线(当前使用中文件无法覆盖),进行还原,后在将数据库设置成在线。AlterdatabasemyDataBaseSetOfflineWithRollbackimmediate;RESTOREDATABASEmyDataBaseFROMDISK='"+Server.MapPath("~/App_Data")+"\\"+TextBox2.Text+".ba
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 武汉学院《形体与舞蹈》2023-2024学年第二学期期末试卷
- 南京邮电大学通达学院《社会语言学入门》2023-2024学年第一学期期末试卷
- 吉林医药学院《理论力学B》2023-2024学年第一学期期末试卷
- 泰州学院《机械工程测试技术》2023-2024学年第二学期期末试卷
- 四川商务职业学院《小学科学课程与教学》2023-2024学年第二学期期末试卷
- 福建省泉州市永春一中2025年高三入学模拟-化学试题试卷含解析
- 绵阳师范学院《韩语视听说》2023-2024学年第二学期期末试卷
- 陕西工业职业技术学院《儿童歌曲演唱与指挥》2023-2024学年第二学期期末试卷
- 南通师范高等专科学校《现代软件开发技术》2023-2024学年第二学期期末试卷
- 项目管理岗位述职
- 售电知识培训
- (课件)-生物专业英语BIOLOGICALENGLISH
- 湖北省武汉市2024-2025学年度高三元月调考英语试题(含答案无听力音频有听力原文)
- 木僵状态病因介绍
- 励志班会:学习虽苦但请珍惜 课件
- 第二次世界大战后资本主义的变化及其实质
- 铁路钢轨探伤合同(2篇)
- 广州市海珠区六中鹭翔杯物理体验卷
- 国家职业技术技能标准 6-28-01-14 变配电运行值班员 人社厅发2019101号
- 肿瘤患者的康复与护理
- 电机学完整全套教学课件2
评论
0/150
提交评论