产品销售管理系统的设计及其实现_第1页
产品销售管理系统的设计及其实现_第2页
产品销售管理系统的设计及其实现_第3页
产品销售管理系统的设计及其实现_第4页
产品销售管理系统的设计及其实现_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

引 言随着现代科学技术的迅猛发展,计算机技术已经渗透到各个领域,成为各行业必不可少的工具,特别是Internet技术的推广和信息高速公路的建立,使IT产业在市场竞争中越来越显示出其独特的优势,步入数字时代。 而面对市场各企业的管理,高效的处理企业中管理问题在适应市场的发展中突显出尤为重要的作用。产品的销售管理在现代企业经营管理中占据着重要的地位,一个企业产品销售管理的水平几乎决定着企业的经济命脉。企业的所有功能、信息、组织管理方面都是一个集成整体的各个部分。管理信息系统(MIS)是企业CIMS工程中的一个分支,产品销售管理系统是企业MIS建设中重要的组成部分。计算机集成制造系统(CIMS : Computer Integrated Manufacturing System)是在自动化技术、信息技术及制造技术的基础上,通过计算机及其软件,把企业全部生产活动所需的各种分散的自动化系统有机的集成起来,是适合于多品种、中小批量生产的总体高效益系统。MIS(管理信息系统)是CIMS中很重要的一个部分,是企业信息化的直接体现。管理信息系统(MIS)的概念起成熟于20世纪70年代。管理信息系统(MIS)就是借助以计算机、互联网等先进技术为代表的信息手段,将企业的经营及管理流程在线实现,并使企业管理层真正可以在线获得完整而明晰的“信息”,信息化是一项长期的事业,无论是跨国企业,还是国内的企业,都是在过去几十年中的不同时间、不同切入点开始信息化建设的。我们可以想象,在企业中,使用人工的方式管理各项产品销售信息不仅效率低下,而且容易出错,安全性也很差。并且在实际的操中数据的查找以及客户信息的保管等都不容易实现。这些不仅将导致管理费用的增加,服务质量也难以得到保证,从而影响企业的竞争力。本次毕业设计将完成北京东洋贸易有限公司产品销售管理系统,本系统的研究目的在于:实现该公司产品信息、销售信息管理及信息检索;实现客户信息管理,从而提高公司的工作效率和质量。本文将在后面对本系统各个功能模块一一加以详细阐述。1.项目概述1.1项目背景经过20多年的时间,我国企业的信息化建设工作取得了长足进展,但由于对企业信息化建设的途径缺乏系统而科学的认识,以往许多企业的信息化建设工作走了不少弯路,出现了一些误区,其中表现最为明显的倾向是不顾本单位信息化建设的现实条件,盲目地追求业务处理的自动化、决策自动化等更高层次的信息化建设,而忽视了企业信息库的构建这一信息化建设的第一步基础性工作。这种倾向又有许多不同的形式,在产品销售管理方面具体表现为:(1) 不重实施,急于求成有的人认为将产品销售管理软件买来即可,对实施的重要性理解不够,有的甚至说只要提供说明书即可,还有的急于求成,要求在短时间内见到成效,这些做法是不切实际的。(2) 企业与产品销售管理软件提供商配合不够企业在实施过程中配合不够,认为买产品销售管理软件出了钱,其它的事情都是软件公司的,企业被动地等着使用。应该说企业通过反复考查和选型,一旦选定了软件,企业应该与产品销售管理软件提供商建立一种长期合作的关系,更准确地说应是建立合作伙伴关系,二者应密切配合,以使所购的产品销售管理软件在企业能充分用好,为企业解决实际问题,带来直接的经济效益。(3) 企业的标准太老或没有标准企业现有的标准太老,不太适合计算机处理。随着制造业信息化的发展,标准化落后于新技术的发展,满足不了企业需求的矛盾逐步显现。这些新技术很快就被利用为企业信息化管理平台,以及新的企业与客户、企业与企业、个人之间的沟通渠道。最为重要的是无沦信息来自哪项技术、哪个渠道,它都去更改同一个数据库,而保证了不同渠道看到的信息是同步的。这包括客户、供应链和其他各种企业信息。(4) 企业的需求超前企业提出一些超前或不切实际的功能要求,而产品销售管理软件暂时不能满足。有的企业认为越先进的功能越好,在选型过程中一味追求先进,而没有考虑是否实用、是否可靠、是否有局限性等等问题。(5) 企业推行的力度不够有人说:企业信息化的决心和态度,问题不在技术,关键在于企业领导人对信息化的参与和掌控。企业信息化实际上并不只是钱的问题,还涉及到企业的管理和运作是否能够配合改变。其实企业实施信息化不仅要求产品销售管理软件提供商有丰富的经验和完善的产品,而且需要企业产品销售管理者参与到整个产品销售管理系统的设计和实施中去,否则管理思想就不能与产品销售管理软件技术相结合,从而功亏一篑,所以,企业信息化应该是“一把手”工程,企业决策者一定要坚定信心,贯彻到底,支持到底,这才是企业信息化成功的法宝。在企业信息化建设过程中涉及的各方面如产品销售管理系统的应用上与整个企业信息化的发展是同步前进的。1.2项目开发意义本课题的工作就是在企业CIMS和MIS建设中开发的一个产品销售信息管理软件-北京东洋贸易有限公司产品销售管理系统。北京东洋贸易有限公司产品销售管理系统是基于ASP.NET和SQL Server 数据库开发的应用系统。使用ASP.NET技术可以动态生成管理页面,可以使产品的销售和管理变得很轻松。管理员登陆后只需添加或修改相应产品信息元素就可以了,系统将自动生成对应的信息。而使用SQL Server 数据库将减轻维护人员的工作量,使系统便于维护和管理。本系统的研究目的在于:实现该公司产品信息、销售信息管理及信息检索;实现客户信息管理,从而提高公司的工作效率和质量。1.3 软硬件需求本系统的软硬件需求如下:(1) 在Windows平台上运行(2) 后台数据库:SQL Server 2008 Express(3) 运行环境:Internet Explorer 、IIS 7.5(4) 个人计算机,AMD CPU,内存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 系统开发平台开发工具Microsoft Visual Studio 2008 Express使用语言C#.NET数据库SQL Server 2008 Express开发模式B/S开发环境Microsoft Visual Studio 2008 Express、SQL Server 2008 Express、Internet Explorer 、IIS 7.5根据销售管理系统的特性,从程序入口(登陆窗口)开始,以各个部门将项目分块进行设计,做到分类清楚,一目了然,在系统界面,以及物理文件的路径结构上都进行分类规划,有利于日后进行内容的更新和扩充。由分块的性质,采用适宜的树状结构划分整个系统,依照系统的需求将系统分为:用户登陆,客户信息管理,产品信息管理,销售信息管理,库存信息管理,用户信息管理,保密信息管理(修改密码)几大类。并在各类下按照需求进行小类的划分。用户信息管理模块包括登陆验证,用户类别检查两个功能模块。客户信息管理模块下包括客户信息查询查看,客户交易信息管理,客户信息的增删改管理。产品信息管理包括产品信息查询查看,产品信息的增删改管理,进货入库管理,退货出库管理。销售信息管理模块包括订单管理,显示销售年份信息,修改销售年份信息,查询统计功能。库存管理包括库存统计和库存预警模块,保密信息管理包括修改当前用户的密码。用户管理包括用户查询查看,用户的增删改。以及系统的各种功能,例如退出系统。3.3系统架构设计-B/S模式 随着网络规模的日益扩大,应用程序的复杂程度不断提高,传统的数据库应用架构已经不能胜任。为了充分利用网络资源,越来越多的信息需要在 www(WoridWideWeb)上发布,实现信息最大程度的共享。Browser/Serve结构伴随着Intemet的发展而很快地发展起来。Browser/Serve体系结构是一种三层结构,其三级结构组成如图1-2所示:图3-1 B/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.1Microsoft SQL Server 2008 选择Microsoft SQL Server 2008开发工具是由于其本身的巨大优势,具体如下:(1).性能和可伸缩性 行业标准测试结果表明,SQL Server 可以承受世界上最强的负载。诸如Unilever, Citi, Barclays Capital, 以及Mediterranean Shipping 这些使用SQL Server 支持最关键应用程序的客户以及运行SQL Server 2008 的客户都体验到了可伸缩性的增强。最终,诸如Siemens 以及RedPrairie 这样的大型ISV 厂商也历史性的从推广Oracle 转变为推广SQL Server. (2).更加安全(漏洞更少)National Vulnerability Database (NIST) 报告显示了在过去四年时间里,Oracle 的数据库产品中有超过250 个致命的安全漏洞。而同一时期SQL Server 却一个漏洞都没有。微软所取得的成功来自于可靠性计算项目中的安全引擎进程,全方位的安全特性, 以及强大的更新系统,它们都可以降低安全风险并减少客户由于打补丁所造成的停机时间。专家表示在补丁管理方面的技术,Oracle 比微软要落后五年,并且只有三分之一的Oracle 数据库管理员会进行打补丁的操作。 (3).开发效率 SQL Server 可以同Visual Studio 团队协同工作,提供集成化的开发体验,并让开发人员在统一的环境中跨越客户端、中间层以及数据层进行开发。SQL Server 2008 在新的开发功能方面领先了一步。而反观Oracle 通过附加的方式提供较为混乱的工具集和SDK, 使得开发人员需要不断学习并跨越多个接口进行工作。事实上,IDC 的报告表明,微软在提供应用程序平台的厂商中排名首位。 (4).商业智能(BI) SQL Server 作为微软集成化BI 平台的组成部分,可以提供数据仓库、分析报表、绩效考核以及规划预算等功能。在Gartner的Magic Quadrant for BI 报告和Magic Quadrant for Data Warehousing 报告中,SQL Server 都处于领先地位。SQL Server 2008在数据仓库和商务智能方面都有很多创新功能。 (5).与Office 的集成 SQL Server 通过与大家所熟知的Microsoft Office 用户界面紧密集成(例如Data Mining 结合 Excel 这样的免费管理单元),可以帮助客户实现更好的商业洞察力并快速做出商业决策。正因如此, IDC 认为微软是发展速度最快的BI 厂商。 (6).总体拥有成本(TCO) 和Oracle相比,SQL Server 最强的优势在于能够以很低的TCO 来提供上述好处。其主要原因是:1)业界领先的自我调优及自动管理功能可以降低人力成本。2)高效、集成的环境可以加快解决方案制定的时间从而快速实现商业洞察力。3)与Oracle 有所不同,SQL Server 并不需要额外付费就可以使用很多重要的功能,例如压缩、加密以及获取产品更新和安全补丁。所以本系统采用Microsoft SQL Server 2008作为后台数据库的开发工具。3.4.2 ASP.NET ASP.NET是一种建立在通用语言上的程序构架。一个已编译的、基于.NET的环境,把基于通用语言的程序在服务器上运行。将程序在服务器端首次运行时进行编译,比ASP即时解释程序速度上要快很多。微软公司发布了包括Visual Basic.NET、C#.NET、Visual C+.NET等与.NET兼容的语言来创作应用程序。ASP.NET是在服务器上运行的编译好的公共语言运行库代码,它可利用早期绑定、实时编译、本机优化和盒外缓存服务。这相当于在编写代码行之前便显著提高了性能。(1)世界级的工具支持ASP.NET框架补充了Visual Studio集成开发环境中的大量工具箱和设计器。编辑、拖放服务器控件和自动部署只是这个强大的工具所提供功能中的少数几种。(2)灵活性由于ASP.NET基于公共语言运行库,因此Web应用程序开发人员可以利用整个平台的威力和灵活性。Microsoft.NET框架类库、消息处理和数据访问解决方案都可从Web无缝访问。ASP.NET也与语言无关,所以可以选择最适合应用程序的语言,或跨多种语言分割应用程序。另外,公共语言运行库的交互性保证在迁移到ASP.NET时保留基于COM的开发中的现有投资。(3)简易性ASP.NET使执行常见任务变得容易,从简单的窗体提交和客户端身份验证到部署和站点配置。例如,ASP.NET页框架使您可以生成将应用程序逻辑与表示代码清楚分开的用户界面,和在类似Visual Basic的简单窗体处理模型中处理事件并不相同。另外,公共语言运行库利用托管代码服务(如自动引用计数和垃圾回收)简化了开发。(4)可管理性ASP.NET采用基于文本的分层配置系统,简化了将设置应用于服务器环境和Web应用程序。由于配置信息是以纯文本形式存储的,因此可以在没有本地管理工具帮助的情况下应用新设置。此“零本地管理”哲学也扩展到了ASP.NET框架应用程序的部署。只需将必要的文件复制到服务器,即可将ASP.NET框架应用程序部署到服务器。不需要重新启动服务器,即使是在部署或替换运行的编译代码时。(5)可缩放性和可用性ASP.NET在设计时考虑了可缩放性,增加了专门用于在聚集环境和多处理器环境中提高性能的功能。另外,进程受到ASP.NET运行库的密切监视和管理,以便当进程行为不正常(泄漏、死锁)时,可就地创建新进程,以帮助保持应用程序始终可用于处理请求。(6)自定义性和扩展性ASP.NET随附了一个设计周到的结构,它使开发人员可以在适当的级别“插入”代码。实际上,可以用自己编写的自定义组件扩展或替换ASP.NET运行库的任何子组件。(7)安全性借助内置的Windows身份验证和基于每个应用程序的配置,可以保证应用程序是安全的。3.4.3ADO.NET对象模型ADO.NET对象模型中有五个主要的组件,分别是Connection对象、Command对象、DataAdapter、DataSet以及DataReader。这些组件中负责建立联机和数据操作的部分我们称为数据操作组件(Managed Providers)分别由Connection对象、Command对象、DataAdapter对象以及DataReader对象所组成。数据操作组件最主要是当作DataSet对象以及数据源之间的桥梁,负责将数据源中的数据取出后植入DataSet对象中,以及将数据存回数据源的工作。图3-2 ADO.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.1E-R图本系统的E-R图如图3-3所示:用户实体:记录登陆该系统的用户的相关信息。产品实体:记录产品的相关信息。销售年份实体:记录销售年份的相关信息。客户实体:记录客户的相关信息。订单实体:记录订单的相关信息。历史订单实体:记录历史订单的相关信息退还货信息实体:记录退换货的相关信息图3-3 系统的E-R图3.5.2数据库结构设计数据库结构设计是整个系统中最重要的组成部分,用以实现用户的各种操作,以下分别进行介绍。北京东洋贸易有限公司产品销售管理系统数据库是由8张表组成。见表3-2表3-2 所有表ID数据表名称数据表用途1用户表保存登陆该系统的所有用户的信息2销售年份表保存销售年份的销售信息3销售年表保存销售年信息4退换货表保存退换货信息5历史订单表保存历史订单信息6客户表保存客户信息7订单表保存订单信息8产品表保存所有产品的相关信息1) 用户表结构、表3-3 用户表字段类型长度说明用户名varchar20用户名密码varchar20密码用户类型varchar20用户类型真实姓名varchar20真实姓名电话varchar20电话地址varchar20地址2) 销售年份表结构表3-4 销售年份表字段类型长度说明年份nchar10年份月份int月份销售额float销售额销售利润float销售利润表3-5 销售年表字段类型长度说明年份nchar10年份3) 退换货表结构表3-6 退换货表字段类型长度说明姓名nchar10姓名产品名称nchar10产品名称退/换货nchar10退/换货数量int数量提交时间datetimer接收时间是否处理bit是否处理4) 历史订单表结构表3-7 历史订单字段类型长度说明姓名nvarchar10姓名产品名称nvarchar20产品名称购买时间datetime购买时间购买数量int购买数量处理时间datetime处理时间5) 客户表结构表3-8客户表字段类型长度说明客户编号nvarchar10客户编号姓名nvarchar10姓名性别nchar1性别年龄int年龄电话nvarchar20电话地址nvarchar20地址6) 订单表结构表3-9 订单表字段类型长度说明订单编号nchar10订单编号姓名nchar10姓名产品名称nchar10产品名称购买数量int购买数量下单时间nchar10下单时间是否处理bit是否处理7) 产品表结构表3-10 产品表字段类型长度说明产品编号nvarchar10产品编号产品名称nvarchar20产品名称产品产地nvarchar20产品产地产品型号nvarchar20产品型号产品介绍nvarcharMAX产品介绍添加日期datetime添加日期数量int数量4 项目实现4.1 公用模块及相关技术说明4.1.1 母版页模块 图4-1 母版页模块母版页是 ASP.NET 2.0 的一项功能,其工作方式与 Windows SharePoint Services 3.0 和 Office SharePoint Server 2007 在 ASP.NET 2.0 中的工作方式相同。利用母版页,您可以创建单个网页模板并在应用程序中将该模板用作多个网页的基础,这样就无需从头创建所有新网页。为了在浏览器中呈现,母版页实际上要求两个独立的部件,即母版页自身和内容网页。母版页定义公用布局和导航栏,以及附加到该母版页的所有内容网页的默认公用内容。内容网页是一个特有的网页。在浏览器中呈现网页时,母版页提供公用内容,而内容网页则提供该网页所特有的内容。以下代码是母版页中的内容位置,将会被其他页面替代。 同时在母版页加入了一个ScriptManager,作为服务器端的控件,ScriptManager 回应 ASP.NET 页面生命周期中的事件,利用这些事件协调 ASP.NET AJAX 使用的所有控件、选项和代码的活动。ScriptManager 将关联某一特定事件,当事件发生时获得通知,并根据环境配置多个设置;此过程将通过 ASP.NET 页面的呈现循环多次重复进行。同时在母版页上设计了一个时间指示的文本标签,该Label能自动获取当前时间并进行显示,主要是由后台的代码实现,在这里说明一下Page_Load函数,这是一个后台由系统自动调用的函数,在页面读入或者回发的时候均会触发这个函数,执行里面的函数体,在这边对Label进行赋值,其内容由系统内置的类DateTime来自动获取当前时间,并由ToString按照M月d日 H时m分的格式转换成字符串,完成显示。protected void Page_Load(object sender, EventArgs e) Label1.Text = DateTime.Now.ToString( M月d日 H时m分, DateTimeFormatInfo.InvariantInfo); 4.1.2 GridView在有表格呈现的地方采用GridView控件来实现,GridView控件显示表格的参数繁多,功能强大,以Cus_View.aspx来说明,首先放入一个GridView控件并且调整其外观参数,GridView的外观参数非常多,这里用到了间隔行不同的外观设定,即可得到如下图所示的间隔效果。图4-2 GridView控件实现表格显示数据外观设定完毕后,对不同的列,根据数据库中的列名,依次进行设置,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 StyleSheet.css和web.config图4-3 StyleSheet.css和web.configStyleSheet.css是外部链接样式表文件,在该文件内部定义好css样式后,链接该文件如下,即可使用 id=”xxx” 来引用StyleSheet.css中定义的样式。 定义样式的格式,例子:#MainDiv width: 740px; margin-top: 0px; margin-left:auto; margin-right:auto;而web.config是一些网站的具体设置,其中大部分设置除了可以编辑该文件来实现外,还可以通过图形界面的设置来修改该文件,在这里需要将数据库的ConnectionString内容放在web.config里面,具体内容为: 其中,Data Source=.SQLEXPRESS表示这里使用的是SQL Server Express,AttachDbFilename=|DataDirectory|db.MDF表示数据库文件是本地目录下的APPDATA目录下的db.MDF, Integrated Security=True;User Instance=True是安全性设置以及是否新建用户例程的选项。4.1.4 基础函数类Class_Base在App_CODE中新建一个.cs文件,该文件包含了一个命名空间GROUP.Base。在命名空间下设立基础的SQL调用函数类Class_Base,该类主要由以下几个函数构成,完成的功能包括,执行SQL语句,读写数据表DataTable,读写数据集DataSet,获得数据集DataSet,获得SQLDataReader,以及读取一行中的某个字段的值。其内容按照ADO.NET数据模型来设计,具体内容见下。/读写数据表public DataTable ReadTable(String strSql)/读写数据集public DataSet ReadDataSet(String strSql)public DataSet GetDataSet(String strSql, String tableName)public SqlDataReader readrow(String sql)/读某一行中某个字段的值public string Readstr(String strSql, int flag)public void Execsql(String strSql)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控件类似,不再复述。而里的内容部分则以 来表示,其中Text是文字标签,Value是Node的值,用于区分不同Node,可以互相嵌套,以区分树根,树枝和树叶,形成一个完整的树的如图4-4所示图4-4 管理导航树 导航树的点击事件由switch (TreeView1.SelectedNode.Text) 语句来完成,对每个不同的点击,判断其Value值,用改变this.iframe1.AttributesSrc到不同的页面。右侧是功能实现的主面板,即iframe1。Iframe相当于在浏览器内又设置了一个小型浏览器,在内部显示不同的网页和外部没有影响,而且浏览器地址栏也不会显示出iframe里页面的URL,对保护整个系统不被侵犯有很大作用。其默认值是一个欢迎页面。4.2功能实现4.2.1 登陆管理 该功能主要由左边的IMG控件和右边的Login控件组成,左边的IMG控件使用较为简单,指定大小和图片的URL即可实现图片的显示:而右边的登陆窗口,则需要进行复杂的设置: 其中我们需要对外观进行设置,其中包括BackColor(背景颜色),BorderColor(边框颜色),BorderPadding(边框距离),BorderStyle(边框样式),BorderWidth(边框宽度),Font-Names(字体),Font-Size(字号),ForeColor(字体颜色),以及Height(高度),Width(宽度),这仅是外框的Style,内部TextBox的样式设置了文字大小和宽度,登陆按钮设置了背景颜色,边框颜色,边框样式,边框宽度,字体,字号,字体颜色等不再说明。进行完外观设置以后,在OnAuthenticate时间里面添加函数名Login1_Authenticate1,该按钮将触发后台定义的函数Login1_Authenticate1。我们对Login1_Authenticate1进行如下定义: string

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论