• 1.45 MB
  • 2022-05-16 18:34:55 发布

汽车维修仓库管理信息系统的设计与实现毕业论文(设计)

  • 59页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
本科毕业论文(设计)题目:汽车维修仓库管理信息系统的设计与实现 目录摘要1Abstract2前言3第一章绪论41.1中小型ERP系统41.2由传统的构架到B/S架构61.3系统开发的背景及意义81.3.1汽车维修仓库管理系统开发背景81.3.2使用ERP系统管理的意义8第二章仓库管理系统开发平台102.1.NETFramework技术架构102.2安装与配置.NET运行环境112.3ASP.NET技术112.4SQLSERVER数据库13第三章系统的分析与总体设计153.1系统分析153.1.1系统开发设计思想153.1.2汽车维修仓库管理信息系统的需求分析153.1.3系统功能分析163.2系统设计183.2.1系统流程设计183.2.2系统功能模块设计183.3数据库分析203.3.1系统E-R图203.3.2表/字段设计233.4数据库设计263.4.1创建数据库263.4.2创建表26 3.4.3创建存储过程273.4.4连接数据库/数据库具体配置28第四章主要功能模块设计294.1仓库管理系统首页的设计294.2货物信息维护模块的设计294.3货物信息添加模块的设计304.4货物信息修改模块的设计314.5仓库存放规则维护模块的设计314.6仓库存放规则添加模块的设计324.7货物进出维护模块的设计334.8仓库货物需求列表模块的设计344.9配件库存查询模块的设计34第五章系统测试355.1单元测试355.2功能测试35第六章结论37注释38参考文献39附录40后记47 摘要汽车维修仓库管理信息系统(以下简称为仓库管理系统或WMS),可以高效地用于汽车零配件的管理,是企业信息化管理的重要组成部分。本系统为汽车服务行业的中小企业仓库管理提供了一套行之有效的解决方案,系统设计和实现是对现代仓库管理的一次实践探索,可以为目前热门的中小型ERP系统的开发提供一定的借鉴作用。本论文主要介绍了课题的开发背景、技术手段及系统的设计和实现过程,重点对系统开发中的关键问题、技术难点和解决方案做了详细的论述。本系统采用了当前流行的ASP.NET技术,脚本语言为C#,数据库使用的则是MSSQLSERVER。系统被组织成为八个功能模块,包括员工管理、仓库管理、货物管理、存储规则管理、货物进出控制、配件库存查询、仓库需求生成和货物进出记录模块。员工管理模块负责管理所有参与仓库管理运作的员工信息;仓库管理模块负责管理所有子仓库的信息;仓库货物管理模块负责管理所有存放于仓库中的货物详细信息;存储规则模块负责管理仓库货物的容量信息;货物进出控制模块对进仓,出仓的货物进行登记管理;仓库需求生成模块根据目前仓库存储情况,赋予每一个订单一个量化的紧急程度值,供采购部门安排采购时确定采购顺序;货物进出记录模块提供货物进出记录的查询功能。配件库存查询模块提供对货物的库存量查询的功能;关键词:汽车维修仓库;管理信息系统;ASP.NET;MSSQLSERVER AbstractTheAutomobileServicedWarehouseManagementInformationSystem(hereafterreferstoWarehouseManagementSystemorWMS)hasprovidedaeffectivesolutionsfortheservicingofautomobilemanagement.Itistheimportantpartoftheenterpriseinformationmanagement.Thissystemsuppliedaimpactfulsolutionformiddleandmallautomobileserviceenterprises,andit’sdesignisalsoapracticeformodernmanagementofservicedwarehouse.TheprojectputforwardacertainmodelforthepresentpopularmiddleandsmallERPsystem.Thepapermainlyintroducedtheproject’sdevelopmentbackgroundandtechniqueaswellasthedesignandimplementofthesystem,includingkeyquestions,thetechnicaldifficultiesandthesolution.ThesystemusedthepopulartechniqueswhichconsistofASP.NET,C#,MSSQLSERVERetc.Thesystemisorganizedintoeightfunctionmodules:thestaffmanagement,thewarehousemanagement,thewarehousegoodsmanagement,thestoragerulemanagement,theturnovercontrolofgoods,accessoriesstocksearch,warehousedemandvalueandgoodsturnoverrecordmodule.Thestaffmanagementmoduleisresponsibleforallthestaffinformationparticipatedintheoperationofthewarehouse.Thewarehousemanagementmoduleisresponsibleforallthesub-warehouses’information.Thewarehousegoodsmanagementmoduleisresponsibleformanagealldetailedinformationofwarehousegoods.Thestoragerulemanagementisresponsibleforthecapabilityinformationofwarehousegoods.Thegoodsturnovercontrolmoduleisresponsibleforthein-and-outrecordsmanagement.Thewarehousedemandvaluemodulebasedonthepresentwarehousestoragesituationgiveeveryorderaurgentquantificationaldegreevalue,accordingtowhichthepurchasedepartmentdeterminethetradingorders.Thegoodsturnoverrecordmoduleprovidesthefunctionofrecordinquiry.Theaccessoriesstocksearchmoleprovidetothesearchfunctionofthegoods’stockquantity.Keywords:AutomobileServicedWarehouse;ManagementInformationSystem;ASP.NET;MSSQLSERVER 前言21世纪,信息化的发展使得我们的生活更加丰富多彩,无论是工业,农业或者服务业,企业的信息化程度往往成为新时代竞争中成败的关键。本课题关注将可能成为国家另一支柱产业的汽车行业。形容汽车行业的发展为“井喷”并不为过,随着国民收入的大幅度提升,汽车将从高高的神台走入寻常百姓家。如何利用计算机技术对汽车维修企业进行高效的管理,为国内各类企业所关注。在本课题研究过程中,我们走访了北京现代汽车制造有限公司在哈尔滨的维修机构,获取到了很多有价值的信息;本课题充分研究了北京现代汽车DMS系统及深圳金迪汽车管理系统,并借鉴了其中的一些设计思想。论文研究的主要内容:1.中小规模汽车维修仓库管理信息系统需求分析。2.系统总体设计、功能模块设计与分析。3.数据库系统设计与分析、配置、创建。4.实现员工管理、仓库管理、货物管理、存储规则管理功能。5.实现货物进出控制、记录、统计等功能。6.实现配件库存查询功能。7.研究探讨仓库需求生成的方法和途径。系统采用模块化程序设计方法,设计过程中充分考虑了实际仓库管理的规定,满足仓库相关人员日常管理使用的需要,并力求达到操作过程方便、实用、安全等要求。采用合理的软硬件环境及先进的系统开发方案,从而达到充分利用现有资源,提高系统开发水平,是系统开发过程中一直要权衡的问题。仓库管理信息系统在各类型企业中具有很高的应用价值,可以高效提高公司物流管理水平,是企业信息化管理的重要组成部分。这类系统的应用研究具有很高的通用性,对各类中小型ERP系统的开发具有借鉴作用。ERP作为一个有效的企业资源管理平台,对企业进行全面一体化的管理往往会起到很大的作用。另外,为了巩固和加强企业的市场竞争力,使企业效益锦上添花,这些企业必然要接受先进的ERP管理思想,实施ERP软件系统。从经济全球化的角度看,ERP对我国企业的科学管理、体系化管理、信息化管理的影响也将是深远的。 第一章绪论1.1中小型ERP系统1.1.1ERP的提出随着计算机网络技术的迅猛发展,统一的国际市场已经形成。针对国际化的销售和采购市场以及全球的供需链环境,企业MRPⅡ面临着需求的挑战。由于MRPⅡ(ManufactureResourcePlanning,制造资源计划)系统仅仅包括制造资源,而不包括面向供需链管理的概念,因此,无法满足企业对资源全面管理的要求。在这种环境下,MRPⅡ逐渐发展成为新一代的企业资源计划ERP(EnterpriseResourcePlanning)。ERP是指建立在信息技术基础上,以系统化的管理思想,为企业决策层及员工提供决策运行手段的管理平台。ERP系统集中信息技术与先进的管理思想于一身,成为现代企业的运行模式,反映时代对企业合理调配资源,最大化地创造社会财富的要求,成为企业在信息时代生存和发展的基石。1.1.2ERP的核心思想ERP的核心管理思想是供需链管理。企业为了保持和扩大市场份额,先要有相对稳定的销售渠道和客户,为了保证产品的质量和技术含量,必须有相对稳定的原材料和配套件以及协作件的供应商。企业同其销售代理、客户和供应商的关系,已不再是简单的业务往来对象,而是利益共享的合作伙伴关系,这是现代管理观念的重大转变。这种合作伙伴关系组成了一个企业的供需链,是“精益生(LeanProduction)”的核心思想。当遇到有特定的市场和产品需求时,企业的基本合作伙伴不一定能满足这类新产品开发生产的要求,这时,企业会组织一个由特定的供应和销售渠道组成的短期或一次性的供需链,形成“动态联盟”(或称“虚拟工厂”),把供应和协作单位(包括产品研究开发)看成是企业的一个组成部分,运用“同步工程”,用最短的时间将新产品打入市场,这是“敏捷制造(AgileManufacturing)”的核心思想[1]。当前,企业之间的竞争已不再是一个企业对一个企业的竞争,而是已经发展成为一个企业的供需链与竞争对手的供需链之间的竞争。ERP 系统正是适应这种竞争形势的需求发展起来的。在供需链上除了人们已经熟悉的“物流”“资金流”“信息流”外,还有容易为人们所忽略的“增值流”和“工作流”。就是说,供需链上有5种基本“流”在流动。各种物料在供需链上移动,是一个不断增加其技术含量或附加值的增值过程,在此过程中,还要注意消除一切无效劳动与浪费。因此,供需链有增值链(ValueAddedChain)的含义。不言而喻,只有当产品能够售出,增值才有意义。企业单靠成本、生产率或生产规模的优势打价格战是不够的,要靠物料价值的优势开展创新战,这才是企业竞争的真正出路,而ERP系统要提供企业分析物料增值过程的功能。信息、物料、资金都不会自己流动,物料的价值也不会自动增值,要靠人的劳动来实现,要靠企业的业务活动──工作流(WorkFlow)或业务流程(BusinessProcess),它们才能流动起来。工作流是决定各种流的流速和流量的,是企业业务流程重组(BPR)研究的对象。ERP系统提供各种行业的行之有效的业务流程,而且可以按照竞争形势的发展,随着企业工作流(业务流程)的改革在应用程序的操作上做出相应的调整。总之,ERP所包含的管理思想是非常广泛和深刻的,这些先进的管理思想之所以能够实现,又同信息技术的发展和应用分不开。1.1.3中小型ERP发展趋势ERP这一概念是GartnerGroup在九十年代初,总结了当时企业应用系统现状后提出的。在ERP诞生的这十多年里,全球经济的起伏变化对企业的经营运作产生了巨大的影响,同时信息技术的迅猛发展为ERP提供了强有力的技术基础,这一切都为ERP提供了巨大的发展空间。综观全球ERP现状及各供应厂商的追求目标,其中小型发展趋势呈现如下三大特点:1.扩展性中小型ERP系统的管理范围更广阔,功能更深入。2.技术先进性中小型ERP系统的技术融合IT领域的最新成果而日趋先进,网络化势不可挡。  3.灵活性中小型ERP系统应具备足够的灵活性,以适应在实施中及实施后业务环境的不断变化。 ERP的核心是MRPⅡ,而MRPⅡ的核心是MRP。很多企业存在着供应链影响企业管理柔性的情况。ERP的一个重要目标就是在MRP的基础上建立敏捷后勤管理系统(AgileLogistics),以解决制约管理过程中的瓶颈供应柔性差,缩短查询准备的周期;增加与外部协作单位技术和生产信息的及时交互;改进现场管理方法,缩短关键物料供应周期。目前,我国97%以上的企业是中小型企业,对国民经济的贡献值在40%以上,构成了国民经济中最具有活力的部分。面对竞争日益激烈的国内国际市场和自身业务不断发展的需要,中小企业进行信息化建设的愿望更为迫切,应用ERP来提高管理水平和生产力水平成为众多企业的战略决策。本系统根据中小型ERP系统的设计思想,以汽车行业中的仓库管理为例,为汽车服务行业的中小企业仓库管理提供了一套相应的解决方案。1.2由传统的构架到B/S架构与最初的大型中央主机相适应,最初的软件结构体系也是Mainframe结构,该结构下客户、数据和程序被集中在主机上,通常只有少量的GUI界面,对远程数据库的访问比较困难。随着PC的广泛应用,该结构逐渐在应用中被淘汰。在80年代中期出现了Client/Server分布式计算结构,应用程序的处理在客户(PC机)和服务器(Mainframe或Server)之间分担;请求通常被关系型数据库处理,PC机在接受到被处理的数据后实现显示和业务逻辑;系统支持模块化开发,通常有GUI界面。Client/Server结构因为其灵活性得到了极其广泛的应用。但对于大型软件系统而言,这种结构在系统的部署和扩展性方面还是存在着不足。Internet的发展给传统应用软件的开发带来了深刻的影响。基于Internet和Web的软件和应用系统无疑需要更为开放和灵活的体系结构。随着越来越多的商业系统被搬上Internet,一种新的、更具生命力的体系结构被广泛采用,这就是为我们所知的“三层/多层计算”。1.客户层用户接口和用户请求的发出地,典型应用是网络浏览器和客户端(如Java程序)。2.服务器层典型应用是Web服务器和运行业务代码的应用程序服务器。 3.数据层典型应用是关系型数据库和其他后端(back-end)数据资源,如Oracle和SAP、R/3。三层体系结构中,客户(请求信息)、程序(处理请求)和数据(被操作)被物理地隔离。三层结构是个更灵活的体系结构,它把显示逻辑从业务逻辑中分离出来,这就意味着业务代码是独立的,可以不关心怎样显示和在哪里显示。业务逻辑层现在处于中间层,不需要关心由哪种类型的客户来显示数据,也可以与后端系统保持相对独立性,有利于系统扩展。三层结构具有更好的移植性,可以跨不同类型的平台工作,允许用户请求在多个服务器间进行负载平衡。三层结构中安全性也更易于实现,因为应用程序已经同客户隔离。应用程序服务器是三层/多层体系结构的组成部分,应用程序服务器位于中间层。B/S架构(Browser/Server)随着Internet技术的兴起,实现了对C/S(Client/Server)结构的改进。在这种结构下,用户工作界面通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。相对于C/S架构不能提供真正开放的环境,B/S结构的前端是以TCP/IP协议为基础的,企业内的WWW服务器可以接受安装有Web浏览程序的Internet终端的访问,作为最终用户,只要通过Web浏览器,各种处理任务都可以调用系统资源来完成,这样大大简化了客户端,减轻了系统维护与升级的成本和工作量,降低了用户的总体拥有成本(TCO)。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也较低。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN、WAN、Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。1.3系统开发的背景及意义 1.3.1汽车维修仓库管理系统开发背景ERP管理体系作为支持企业谋求新形式下竞争优势的手段,它的涉及面很广,包含了企业的所有资源,同时,其应用又起到了“管理驱动”的作用。总的来说,ERP在原有功能的基础上,使MRPⅡ向内、外两个方向延伸,向内主张以精益生产方式改造企业生产管理系统,向外则增加战略决策功能和供需链管理功能。我国企业应用ERP总体起步较晚,带来一个优势就是可以不必从头走国外花费很长时间的历程,应用上我们可以直接超越MRP、MRPII,直接进入ERP阶段,技术上我们可以充分应用当代最新的信息技术(如网络计算、电子商务),使我国ERP建立在先进的技术架构上。我国企业已经具备推行ERP的条件,市场竞争的现实环境加速了中国企业的成熟,为求生存和发展,大部分企业都能正视现实,接受改变。同时近年来,企业人员的素质也在不断提升,懂得和掌握信息技术应用的人员也越来越多。ERP的传统应用集中在大型企业,我国的ERP也是从大型企业开始,在管理成为各类企业普遍需要的今天,作为一种先进的管理体系,不仅大型企业需要,中小型企业同样需要。不同规模的企业其运营和管理的模式不同,需要不同形态的ERP。汽车产业的兴旺发展带动汽车配件行业的大步前进,目前大多数汽车维修企业的仓库管理是用手工进行的。随着汽车款式的不断更新,零配件种类会不断的增多,手工工作已不能适应时代的发展需求,由于各汽车维修企业每天的销售量很大,难免会在业务方面及财务方面出现漏洞,给企业的经营带来种种弊端,有时还会带给客户不必要的麻烦。要想解决这些难题,就必须有一套科学、高效、严密、实用的仓库管理系统。本仓库管理系统利用了ERP系统的灵魂--管理思想,主体是体现管理思想的管理应用模式,技术是其建立的支撑。管理思想和模式,具有国际共通性,但更要求结合实际、应用基础,适应区域文化和管理制度乃至人员的使用习惯。1.3.2使用ERP系统管理的意义 在激烈的市场竞争和内外环境的压力下,企业若要达到预期的市场占有率和预期的经济效益,提高企业的应变能力和竞争能力,就必须在产品的质量、性能、交货期、价格等方面具有自己的优势。在当今市场的大环境之下,提高竞争力的主要方法就是加强管理,在管理、模式、手段和工具方面进行切实可行的改革。对于任何一个企业所追求的经营目标均可用两句话来说明:最佳的客户服务水平及最少的投入,最高的产出。为了达到这一基本的经营目标,就需要企业对所拥有的各种资源进行有效的、充分的利用,即对资源进行计划和控制。所谓企业资源,主要指人、财、物、技术、设备、信息和时间七大资源,这些资源利用得好坏与否,直接影响到企业的基本经营目标。所以,管理者无不致力于尝试使用各种方法来解决资源的利用问题,也就是解决库存、生产计划与控制的问题[2]。使用ERP进行管理,提供的服务是规范的、统一的、快速的,它在汽车仓库管理中的应用不仅可以简化、规范日常操作,而且可以使管理更加简单、方便、快捷、清晰、从而减轻了工作人员的劳动强度。计算机管理系统的应用是汽车维修管理及配件经营迈向现代化企业的重要标志,必将成为汽车配件管理现代化不可缺少的手段。 第二章仓库管理系统开发平台2.1.NETFramework技术架构.NETFramework是用于构建和运行下一代软件应用程序、以XML为基础的Web服务的Windows组件,.NET框架提供了一个高效并标准的环境,用于将现有资源与下一代应用程序和服务进行集成,能够灵活地解决企业级应用程序的部署和操作难题,目前,它支持20多种不同的编程语言。整个开发框架的基础,是通用语言运行时(CommonLanguageRuntime.CLR)以及它所提供的一组基础类库;在开发技术方面,.NET提供了全新的数据库访问技术(ADO.NET)、Web应用开发技术、ASP.NET和WindowsForms编程技术等;在开发语言方面,.NET提供了VB、C++、C#等多种语言支持。VisualStudio.NET是全面支持.NET的开发工具,通用语言运行时和.NET类库是它的两个最基本的部分。.NET框架提供了一个包括很多高度可重用的接口类型的类库,该类库是一个完全面向对象的类库,为应用程序提供各种高级的组件和服务。.NET框架类库将开发人员从繁重的编程细节中解放出来专注于程序的商业逻辑,为应用程序提供各种开发支持。1.系统框架服务系统服务框架包括一套在标准语言库中使用的基本类库,例如:集合,输入/输出,字符串及数据库。另外,它提供了访问操作系统和其他服务的类,如网络、线程、全球化和加密的类。服务框架也包括数据访问类库及开发工具,如调试和剖析服务能够使用的类。2.ADO.NET组件ADO.NET为基于网络的可扩展的应用程序和服务提供数据访问的服务。ADO.NET不仅支持传统的基于连接指针风格的数据访问,同时也为更适合于把数据返回到客户端应用程序的无连接的数据模板,从而提供高性能的访问支持。3.XML数据组件开发人员可以通过XML对应用程序中所使用的数据库进行转换、传输和确认。.NET系统框架对XML数据提供了操作支持,也支持ADO.NET数据与XML数据之间的转换。 4.Windows表单组件Windows表单组件提供了强大的Windows应用程序模型和丰富的Windows用户接口,包括传统的ActiveX控件和WindowsXP的界面,如透明的、分层的、浮动接口等。5.ASP.NET应用服务ASP.NET的核心是高性能的用于处理基于HTTP请求的运行语言,编译运行方式大大提高了它的性能,ASP.NET使用基于构件的Microsoft.NET框架配制模板,因此它也具备XCOPY配制,构件并行配制,基于XML配制等.NET框架的优点,它支持应用程序的实时更新,提供高速缓存服务。6.ASP.NETWeb表单ASP.NETWeb表单支持传统的将HTML内容与脚本代码混合的ASP语法,但它提出了一种将应用程序和用户接口内容分离得更加结构化的方法。7.Web服务ASP.NET应用服务体系架构为用ASP.NET建立Web服务提供了一个高级的可编程模板。ASP.NET的web服务为在互联网上绑定应用程序提供了一个利用现存体系架构和应用程序的简单的、灵活的、基于产业标准的模型。2.2安装与配置.NET运行环境ASP.NET是建立在CLR类库和其他一些与Microsoft.NET框架集成在一起的工具基础上的,因此要开发和运行ASP.NET应用程序,需要安装与配置.NET运行环境。安装分3个步骤进行:首先安装Web服务器(InternetInformationServer,IIS),然后安装MDAC等系统组件,最后安装.NET框架SDK或.NET框架可再发行组件包(.NETFrameworkRedistrbutablePackage)。2.3ASP.NET技术ASP.NET是.NET体系结构的主要组成部分,实现B/S结构的应用程序。ASP.NET除了使用CLR语言编写的编译代码,更重要的是可以使用众多的服务器控件和.NET框架提供的数千个.NET类,建立功能强大的Web应用程序。ASP.NET是一种统一的Web平台,它提供了生成企业级应用程序所必需的全部服务。ASP.NET的核心技术有控件驱动、XMLWeb服务、代码分离技术、数据绑定技术和新一代的数据存取机制ADO.NET[3]。 要在Web的多样性世界里取得成功,在涉及到操作系统、对象模型和编程语言的选择时,XMLWeb服务不能有任何倾向性。同样,要使XMLWeb服务像其他基于Web的技术一样被广泛采用,必须符合下列条件:1.松耦合的如果对两个系统的唯一要求是要理解前面提到的自我描述的文本消息,那么这两个系统就被认为是松耦合的。另一方面,紧耦合系统要求大量自定义系统开销来进行通信,并要求系统之间有更多的了解。2.常见的通信不会有人想构建一个无法连接到Internet的操作系统,因此,需要提供常见的通信信道。同样,能够将几乎所有系统或设备连接到Internet的能力将确保这样的系统和设备可以供连接到Internet的所有其他系统或设备使用。3.通用数据格式通过用现有的开放式标准而不是专用的封闭通信方法,任何支持同样的开放式标准的系统都能够理解XMLWeb服务。在采用自我描述的文本消息时,XMLWeb服务及其客户端无须知道每个基础系统的构成即可共享消息,这使得自治系统和不同的系统之间能够进行通信。XMLWeb服务使用XML实现此功能。ADO.NET是.NETFrameWorkSDK中用以操作数据库的类库的总称。ADO.NET相对于ADO的最大优势在于对于数据的更新修改可以在与数据源完全断开连接的情况下进行,然后再把数据更新情况传回到数据源。这样大大减少了连接过多对于数据库服务器资源的占用。使用ADO.NET的任何软件解决方案的中心都是数据集(DataSet模型)。数据集是内存中的数据库数据的副本。一个数据集包括许多数据表,每个数据表一般都对应一个数据库表格或视图。一个数据集组成了一个"断开的"数据库数据的视图。说得更精确些,数据集存在于内存中,没有到包含相应表格或视图的数据库的活动的连接。这种断开的体系结构在读写数据库时,只使用数据库服务器资源,从而具有更大的可收缩性。运行时,数据从数据库传递给中间层商务对象,然后将其继续传递给用户界面。为了适应数据ADO的交换,ADO.NET使用了一种基于XML的暂留和传输格式。说得更精确些,为了将数据从一层传送给另一层,ADO.NET解决方案以XML格式表示内存数据(数据集),然后将XML发送给另一个组件。XML格式是最为彻底 的数据交换格式,可以被多种操作数据接口所接受,能穿透公司防火墙,也因此,ADO.NET具有了跨平台性和良好的交互性。ADO.NET数据库访问技术的之所以有诸多的优越性,是因为ADO.NET对象的基本原理和根源都是DataSet对象模型。DataSet是ADO记录及的延伸。DataSet类是ADO.NET中最核心的成员之一,也是各种开发基于.NET平台程序语言开发数据库应用程序最常接触的类。之所以DataSet类在ADO.NET中具有特殊的地位,是因为DataSet在ADO.NET实现从数据库抽取数据中起到关键作用,在从数据库完成数据抽取后,DataSet就是数据的存放地,它是各种数据源中的数据在计算机内存中映射成的缓存,是独立存在于内存中的数据库视图,所以有时说DataSet可以看成是一个数据容器。同时它在客户端实现读取、更新数据库等过程中起到了中间部件。在ASP.NET出现之前,无论是ASP、PHP还是JSP,程序代码与HTML代码都是混杂在一起的,这种做法,虽然在WEB技术初期受到赞扬,但是随着时间的的推移,它的弊端是越来越明显,当程序代码很长时,HTML代码与其混杂,程序的可读性变得很差,让人无法分清程序真正要表示的页面构架。而新技术ASP.NET则通过Codebehind、用户控件(UserControl)以及自定义控件(CustomControl)等方法真正做到了代码的分离。2.4SQLSERVER数据库一个仓储企业的尽管人数不多,但是人员变化很大,要求数据库的吞吐量和稳定性较高,这就需要选择更好的数据库,并且数据库的选择还要考虑与操作系统的配合。SQLServer提供服务器端的软件,这部分需要安装在NTServer上,SQLServer的用户端则可以安装在许多用户端PC系统中,Windows可以让用户端进行数据库的建立,维护及存取等操作,SQLServer可以最多定义32767个数据库,每个数据库中,可以定义20亿个表格,每个表格可以有250个字段,每个表格的数据个数并没有限制,每一个表格可以SQLServer所使用的数据库查询语言称为Transact-SQL,它是SQLServer的核心,Transact-SQL强化了原有的SQL关键字以进行数据的存取,储存及处理等功能,Transact-SQL扩充了流程控制指定,可以方便的编写功能强大的存储过程,他们存放在服务器端,并预先编译过,执行速度非常块,触发是一种特殊的存储过程,用来确保SQLServer 数据库引用的完整性,可以建立插入,删除和更新触发以控制相关的表格中对数据列的插入,删除和更新,还可以使用规则(Rule),缺省(default)以及限制(Constraints),来协助将新的数值套用到表格中去[4]!通过新数据库镜像方法,将记录档案传送性能进行延伸。还可以使用数据库镜像,通过将自动失效转移建立到一个待用服务器上,增强SQL服务器系统的可用性。若使用服务器版SQL,数据库管理人员将可以在SQL服务器运行的情况下,执行恢复操作。在线恢复改进了SQL服务器的可用性,因为只有正在被恢复的数据是无法使用的,而数据库的其他部分依然在线、可供使用。在线检索选项可以在指数数据定义语言(DDL)执行期间,允许对基底表格、或集簇索引数据和任何有关的检索,进行同步修正。例如,当一个集簇索引正在重建的时候,可以对基底数据继续进行更新、并且对数据进行查询。使用SQLServer数据库,开发人员通过使用相似的语言,例如本系统采用的VisualC#.NET,将能够创立数据库对象。开发人员还将能够建立两个新的对象——用户定义的类和集合。在使用本地网络和互联网的情况下,在不同应用软件之间散步数据的时候,可扩展标记语言(XML)是一个重要的标准。SQLServer将会自身支持存储和查询可扩展标记语言文件。从对SQL类的新的支持,到多活动结果集(MARS),SQLServer中的ADO.NET将推动数据集的存取和操纵,实现更大的可升级性和灵活性。SQLServer中的新安全模式将用户和对象分开,提供fine-grainaccess存取、并允许对数据存取进行更大的控制。另外,所有系统表格将作为视图得到实施,对数据库系统对象进行了更大程度的控制。SQLServer为开发可升级的数据库应用软件,提供了语言功能。这些性能包括处理错误、递归查询功能、关系运算符PIVOT,APPLY,ROW_NUMBER和其他数据列排行功能,等等。SQL服务中介将为大型、营业范围内的应用软件,提供一个分布式的、异步应用框架。通告服务使得业务可以建立丰富的通知应用软件,向任何设备,提供个人化的和及时的信息,例如股市警报、新闻订阅、包裹递送警报、航空公司票价等。在SQLServer中,通告服务和其他技术更加紧密地融合在了一起,这些技术包括分析服务、SQLServerManagementStudio。使用SQLServer,开发人员将能够在数据库层开发Web服务,将SQLServer当作一个超文本传输协议(HTTP )侦听器,并且为网络服务中心应用软件提供一个新型的数据存取功能。其中报表服务可以提供报表控制,可以通过VisualStudio发行。第三章系统的分析与总体设计3.1系统分析3.1.1系统开发设计思想采用数据库和网络技术的仓库管理系统在各类型企业中具有很高的应用价值,本课题拟设计与实现一个汽车维修仓库管理信息系统,以支持对货品存储的高效率管理。本系统根据ERP的管理思想,建立在信息技术基础上,以系统化的管理思想,为企业的管理层人员提供方便实用的管理平台。3.1.2汽车维修仓库管理信息系统的需求分析在软件工程中,需求分析指的是在建立一个新的或改变一个现存的系统时描写新系统的目的、范围和定义时所要做的所有的工作。需求分析是软件工程中的一个关键过程。在这个过程中,系统分析员和软件工程师确定顾客的需要。只有在确定了这些需要后他们才能够分析和寻求新系统的解决方法。在软件工程的历史中,很长时间里人们一直认为需求分析是整个软件工程中最简单的一个步骤,但在过去十年中越来越多的人认识到它是整个过程中最关键的一个过程。假如在需求分析时分析者们未能正确地认识到顾客的需要的话,那么最后的软件实际上不可能达到顾客的需要,或者软件无法在规定的时间里完工。需求分析阶段的工作,可以分为四个方面:问题识别、分析与综合、制订规格说明、评审。问题识别就是从系统角度来理解软件,确定对所开发系统的综合要求,并提出这些需求的实现条件,以及需求应该达到的标准,这些需求包括:功能需求(做什么),性能需求(要达到什么指标),环境需求(如机型,操作系统等),可靠性需求(不发生故障的概率),安全保密需求,用户界面需求,资源使用需求(软件运行是所需的内存,CPU等),软件成本消耗与开发进度需求,预先估计以后系统可能达到的目标。 分析与综合指逐步细化所有的软件功能,找出系统各元素间的联系,接口特性和设计上的限制,分析他们是否满足需求,剔除不合理部分,增加需要部分。最后,综合成系统的解决方案,给出要开发的系统的详细逻辑模型(做什么的模型)。制订规格说明书即编制文档,描述需求的文档称为软件需求规格说明书。需求分析阶段的成果是需求规格说明书,向下一阶段提交。评审是对功能的正确性,完整性和清晰性,以及其它需求给予评价。评审通过才可进行下一阶段的工作,否则重新进行需求分析。作为一个仓库管理系统,其目的是提高仓库的存储效率,减少仓库管理漏洞,具有对仓库信息,货物信息,所涉及员工信息进行管理级维护的功能,也具有对每一次仓库货物变动进行记录以及自动生成订货报表的功能,这些都是需求分析时分析考虑到的。3.1.3系统功能分析本系统划分了三个角色,分别为采购员,仓库管理员和仓库管理总管。其中系统需求按角色划分主要包括采购员对功能的需求,分仓库管理员对功能的需求以及仓库管理总管对功能的需求,3部分功能需求所列如下:1.采购员对功能的需求登录取得采购员权限。修改自身信息,主要为修改登录密码,其他由总管理员预先维护好。注销此次权限。系统生成的采购信息的浏览,采购信息包括货物名称,所需仓库,仓库地址,仓库描述,货物描述,所需数量,当前价格,主供应商,次供应商,紧急度信息。采购信息详单的浏览。打印订单信息。2.分仓库管理员对功能的需求登录取得对所管仓库的管理权限。修改自身信息,主要为登录密码的功能,其他由总管理员预先维护好。注销此次权限。 对本仓库货物的变动进行记录,变动包括进货和出货两类,内容主要包括货物名称、当前库存数量、最大存储量、当前最大出货量、当前最大进货量、以及实际操作进货/出货的数量,负责人姓名等信息。3.仓库总管对功能的需求(1)员工管理浏览所有用户信息:用户信息包括用户编号,用户类别,姓名,密码,电子邮件,工作部门,联系地址,联系电话等信息。查找用户:根据用户的编号查找相应的用户信息。员工信息修改:主要包括用户工作修改,用户所管辖仓库更改。删除不合法员工:对离职的员工信息进行及时删除。(2)仓库管理浏览所有仓库信息:仓库信息包括仓库编号、仓库名称、仓库面积、所在地点,简单描述等信息。添加仓库信息:添加的信息包括仓库名、仓库面积、仓库地点以及简单描述。修改仓库信息:如仓库的地点等发生变化时,对仓库的相关信息进行修改。删除原有仓库信息。(3)货物管理浏览所有货物信息:货物信息包括货物编号、货物名称、当前价格、主供应商、次供应商以及简单描述等信息。添加新货物信息:添加的信息包括货物名、最近市场价、主提供商、次提供商及货物描述。修改货物信息:修改内容包括货物的名称,货物的主/次供应商,货物的当前价格。删除原有货物信息。仓库存储规则维护:浏览所有仓库存储规则,仓库存储规则信息包括规则编号、存放货物、存放仓库、最大存量、存量临界线等信息。添加新仓库存储规则。修改仓库存储规则:包括存储的货物、目标仓库、存量上/下限等等;删除原有不再适用的仓库存诸规则。所有仓库货物变动记录浏览:变动记录包括记录编号、存放货物、存放仓库、 进出数量、进出日期、负责人、经手人等信息。(4)配件库存管理:根据货物的编号,货物名或仓库进行查询。各种货物的库存量的查询。3.2系统设计3.2.1系统流程设计系统流程图,如图3-1所示:图3-1 系统流程图用户首先登录到初始页Default.aspx,如果是仓库总管,则被系统引导至货物维护页WarehouseManager.aspx,该页是系统维护中最常用的功能页,管理员可以在此功能页中维护货物信息,该页设置了指向其他管理页面的链接,如员工管理页UserManage.aspx,库存配件管理页GoodsStoreManage.aspx,以及货物管理页GoodsManage.aspx和仓库存放规则管理页StoreRegularManage.aspx,各个用户被确认为分仓库管理员,则被系统引导至货物进出控制页GoodsReserve.aspx,该页负责进行出库,入库货物登记,如果用户被确认为采购员,则被系统引导至仓库需求列表页OrderList.aspx,该页将负责显示所有仓库需求,提供采购员采购信息,以便其以最快速度完成填补需求任务。 3.2.2系统功能模块设计仓库管理系统(WMS)的主要功能包括以下几个方面:员工管理、仓库管理、货物管理、存储规则管理、货物进出控制、配件库存管理、仓库需求生成和货物进出记录,其功能结构图,如图3-2所示图3-2 系统模块划分图1.员工管理模块该模块负责管理所有参与仓库管理运作的员工信息,主要功能包括添加、删除、修改、查找员工信息。各项操作按照员工的工作类别区别给予,系统分为3类权限:仓库总管、分仓库管理员、采购员,权限分配仓库总管在此模块中实现,仓库总管理员可以管理所有员工信息,而分仓库管理员和采购员只能对自己的个人信息进行维护。2.仓库管理模块该模块负责管理所有本管理系统涉及的仓库信息,主要功能包括添加、删除、修改仓库信息,只有仓库总管理员才具有对仓库信息进行维护的权利,仓库管理模块本身简单,维护好的仓库信息将在别的相关模块中调用,维护仓库信息是本系统正常运行首先要做的。3.货物管理模块该模块负责管理所有存放于仓库中的货物的详细信息。主要功能包括添加、删除、修改、查找货物信息。仓库总管理员有权对货物信息进行添加、删除、查找和修改,货物管理模块本身与人员管理模块、仓库管理模块是相互独立的。4.存储模块管理 该模块负责所有存储规则的管理。主要功能包括添加、删除、修改存储规则信息,以在仓库管理系统、货物管理系中维护好的信息作为基础,由仓库总管决定各货物对应的存放规则,何种物品和在何仓库,限量多少,存放底线多少等,存储规则作为一种关系存在,即联系仓库与货物这两个孤立的信息。5.货物进出控制模块货物进出控制就是对进仓,出仓的货物进行登记管理,可想而知,如果这不是一个大型企业的大型仓库,分仓库管理员将担负起这个职责,当有货物进出仓库时,分仓管理员调用这个模块,按照预先设定好的存储规则对合法货物进行进出控制。6.仓库需求生成模块我们对仓库进行管理的最终目的是及时发现当前仓库的需求,当前需求主要是提供给采购部门信息的游览,它不提供给任何人删除以及修改的权利,仓库需求中系统将会根据目前仓库存储情况,赋予每一个订单一个量化的紧急程度值,供采购部门安排采购时确定采购顺序。7.货物进出记录模块每一笔货物的进出显然要做到有据可查,查的内容包括货物名称,仓库信息,进出库数量,进出库产生日期,负责人和经手人等,以上信息我们都在对货物进出进行控制时产生,仓库总管有权对以上所有信息进行游览,但是货物进出记录一旦生成就不可修改、删除,这提供了仓库管理系统的可靠性,货物进出记录模块将完成一功能。8.配件库存管理模块仓库管理系统很重要的功能就是对货物的统计查询,包括每个仓库中货物的信息以及各种货物分布在哪个仓库中,并对仓库中货物的当前存量进行统计。仓库总管理员将担负起这个职责,同时也赋予他货物进出仓的权限。3.3数据库分析3.3.1系统E-R图根据以上对对系统所做的需求分析,模块设计,就可以作出能够满足用户需求的各种实体以及它们之间的关系,本系统根据上面的设计规划出的实体有:员工信息实体、仓库信息实体、货物信息实体、存放信息实体、配件库存信息实体,进出记录信息实体。 WMS系统实体间关系E-R图,如图3-3所示图3-3 WMS系统实体间关系E-R图WMS系统员工信息实体图,如图3-4所示图3-4 WMS系统员工信息实体图WMS系统仓库信息实体图,如图3-5所示图3-5 WMS系统仓库信息实体图WMS系统货物信息实体图,如图3-6所示 图3-6 WMS系统货物信息实体图WMS系统存放信息实体图,如图3-7所示图3-7 WMS系统存放信息实体图WMS系统进出记录信息实体图,如图3-8所示图3-8 WMS系统进出记录信息实体图WMS系统配件库存信息实体图,如图3-9所示图3-9 WMS系统配件库存信息实体图通过对实体联系的分析,在本系统中利用PowerDesigner设计E-R模型。PowerDesigner的概念数据模型(CDM)把现实的信息简化为实体与实体之间的联系, 它与DBMS无关。CDM的建立是一个比较复杂的过程,实体关系图的分析结果也非常复杂,一般情况下使用从简到繁的方式进行设计,首先从大的方面中设计出各个实体之间的关系,然后在这个关系的基础上对各个细节进行细化。3.3.2表/字段设计表/字段分析是建立在实体关系图基础上的,表字段分析后也可以利用PowerDesigner建立数据库模型。在前面使用PowerDesigner设计了E-R模型,就可以使用其自带的工具建立数据库模型,比较复杂的数据库使用上面提到的设计工具进行表和字段分析,可以减少工作量并提高设计质量。在WMS系统中设立5张表结构,包括用户信息数据表,仓库信息数据表,货物信息数据表,存放规则信息数据表,货物进出库记录数据表,这5张表分别对应E-R图中的员工信息实体图,仓库信息实体图,货物信息实体图,存放信息实体图,进出记录信息实体图。首先是用户信息表,用于存放仓库管理系统中所有参与人员的信息,用户管理是每个管理系统中必不可少的,也是比较重要的一块,如表3-1表示了各个字段的数据类型,大小以及简短描述。表3-1 用户信息数据表(Users)列名数据类型大小字段描述UIDVarchar50表示每一员工的员工号,作为索引UPasswordVarchar50记录用户登录本系统时的用户密码UPowerInt4记录用户的类型,1-仓库总管理员,2-分仓库管理员,3-采购员USexBit1员工性别UNameVarchar50员工姓名UAddressVarchar50员工住址UTelVarchar50员工电话UEmailVarchar50员工电子邮箱的地址UDepInt4员工所属仓库的仓库号在WMS系统中,最重要的对象是仓库,一个单位可能会有很多个仓库,以便存储和管理,系统设计了仓库信息数据表(Warehouses),用于存放当前公司所有涉及到的仓库的信息,但我们主张同一个地区的仓库数量不宜太多,仓库小而不便于其管理,如表3-2表示了各个字段的数据类型,大小以及简短描述。 表3-2 仓库信息数据表(Warehouses)列名数据类型大小字段描述WIDInt4标识每一仓库的唯一ID号,作为索引WNameVarchar50仓库名称WAreaFloat8仓库大小(平米)WAddressVarchar50仓库所在地址WDescribeVarchar500对仓库的描述货物是仓库存储的基本单位,货物信息量相当大,系统用货物信息数据表(Goods)记录当前仓库拟存的货物信息,为了方便货物的采购,在货物信息表中加入货物提供商信息,如表3-3表示了各个字段的数据类型、大小以及简短描述。表3-3货物信息数据表(Goods)列名数据类型大小字段描述GIDInt4记录货物的唯一ID号GNameVarchar50货物名称GPriceMoney8货物当前价格GProvider1Varchar50本商品主要供应商GProvider2Varchar50本商品次要供应商GDescribeVarchar50对商品的描述货物的存放都会有规则,什么样的货物存放在什么样的仓库中,存储量为多大,存储量最低临界线是多少,系统构建存储规则信息数据表(Store)用来存储以上信息,该信息由仓库总管在货物第一次进仓前维护,如表3-4所示表中各个字段的数据类型,大小以及简短描述。 表3-4 存储规则信息数据表(Store)列名数据类型大小字段描述SIDInt4记录存储规则的唯一ID号SGIDInt4存储规则中的货物ID号SWIDInt4存储规则中的仓库ID号STopLineFloat8当前商品当前仓库的最高存量SbaseLineFloat8当前商品存量的最低临界线SQuantityFloat8当前商品的当前存量每一次商品的进库、出库都必须有记录,包括商品的经手人,负责商品管理的管理人员姓名,商品进出库的数量,日期等,以便总管理员或领导追查记录,WMS采用货物进出库记录数据表(Records)记录以上信息,如表3-5表示了各个字段的数据类型,大小以及简短描述。表3-5 货物进出库记录数据表(Records)列名数据类型大小字段描述RIDInt4货物进出库记录的唯一ID号RGIDInt4所登记录的货物ID号RWIDInt4所登记录的仓库ID号RQuantityFloat8出入货物数量RtypeBit1是否货物入库,1-是,2-否RManagerInt4负责货物进出库德仓库管理员ID号RHandlerVarchar50货物进出库的经手人 3.4数据库设计3.4.1创建数据库在MicrosoftSQLServer2000中,创建WMS数据库的操作步骤如下:(1)选择“开始”“程序”MicrosoftSQLServer“企业管理器”命令,启动MicrosoftSQLServer企业管理器。(2)在控制台数中又击“数据库”节点,然后从快捷菜单中选择“新建数据库”命令。(3)打开“数据库属性”对话框,输入数据库的名称WMS,单击“确定”按钮,结束命名操作。数据库创建完毕后企业管理器控制台如图3-8所示图3-8企业管理器控制台3.4.2创建表创建完WMS数据库后,开始往数据库中添加新表,下面创建WMS系统Warehouses表的具体操作步骤:1.在MicrosoftSQLServer企业管理器中,展开“数据库”和WMS节点。2.右击“表”节点,然后选择快捷菜单的“新建表”命令。3.设计表的结构,包括设计表中每个字段的名称,类型和长度等。4.在拟创建的WMS的Warehouses表中,我们选中WID 字段,然后单击工具栏的“设置主键”按钮,将WID字段设置为主键。作为主键的WID字段不允许为空。5.单击工具栏的“保存”按钮,然后在弹出的对话框中输入表名Warehouses。6.单击“确定”按钮,返回表设计器。7.单击标题栏的“关闭”按钮。按同样的方法创建WMS中的其他表。建立完表的WMS数据库,如图3-9所示图3-9 创建完毕的WMS表项列表3.4.3创建存储过程构建了数据库的表结构后,接下来创建负责表中信息选择,添加,更新以及删除的相关存储过程,由于存储过程的使用给系统带来优化,除了部分不便使用存储过程的情况,如对SQL语句的筛选,系统将大量地使用存储过程。WMS中涉及的模块较多,系统共使用了23个存储过程,WMS中包括以下17个主要的存储过程:GoodsList存储过程,GoodsAdd存储过程,GoodsDelete存储过程,GoodsDetail存储过程,GoodsModify存储过程,WarehousesList存储过程,WarehousesAdd存储过程,WarehouseseDelete存储过程,WarehousesModify存储过程,StoreList存储过程,StoreAdd存储过程,StoreDelete存储过程,StoreDetail 存储过程,StoreModify存储过程,StoreReserveModify存储过程,OrderList存储过程,OrderDetail存储过程。3.4.4连接数据库/数据库具体配置系统采用对数据库配置进行统一管理的方法,将程序中用到的所有连接字符串信息统一放于Config.web配置文档中,在程序中对该文档的这一配置进行调用,进行数据库连接,我们只要修改Config.web配置文档中相应数据库信息便可实现系统移植时数据库连接的转移。对于数据库调用字符串,数据库使用的是本地数据库,DataSource(数据源)设置为localhost;UID(用户ID)赋值为系统默认的sa;PWD(连接密码)赋值为sa;DATABASE(数据库名称)设为WMS。在程序中读取Config.web配置文档中的数据库设置信息,只要使用如下的语句即可,语句的列举如下:stringstrconn=ConfigurationSettings.AppSettings["dsn"];我们只要在程序文件中加入该行代码,就可以轻松地将数据库连接字段读取到字符串strconn中,并且每个配置段处理器只需申明一次即可,子目录的Web.config文件会自动继承根据根配置文件Machine.config文件,并且在程序中不用重新声明。 第四章主要功能模块设计4.1仓库管理系统首页的设计仓库管理系统首页窗体如图4-1所示,作为系统首页。登录页面具有自动导航的功能,不同用户登录,根据其不同的身份,将被系统引导进入不同的系统功能页,系统分为3类用户:仓库总管、分仓库管理员以及采购员,在用户身份验证通过后,系统用Session变量记录其用户号,用户身份,伴随用户对系统进行操作的整个生命周期。图4-1仓库管理系统首页窗体4.2货物信息维护模块的设计货物信息维护页面窗体如图4-2所示,货物信息维护模块是WMS中的主要部分,货物信息维护页面主要是负责所有货物信息的浏览,以及到货物维护其他页面的链接,页面采用一个DataGrid控件dgd_goodsmanage与DataSet的绑定返回所有货物信息,dgd_goodsmanage的第0列为HyperLinkColumn列,链接至具有数据修改功能的货物详单页,用户也可以根据货物号直接查找到该货物详单。 图4-2 货物信息维护页面窗体4.3货物信息添加模块的设计货物信息添加页面窗体如图4-3所示,主要负责往数据库中添加数据,后台事件只包括btn_submit_Click事件,负责当用户单击“添加”按钮后的数据库添加操作。图4-3货物信息添加页面窗体 4.4货物信息修改模块的设计货物信息修改页面窗体,如图4-4所示。图4-4货物信息修改页面窗体修改页面和添加页面都是极其相似的,这是一个设计技巧。同样,本页面和货物信息的添加页面也是非常相似的,页面上所有文本框控件的名称和GoodsAdd.asp页面控件相同,只是在末行添加了“修改信息”和“删除货物”按钮控件,并增加了支持这两控件的数据库作代码,由于这是一个信息修改界面,系统必须提供原始数据记录,在Page_Load()事件里,我们的添加了实现各个文本框初始数据绑定的程序代码。文本框的边框样式BorderStyle为Dashed,表示文本框信息可修改。4.5仓库存放规则维护模块的设计仓库存放规则维护页面窗体如图4-5所示,它与货物信息维护页面的界面上相似,功能上也总体相当,只是对信息的修改方式不同,货物信息有专门的页面负责信息修改,而仓库存放规则信息的修改直接在DataGrid控件dgd_storemange上完成,在dgd_storemange的右侧列上可以看到增加了“编辑”按钮,负责编辑模式的转换。存放规则维护是对“关系”的维护,而货物信息维护是对“实体”的维护。在程序中使用try-catch方法总体判断输入的有效性,只要有输入无效,则try{}程序中的转换代码将产生catch中断,设计中在catch{}语句中加入提示输入出错代码,完成总体有效性检查。 图4-5仓库存放规则维护页面窗体4.6仓库存放规则添加模块的设计仓库存放规则添加页面窗体如图4-6所示,存放规则的添加共有4项,货物名称,存放仓库信息都从数据库中预取得;在Page_Load()事件中绑定到相应DropDownList控件上实现,Page_Load()事件主要负责ddl_gname以及ddl_wname控件的数据绑定操作,btn_submit_click()事件则负责用户在单击“提交”按钮后往数据库中添加新规则信息的操作,为了保证提交数据的合法性,加入了多个数据校验控件进行验证。图4-6 仓库存放规则添加页面窗体 4.7货物进出维护模块的设计货物进出维护页面窗体,如图4-7所示图4-7货物进出维护页面窗体所谓货物进出维护,就是对仓库货物的进出库进行登记,页中用了多个TextBox控件,其中tbx_squantity,tbx_stopline,tbx-maxout,tbx_maxin等TextBox控件的边框“风格属性”设为实线,这些TextBox控件的值是不可操作的,由系统在Page_Load()事件中预先维护好,但是在数据库中并未设置对应这些值得字段,故以上值包括“最大进货量”,“最大出货量”都是动态计算得出,具体算法是;最大进货量=最大存储量-当前库存量;最大出货量=当前库存量,这就使得系统具有良好的自适应性,进出货量随着仓库最大存储量的改变而自动改变,由于货物的状况包括两种:一种为进货,一种为出货,我们用两个RatioButton控件来区分,而系统必须对进出数量进行控制,系统则通过对RatioButton控件的选择来限制对“进出数量”文本框tbx_quantity输入最大值,这一限制通过设定rv_quantity的MaximumValue的属性来实现,当RatioButton控件rbn_in被选中时,MaximumValue的值为tbx_maxin的输入值;否则,当RatioButton控件rbn_out被选中时,MaximumValue的值为tbx-maxout的输入值,而每一个RatioButton控件的AutoPostBack属性设为True,即当RatioButton控件的选中情况改变时,则触发CheckedChanged()事件,完成对rv_quantity的MaximumValue的属性值的设置。当“提交”操作被触发,系统将完成对数据库中两个表的操作:一个是对存储记录表(Records ),该表记录了每一次仓库货物变动的详细记录,另一个是对存储规则表(Store),修改其相应Squantity字段,即当前该规则下的库存量。4.8仓库货物需求列表模块的设计仓库货物需求列表页面窗体如图4-8所示,该页面的功能是对所有当前库存量小于库存最小临界存储数量的那些货物进行记录,并且提供一个紧急程度,紧急程度的算法是:紧急程度=1-当前库存量/库存最大量,最大值为1,即为库存量为0时,这使得采购部门在看采购单时一目了然,什么货最紧缺,什么货该第一时间购入,所有数据绑定都是在Page_Load()事件中完成,逻辑结构简单。图4-8 仓库货物需求列表页面窗体4.9配件库存查询模块的设计库存管理中配件库存查询的页面的窗体如图4-9所示,该页面的功能是根据不同的查询查询条件查询货物所在仓库,当前价格,库存数量并赋予进出仓操作。图4-9 配件库存查询页面窗体 第五章系统测试5.1单元测试临时单元测试针对代码的测试很不完整,代码覆盖率要超过70%都很困难,未覆盖的代码可能遗留大量的细小的错误,这些错误还会互相影响,当BUG暴露出来的时候难于调试,大幅度提高后期测试和维护成本,可以说,进行充分的单元测试,是提高软件质量,降低开发成本的必由之路。一般认为,在结构化程序时代,单元测试所说的单元是指函数,在当今的面向对象时代,单元测试所说的单元是指类。以类作为测试单位,复杂度高,可操作性较差,因此仍然主张以函数作为单元的测试单位,但可以用一个测试类来组织某个类的所有测试函数。单元测试不应过分强调面向对象,因为局部代码依然是结构化的。单元的工作量较大,简单实用高效才是硬道理。单元测试贯穿整个系统开发过程,它是系统质量的强有力保证。坚持每天写的代码当天完成单元测试,只有如此,才能保证代码正常运行。在编写代码时,一定会反复调试保证它能够编译通过。但代码通过编译,只是说明了它的语法正确;却无法保证它的语义也一定正确,没有任何人可以轻易承诺这段代码的行为一定是正确的。单元测试会为我们的承诺做保证。编写单元测试就是用来验证这段代码的行为是否与期望的一致。有了单元测试就没有任何的后顾之忧。5.2功能测试系统集成之后,通过全面的功能测试,使系统真正达到实际应用的需求。具体有以下方面。1.采购员角色功能测试登录功能;修改自身信息,主要为修改登录密码功能;注销功能;系统生成的采购信息的浏览,采购信息包括货物名称、所需仓库、仓库地址、仓库描述、货物描述、所需数量、当前价格、主供应商、次供应商,查询紧急度信息功能;采购信息详单的浏览功能;打印订单信息功能;2.分仓库管理员角色功能测试登录功能;修改自身信息,主要为登录密码的功能;注销功能;对本仓库货物的变动进行记录,变动包括进货和出货两类,内容主要包括货物名称、 当前库存数量、最大存储量、当前最大出货量、当前最大进货量,以及实际操作进货/出货的数量,负责人姓名等信息。3.仓库总管角色功能测试员工管理功能:浏览所有用户信息功能;查找用户功能;员工信息修改功能;删除不合法员工功能;仓库管理功能:浏览所有仓库信息功能;添加仓库信息功能;修改仓库信息功能;删除原有仓库信息功能;货物管理功能:浏览所有货物信息功能;添加新货物信息功能;修改货物信息功能;删除原有货物信息功能;仓库存储规则维护功能:浏览所有仓库存储规则功能、添加新仓库存储规则功能;修改仓库存储规则功能;删除原有不再适用的仓库存诸规则功能;所有仓库货物变动记录浏览功能。配件库存管理功能:根据编号进行查询;根据货物名进行查询;根据仓库进行查询;进出仓功能;总之,通过以上的各方面的测试,使我改正了代码中的许多不合理以及错误之处,最终也证明了,我们的软件系统是效高可靠性,满足实现需求而且安全性较的应用系统。 第六章结论本论文详细地讨论了汽车维修仓库管理系统的设计与开发,并且介绍了系统开发过程中重要的技术要点及解决方案,以及员工管理,仓库管理,货物管理,存储规则管理,货物进出控制,仓库需求生成和货物进出记录模块的设计与实现,改进了存储规则模块的设计,其中对货物的查询功能还有待完善。随着信息技术的不断发现,国内外社会生产几个行业将不断有对企业信息化管理的需求,这个软件会对企业的管理具有一定的实用性。做为软件设计者若要完成新时代的需求,只有不断得在实践中总结经验;并利用计算机技术解决现实企业方案,为中国信息化进程中做出贡献。 注释[1]王东迪:《ERP原理》第22-24页,人民邮电出版社,2004年3月。[2]丁秋林:《现代企业信息化重构》第45-46页,机械工业出版社,2003年10月。[3]刘瑞新:《机械-ASP动态网站开发毕业设计指导及实例(2005)》第69-75页,机械工业出版社,2005年3月。[4]张晓辉:《SQLServer2000管理及应用系统开发》第5-7页,中国邮电出版社,2004年9月。 参考文献[1]陈兵兵:《SCM供应链管理--策略、技术与实务》电子工业出版社,2004年。[2]罗鸿编:《ERP原理·设计·实施》电子工业出版社,2002年。[3]李国刚:《企业资源计划及其应用》电子工业出版社,2004年。[4]李严:《机械-ASP数据库开发实例解析(2005)》,机械工业出版社,2005年1月。[5]王清华:《VisualC#.NET数据库开发经典案例解析(2005)》,清华大学出版社,2005年4月。[6]邹建松:《人邮-ASP.NET开发技术详解(2005)》,人民邮电出版社,2005年1月。[7]李存斌:田蕙英:《ASP编程技术基础.高等教育出版社》,2004年。[8]胡标:《ASP网络编程技术与实例.人民邮电出版社》,2004年。[9]张固.汪晓闰:《ASP网络应用系统典型模块开发实例解析》,人民邮电出版社,2004年。[10]吴明辉:《ASP网络办公及商务应用开发实例导航》,人民邮电出版社,2003年。[11]汪晓平.钟军:《ASP网络开发技术(第二版)》,人民邮电出版社,2003年。[12]SimonRobinson,K.ScottAllen等:《C#高级编程》,北京:清华大学出版社,2002年。[13]TomArcher.:《C#技术内幕》,北京:清华大学出版社,2002年。[14]沉舟:《Microsoft.NET编程语言C#》,希望电子出版社,2001年。[15]罗军舟,黎波涛,杨明等:《TCP/IP协议及网络编程技术》,清华大学出版社,2004年。[16]TimParker.:《TCP/IP协议及网络编程技术》,机械工业出版社,2000年。[17]周存杰:《VisualC#.NET网络核心编程》,清华大学出版社,2002年。 附录源代码WMS中Config.web的配置文档在文档中,WMS数据库设置部分集中在与</appsettings>之间,主要是数据库的连接字符串,而其他的设置主要是面向应用程序,提供服务,Config.web配置文档的相关主要代码如下: 以下是仓库管理系统首页(Default.aspx.cs)的后台编码类主要代码,前台脚本代码(Default.aspx)可以通过使用.NET集成开发环境。namespaceWMS{//////_Default的摘要说明。///publicclass_Default:System.Web.UI.Page{protectedSystem.Web.UI.WebControls.TextBoxtbx_uid;protectedSystem.Web.UI.WebControls.TextBoxtbx_upassword;protectedSystem.Web.UI.WebControls.Labellbl_message;protectedSystem.Web.UI.WebControls.Buttonbtn_login;privatevoidPage_Load(objectsender,System.EventArgse){//在此处放置用户代码以初始化页面} #regionWebFormDesignergeneratedcodeoverrideprotectedvoidOnInit(EventArgse){////CODEGEN:该调用是ASP.NETWeb窗体设计器所必需的。//InitializeComponent();base.OnInit(e);}//////设计器支持所需的方法-不要使用代码编辑器修改///此方法的内容。///privatevoidInitializeComponent(){this.btn_login.Click+=newSystem.EventHandler(this.btn_login_Click);this.Load+=newSystem.EventHandler(this.Page_Load);}#endregionprivatevoidbtn_login_Click(objectsender,System.EventArgse){//从文件Web.config中读取连接字符串stringstrconn=ConfigurationSettings.AppSettings["dsn"];//连接本地计算机的WMS数据库SqlConnectioncn=newSqlConnection(strconn);cn.Open(); //构造SQL语句,该语句在Users表中检查用户名和密码是否正确stringmysql="select*fromUserswhereUid=""+tbx_uid.Text+""andUPassword=""+tbx_upassword.Text+""";//创建Command对象SqlCommandcm=newSqlCommand(mysql,cn);//执行ExecuteReader()方法SqlDataReaderdr=cm.ExecuteReader();if(dr.Read()){lbl_message.Text="";//保存当前用户名及用户权限Session["uid"]=dr["uid"].ToString();Session["upower"]=dr["upower"].ToString();Session["udep"]=dr["udep"].ToString();lbl_message.Text="欢迎您!"+Session["uid"];if(Session["upower"].ToString()=="1"){//进入仓库总管界面Response.Redirect("goodsmanage.aspx");}elseif(Session["upower"].ToString()=="2"){//进入分仓库管理员界面Response.Redirect("goodsreserve.aspx");}elseif(Session["upower"].ToString()=="3"){//进入仓库采购员界面Response.Redirect("orderlist.aspx");}}else{ lbl_message.Text="对不起,您的用户名/密码不正确,请重新输入";}//关闭连接cn.Close();}}} 后记经过两个多月的设计和开发,汽车维修仓库管理信息系统基本开发完成,其基本符合开发要求,能够完成员工管理、仓库管理、货物管理、存储规则管理等功能。但由于设计时间较短,需求调查不够全面所以该系统还有许多不如人意的地方,例如系统功能不够完善,用户界面不够美观,系统维护功能不全。这些都需要有进一步的改善。在毕业设计过程中我从指导教师张利兵老师身上学到了很多东西。张老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都是我受益匪浅。感谢老师在这两个月对我的帮助和辅导,也感谢在这四年的大学生活中辛勤培养过我的各位老师。 毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作者签名:     日 期:     指导教师签名:     日  期:     使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名:     日 期:      学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权    大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期:年月日导师签名:日期:年月日 指导教师评阅书指导教师评价:一、撰写(设计)过程1、学生在论文(设计)过程中的治学态度、工作精神□优□良□中□及格□不及格2、学生掌握专业知识、技能的扎实程度□优□良□中□及格□不及格3、学生综合运用所学知识和专业技能分析和解决问题的能力□优□良□中□及格□不及格4、研究方法的科学性;技术线路的可行性;设计方案的合理性□优□良□中□及格□不及格5、完成毕业论文(设计)期间的出勤情况□优□良□中□及格□不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范?□优□良□中□及格□不及格2、是否完成指定的论文(设计)任务(包括装订及附件)?□优□良□中□及格□不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义□优□良□中□及格□不及格2、论文的观念是否有新意?设计是否有创意?□优□良□中□及格□不及格3、论文(设计说明书)所体现的整体水平□优□良□中□及格□不及格建议成绩:□优□良□中□及格□不及格(在所选等级前的□内画“√”)指导教师:(签名)单位:(盖章)年月日 评阅教师评阅书评阅教师评价:一、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范?□优□良□中□及格□不及格2、是否完成指定的论文(设计)任务(包括装订及附件)?□优□良□中□及格□不及格二、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义□优□良□中□及格□不及格2、论文的观念是否有新意?设计是否有创意?□优□良□中□及格□不及格3、论文(设计说明书)所体现的整体水平□优□良□中□及格□不及格建议成绩:□优□良□中□及格□不及格(在所选等级前的□内画“√”)评阅教师:(签名)单位:(盖章)年月日 哈尔滨学院本科毕业论文(设计)教研室(或答辩小组)及教学系意见教研室(或答辩小组)评价:一、答辩过程1、毕业论文(设计)的基本要点和见解的叙述情况□优□良□中□及格□不及格2、对答辩问题的反应、理解、表达情况□优□良□中□及格□不及格3、学生答辩过程中的精神状态□优□良□中□及格□不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范?□优□良□中□及格□不及格2、是否完成指定的论文(设计)任务(包括装订及附件)?□优□良□中□及格□不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义□优□良□中□及格□不及格2、论文的观念是否有新意?设计是否有创意?□优□良□中□及格□不及格3、论文(设计说明书)所体现的整体水平□优□良□中□及格□不及格评定成绩:□优□良□中□及格□不及格(在所选等级前的□内画“√”)教研室主任(或答辩小组组长):(签名)年月日教学系意见:系主任:(签名)年月日5 哈尔滨学院本科毕业论文(设计)学位论文原创性声明本人郑重声明:所呈交的学位论文,是本人在导师的指导下进行的研究工作所取得的成果。尽我所知,除文中已经特别注明引用的内容和致谢的地方外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式注明并表示感谢。本人完全意识到本声明的法律结果由本人承担。学位论文作者(本人签名):年月日学位论文出版授权书本人及导师完全同意《中国博士学位论文全文数据库出版章程》、《中国优秀硕士学位论文全文数据库出版章程》(以下简称“章程”),愿意将本人的学位论文提交“中国学术期刊(光盘版)电子杂志社”在《中国博士学位论文全文数据库》、《中国优秀硕士学位论文全文数据库》中全文发表和以电子、网络形式公开出版,并同意编入****《中国知识资源总库》,在《中国博硕士学位论文评价数据库》中使用和在互联网上传播,同意按“章程”规定享受相关权益。论文密级:□公开□保密(___年__月至__年__月)(保密的学位论文在解密后应遵守此协议)作者签名:_______导师签名:______________年_____月_____日_______年_____月_____日5 哈尔滨学院本科毕业论文(设计)独创声明本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。本声明的法律后果由本人承担。 作者签名:二〇一〇年九月二十日 毕业设计(论文)使用授权声明本人完全了解**学院关于收集、保存、使用毕业设计(论文)的规定。本人愿意按照学校要求提交学位论文的印刷本和电子版,同意学校保存学位论文的印刷本和电子版,或采用影印、数字化或其它复制手段保存设计(论文);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布设计(论文)的部分或全部内容,允许他人依法合理使用。(保密论文在解密后遵守此规定) 作者签名:二〇一〇年九月二十日5 哈尔滨学院本科毕业论文(设计)致谢时间飞逝,大学的学习生活很快就要过去,在这四年的学习生活中,收获了很多,而这些成绩的取得是和一直关心帮助我的人分不开的。首先非常感谢学校开设这个课题,为本人日后从事计算机方面的工作提供了经验,奠定了基础。本次毕业设计大概持续了半年,现在终于到结尾了。本次毕业设计是对我大学四年学习下来最好的检验。经过这次毕业设计,我的能力有了很大的提高,比如操作能力、分析问题的能力、合作精神、严谨的工作作风等方方面面都有很大的进步。这期间凝聚了很多人的心血,在此我表示由衷的感谢。没有他们的帮助,我将无法顺利完成这次设计。首先,我要特别感谢我的知道***老师对我的悉心指导,在我的论文书写及设计过程中给了我大量的帮助和指导,为我理清了设计思路和操作方法,并对我所做的课题提出了有效的改进方案。***老师渊博的知识、严谨的作风和诲人不倦的态度给我留下了深刻的印象。从他身上,我学到了许多能受益终生的东西。再次对周巍老师表示衷心的感谢。其次,我要感谢大学四年中所有的任课老师和辅导员在学习期间对我的严格要求,感谢他们对我学习上和生活上的帮助,使我了解了许多专业知识和为人的道理,能够在今后的生活道路上有继续奋斗的力量。另外,我还要感谢大学四年和我一起走过的同学朋友对我的关心与支持,与他们一起学习、生活,让我在大学期间生活的很充实,给我留下了很多难忘的回忆。最后,我要感谢我的父母对我的关系和理解,如果没有他们在我的学习生涯中的无私奉献和默默支持,我将无法顺利完成今天的学业。四年的大学生活就快走入尾声,我们的校园生活就要划上句号,心中是无尽的难舍与眷恋。从这里走出,对我的人生来说,将是踏上一个新的征程,要把所学的知识应用到实际工作中去。回首四年,取得了些许成绩,生活中有快乐也有艰辛。感谢老师四年来对我孜孜不倦的教诲,对我成长的关心和爱护。学友情深,情同兄妹。四年的风风雨雨,我们一同走过,充满着关爱,给我留下了值得珍藏的最美好的记忆。在我的十几年求学历程里,离不开父母的鼓励和支持,是他们辛勤的劳作,无私的付出,为我创造良好的学习条件,我才能顺利完成完成学业,感激他们一直以来对我的抚养与培育。最后,我要特别感谢我的导师***老师、和研究生助教***老师。是他们在我毕业的最后关头给了我们巨大的帮助与鼓励,给了我很多解决问题的思路,在此表示衷心的感激。老师们认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。他无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高这对于我以后的工作和学习都有一种巨大的帮助,感谢他耐心的辅导。在论文的撰写过程中老师们给予我很大的帮助,帮助解决了不少的难点,使得论文能够及时完成,这里一并表示真诚的感谢。5 哈尔滨学院本科毕业论文(设计)致谢这次论文的完成,不止是我自己的努力,同时也有老师的指导,同学的帮助,以及那些无私奉献的前辈,正所谓你知道的越多的时候你才发现你知道的越少,通过这次论文,我想我成长了很多,不只是磨练了我的知识厚度,也使我更加确定了我今后的目标:为今后的计算机事业奋斗。在此我要感谢我的指导老师——***老师,感谢您的指导,才让我有了今天这篇论文,您不仅是我的论文导师,也是我人生的导师,谢谢您!我还要感谢我的同学,四年的相处,虽然我未必记得住每分每秒,但是我记得每一个有你们的精彩瞬间,我相信通过大学的历练,我们都已经长大,变成一个有担当,有能力的新时代青年,感谢你们的陪伴,感谢有你们,这篇论文也有你们的功劳,我想毕业不是我们的相处的结束,它是我们更好相处的开头,祝福你们!我也要感谢父母,这是他们给我的,所有的一切;感谢母校,尽管您不以我为荣,但我一直会以我是一名农大人为荣。通过这次毕业设计,我学习了很多新知识,也对很多以前的东西有了更深的记忆与理解。漫漫求学路,过程很快乐。我要感谢信息与管理科学学院的老师,我从他们那里学到了许多珍贵的知识和做人处事的道理,以及科学严谨的学术态度,令我受益良多。同时还要感谢学院给了我一个可以认真学习,天天向上的学习环境和机会。即将结束*大学习生活,我感谢****大学提供了一次在**大接受教育的机会,感谢院校老师的无私教导。感谢各位老师审阅我的论文。5