20120416杭氧集团库存管理系统论文(郎欢臣)_第1页
20120416杭氧集团库存管理系统论文(郎欢臣)_第2页
20120416杭氧集团库存管理系统论文(郎欢臣)_第3页
20120416杭氧集团库存管理系统论文(郎欢臣)_第4页
20120416杭氧集团库存管理系统论文(郎欢臣)_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

电子科技大学成都学院本科毕业设计论文浙江机电职业技术学院计算机应用工程系毕业设计说明书目录摘要 I第1章 绪论 11.1概述 11.2背景 11.3意义 3第2章 系统平台和开发工具 42.1系统开发语言 42.1.1微软推出C# 42.2数据库理论 42.2.1SQLServer简介 42.3系统开发工具 52.3.1VisualStudio2008简介 52.3.2Windows窗体 5第3章 库存管理系统的设计及分析 73.1总体设计 73.1.1项目规划 73.1.2系统业务流程分析 83.1.3系统功能结构 93.2系统设计 103.2.1设计目标 103.2.2开发及运行环境 103.2.3数据库设计 10第4章 库存系统的实现与测试 124.1公共模块 124.1.1DataCon类 124.1.2DataOperate类 164.2主要功能模块 174.2.1系统登录 174.2.2供应商信息设置 174.2.3货物入库管理 184.2.4货物出库管理 194.2.5借货管理 204.2.6还货管理 214.2.7库存信息查询 22第5章 结论 245.1结论 24结束语这是什么东西 28参考文献 29致谢 30绪论概述库存管理是企业日常经营管理中十分重要的组成部分,传统的手工管理方式弊端很多,入库、统计、汇总处理时的工作量极其繁重,处理效率非常低,领导也无法及时了解企业资金占用的实际状况。越来越多的企业经营者意识到:只有采用信息化的管理系统,才能适应日益激烈的市场竞争。本人做的库存管理系统是一个Windows应用程序,它不仅可以有效管理企业的库存,还能够用图表分析某年某月的货物出入库情况,给企业管理者的经营决策提供依据,灵活的批量录入数据,使信息传递更快捷。系统采用人机交互方式,界面美观友好,信息查询灵活、方便,数据存储安全可靠。实施强大的后台监控功能。功能强大的出入库分析。实现各种查询,如定位查询、模糊查询等。实现货物进货分析与统计、货物出库明细记录等功能。对用户输入的数据,系统进行严格的数据检验,尽可能避免人为错误。系统最大限度地实现了易维护性和易操作性。背景当今企业竞争范围的扩大,要求在企业的各个方面加强管理,并要求企业有更高的信息化集成,要求对企业的整体资源进行集成管理,而不仅仅对制造资源进行集成管理。现代企业都意识到,企业的竞争是综合实力的竞争,要求企业有更强的资金实力,更快的市场响应速度。因此,信息管理系统与理论仅停留在对制造部分的信息集成与理论研究上是远远不够的。与竞争有关的物流、信息及资金要从制造部分扩展到全面质量管理、企业的所有资源(分销资源、人力资源和服务资源等)及市场信息和资源,并且要求能够处理工作流。另一方面,企业规模不断扩大。这就要求企业各部门之间统一计划,协调生产步骤,汇总信息,调配集团内部资源。这些既要独立,又要统一的资源共享管理。第三,信息全球化趋势的发展要求企业之间加强信息交流和信息共享。企业之间既是竞争对手,又是合作伙伴,信息管理要求扩大到整个供应链的管理。随着现代管理思想和方法的提出和发展,如JIT(JustlnTime——及时生产)、TQC(TotalQualityControl——全面质量管理)、OPT(OptimizedProductionTechnology——优化生产技术)及DRP(DistributionResourcePlanning——分销资源计划)等,又相继出现了MES(ManufacturingExecuteSystem——制造执行系统)、AMS(AgileManufacturingSystem——敏捷制造系统)等现代管理思想。MRP-II逐步吸收和融合其他先进思想来完善和发展自身理论。20世纪90年代MRP-II发展到了一个新的阶段:ERP(EnterpriseResourcePlanning——企业资源计划)。简要地说企业的所有资源包括3大流:物流、资金流和信息流。ERP也就是对这3种资源进行全面集成管理的管理信息系统。概括地说,ERP是建立在信息技术基础上,利用现代企业的先进管理思想,全面地集成了企业的所有资源信息,并为企业提供决策、计划、控制与经营业绩评估的全方位和系统化的管理平台。ERP系统是一种管理理论和管理思想,不仅仅是信息系统。它利用企业的所有资源,包括内部资源与外部市场资源,为企业制造产品或提供服务创造最优的解决方案,最终达到企业的经营目标。ERP理论与系统是从MRP-II发展而来的,它除继承了MRP-II的基本思想(制造、供销及财务)外,还大大地扩展了管理的模块,如多工厂管理、质量管理、设备管理、运输管理、分销资源管理、过程控制接口、数据采集接口、电子通信等模块。它融合了离散型生产和流程型生产的特点,扩大了管理的范围,更加灵活或“柔性”地开展业务活动,实时地响应市场需求。它还融合了多种现代管理思想,进一步提高了企业的管理水平和竞争力。因此ERP理论不是对MRP-II的否认,而是继承与发展。MRP-II的核心是物流,主线是计划。伴随着物流的过程,同时存在资金流和信息流。ERP的主线也是计划,但ERP已将管理的重心转移到财务上,在企业整个经营运作过程中贯穿了财务成本控制的概念。总之,ERP极大地扩展了业务管理的范围及深度,包括质量、设备、分销、运输、多工厂管理、数据采集接口等。ERP的管理范围涉及企业的所有供需过程,是对供应链的全面管理和企业运作的供需链结构的全面管理。意义库存管理系统是生产、计划和控制的基础。库存管理系统主要通过对仓库、入库、出库的管理,及时反映物资的仓储、流向情况,为生产管理和成本核算提供依据。并通过库存分析信息。同时为计划及决策人员提供实时准确的存货信息,以便及时调整生产,保证企业各项生产经营活动的顺利进行。通过库存管理信息化,可以全面监控企业商品的进、出、存等各种状况,满足现代企业的库存管理需要。浙江机电职业技术学院计算机应用工程系毕业设计说明书系统平台和开发工具系统开发语言微软推出C#这一章并非重点,就不要出现三层标题了。而且,你写系统平台和开发工具,却没有说明你或者这个系统为什么选择这个平台和这个工具,如果不写出为什么,这章就没有存在的理由。这一章并非重点,就不要出现三层标题了。而且,你写系统平台和开发工具,却没有说明你或者这个系统为什么选择这个平台和这个工具,如果不写出为什么,这章就没有存在的理由。C#(Csharp)是微软对这一问题的解决方案。C#是一种最新的、面向对象的编程语言。它使得程序员可以快速地编写各种基于Microsoft.NET平台的应用程序,Microsoft.NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。正是由于C#面向对象的卓越设计,使它成为构建各类组件的理想之选——无论是高级的商业对象还是系统级的应用程序。使用简单的C#语言结构,这些组件可以方便的转化为XML网络服务,从而使它们可以由任何语言在任何操作系统上通过Internet进行调用。最重要的是,C#使得C++程序员可以高效的开发程序,而绝不损失C/C++原有的强大的功能。因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。数据库理论SQLServer简介MicrosoftSQLServer2000是一个高性能的客户端/服务器结构的关系数据库管理系统(RDBMS,RelationalDatabaseManagementSystem)。SQLServer2000是为支持高容量的事务处理(比如在线订购录入、存货目录、记账或制造)以及数据仓库和决策支持系统(比如销售分析应用)而设计的。它运行在MicrosoftWindowsNT4或MicrosoftWindows2000Server上――基于使用Intel处理器的网络。SQLServer2000实际上有七种不同的可用版本:StandardEdition\EnterpriseEdition\PersonalEdition\DeveloperEdition\WindowsCEEdition\EvaluationEdition和MicrosoftDesktopEngine(MSDE)。SQLServer简介系统开发工具VisualStudio2008简介VisualStudio2008是一套完整的开发工具集,用于生成ASP.NETWeb应用程序、XMLWebServices、桌面应用程序和移动应用程序。VisualBasic、VisualC++、VisualC#和VisualJ#全都使用相同的集成开发环境(IDE),利用此IDE可以共享工具且有助于创建混合语言解决方案。另外,这些语言利用了.NETFramework的功能,通过此框架可使用简化ASPWeb应用程序和XMLWebServices开发的关键技术。Windows窗体Windows窗体用于在.NETFramework上创建MicrosoftWindows应用程序。此框架提供一个有条理的、面向对象的、可扩展的类集,使您能够开发功能丰富的Windows应用程序。另外,Windows窗体可作为多层分布式解决方案中的本地用户界面。Windows窗体是.NETFramework的智能客户端技术,.NETFramework是一组可简化常用应用程序任务(如读写文件系统)的托管库。使用类似VisualStudio的开发环境时,您可以创建Windows窗体智能客户端应用程序,以显示信息、请求用户输入以及通过网络与远程计算机通信。在Windows窗体中,“窗体”是向用户显示信息的可视图面。通常情况下,通过向窗体上添加控件并开发对用户操作(如鼠标单击或按下按键)的响应,生成Windows窗体应用程序。“控件”是显示数据或接受数据输入的相对独立的用户界面(UI)元素。当用户对窗体或其中的某个控件进行操作时,将生成事件。应用程序使用代码对这些事件进行响应,并在事件发生时处理事件。有关更多信息,请参见在Windows窗体中创建事件处理程序。Windows窗体包含可添加到窗体上的各式控件:用于显示文本框、按钮、下拉框、单选按钮甚至网页的控件。有关可在窗体上使用的所有控件的列表,请参见用于Windows窗体上的控件。如果现有控件不满足需要,Windows窗体还支持使用UserControl类创建自己的自定义控件。Windows窗体具有丰富的UI控件,可模拟象MicrosoftOffice这样的高端应用程序中的功能。使用ToolStrip和MenuStrip控件时,可以创建包含文本和图像、显示子菜单及承载其他控件(如文本框和组合框)的工具栏和菜单。使用VisualStudio的具有拖放功能的Windows窗体设计器,可以轻松创建Windows窗体应用程序。只需使用光标选择控件并将控件添加到窗体上所需的位置即可。设计器提供类似网格线和对齐线的工具,可简化对齐控件的操作。无论使用VisualStudio还是在命令行上编译,都可以使用FlowLayoutPanel、TableLayoutPanel和SplitContainer控件以较短的时间创建高级窗体布局。最后,如果您必须创建自己的请读一下你自己的文章,这不是写教科书自定义用户界面元素,则可使用System.Drawing命名空间,其中包含了大量的类,可供您选择用于直接在窗体上呈现线条、圆和其他形状。请读一下你自己的文章,这不是写教科书浙江机电职业技术学院计算机应用工程系毕业设计说明书库存管理系统的设计及分析没有需求的分析,就直接开始系统设计,那么做出来的东西是为了什么呢?文章必须要能自圆其说。我觉得你应该把你的第2章内容并入第1章,并进行精简。然后,第2章写成需求分析,分析一下杭氧这个单位的库存管理的基本业务模型,可以画点业务的流程图之类的,并进行文字说明需要的库存管理是什么样的。然后这里第3章对业务进行抽象,把它化成程序设计的各种模块和操作没有需求的分析,就直接开始系统设计,那么做出来的东西是为了什么呢?文章必须要能自圆其说。我觉得你应该把你的第2章内容并入第1章,并进行精简。然后,第2章写成需求分析,分析一下杭氧这个单位的库存管理的基本业务模型,可以画点业务的流程图之类的,并进行文字说明需要的库存管理是什么样的。然后这里第3章对业务进行抽象,把它化成程序设计的各种模块和操作总体设计项目规划库存管理系统主要由基本档案、货物管理、查询统计、系统维护和帮助等模块组成,具体规划如下。基本档案模块该模块主要用于实现货物档案设置、供应商设置和仓库设置等功能。货物管理模块该模块主要用于实现货物的入库管理、出库管理、借货管理、还货管理和盘点管理等功能。查询统计模块该模块主要用于实现货物的库存查询、入库查询、出库查询、借出查询、归还查询、警戒查询和出入库货物的年统计、月统计等功能。该模块主要用于实现用户管理、更改密码、权限设置、关于本系统、重新登录和退出系统等功能。系统业务流程分析见上面的批注。建议这个业务流程放入需求分析。见上面的批注。建议这个业务流程放入需求分析。系统登录系统登录仓库设置是否登录借出货物供货商设置仓库信息货物入库入库货物统计盘点货物归还货物出库货物统计货物出库是否系统业务流程图系统功能结构库存管理系统库存管理系统帮助查询统计基本档案货物管理入库管理出库管理借货还货盘点管理仓库设置货物档案设置供货商设置警戒查询出库查询出入库货物月统计表面黄肌出入库货物年统计货物归还查询货物借出查询入库查询库存查询退出系统重新登录关于本系统用户管理权限设置更改密码系统功能模块系统设计设计目标本系统属于小型的数据库管理系统,可以对中小型企业库存进行有效的管理。通过本系统达到以下目标:灵活的批量录入数据,使信息传递更快捷。系统采用人机交互方式,界面美观友好,信息查询灵活、方便,数据存储安全可靠。实施强大的后台监控功能。功能强大的出入库分析。实现各种查询,如定位查询、模糊查询等。实现货物进货分析与统计、货物出库明细记录等功能。对用户输入的数据,系统进行严格的数据检验,尽可能避免人为错误。系统最大限度地实现了易维护性和易操作性。开发及运行环境系统开发平台:MicrosoftVisualStudio2005。系统开发语言:C#。数据库系统:SQLServer2000。运行平台:WindowsXP(SP2)/Windows2000(SP4)/WindowsServer2003(SP1)。运行环境:Microsoft.NETFrameworkSDKv2.0。数据库设计本系统采用SQLServer2005作为后台数据库,数据库名称为db_SMS,其中包含9张数据表。分别是:借出货物表(tb_BorrowGoods)、盘点货物表(tb_Check)、货物信息表(tb_GoodsInfo)、货物入库表(tb_InStore)、货物出库表(tb_OutStore)、供应商信息表(tb_Provider)、归还货物表(tb_ReturnGoods)、仓库信息表(tb_Storage)、用户信息表(tb_User)。部分数据表的E-R图:货物出入库价格货物出入库价格货物规格货物数量仓库名称货物名称货物编号货物信息表货物信息表E-R图货物入库表货物入库表入库编号货物编号货物名称仓库名称货物规格入库日期货物入库表E-R图还货数量还货数量货物规格货物名称仓库名称借货编号还货编号货物归还表货物归还表E-R图浙江机电职业技术学院计算机应用工程系毕业设计说明书库存系统的实现与测试公共模块在开发项目中以类的形式来组织、封装一些常用的方法和事件,不仅可以提高代码的重用率,而且也方便代码的管理。本系统中创建了两个公共类DataCon.cs和DataOperate.cs,其中DataCon类主要用来访问SQLServer数据库并且执行基本的SQL语句,DataOperate类主要用来实现调用SQL存储过程和执行数据验证等功能。在程序开发时,窗体只需调用相应方法即可。DataCon类DataCon类在命名空间区域引用System.Data.SqlClient命名空间,用来连接数据库和进行有并数据库的操作。主要代码如下:usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Data;usingSystem.Data.SqlClient;namespaceSMS.BaseClass{classDataCon{……自定义方法(getcon()、getcom(stringM_str_sqlstr)等)}}论文不要出现这样的代码,没人看你的代码的。建议多点流程图。需要用代码说明,用伪代码就行了,不要直接拷贝你的程序,尤其是不该出现那么多using语句。论文不要出现这样的代码,没人看你的代码的。建议多点流程图。需要用代码说明,用伪代码就行了,不要直接拷贝你的程序,尤其是不该出现那么多using语句。getcon方法是返回值为SqlConnection类型的自定义方法,它主要用来建立数据库连接,其实现代码如下:#region建立数据库连接///<summary>///建立数据库连接.///</summary>///<returns>返回SqlConnection对象</returns>publicSqlConnectiongetcon(){stringM_str_sqlcon="DataSource=(local);Database=db_SMS;Userid=sa;PWD=";SqlConnectionmyCon=newSqlConnection(M_str_sqlcon);returnmyCon;}#endregiongetcom方法为无返回值类型的自定义方法,它主要用来执行SQL语句,其实现代码如下:#region执行SqlCommand命令///<summary>///执行SqlCommand///</summary>///<paramname="M_str_sqlstr">SQL语句</param>publicvoidgetcom(stringM_str_sqlstr){SqlConnectionsqlcon=this.getcon();sqlcon.Open();SqlCommandsqlcom=newSqlCommand(M_str_sqlstr,sqlcon);sqlcom.ExecuteNonQuery();sqlcom.Dispose();sqlcon.Close();sqlcon.Dispose();}#endregiongetds方法用来执行SQL语句,并返回一个DataSet类型的数据集对象。在此方法中,首先调用本类中的getcon()方法实现数据库连接,然后使用SqllDataAdapter类对象填充数据集,其实现代码如下:#region创建DataSet对象///<summary>///创建一个DataSet对象///</summary>///<paramname="M_str_sqlstr">SQL语句</param>///<paramname="M_str_table">表名</param>///<returns>返回DataSet对象</returns>publicDataSetgetds(stringM_str_sqlstr,stringM_str_table){SqlConnectionsqlcon=this.getcon();SqlDataAdaptersqlda=newSqlDataAdapter(M_str_sqlstr,sqlcon);DataSetmyds=newDataSet();sqlda.Fill(myds,M_str_table);returnmyds;}#endregiongetread方法中,首先使用SqlCommand类对象执行SQL语句,然后调用SqlCommand类的ExecuteReader方法生成SqlDataRerder类的一个对象,并返回该对象。getread方法实现代码如下:#region创建SqlDataReader对象///<summary>///创建一个SqlDataReader对象///</summary>///<paramname="M_str_sqlstr">SQL语句</param>///<returns>返回SqlDataReader对象</returns>publicSqlDataReadergetread(stringM_str_sqlstr){SqlConnectionsqlcon=this.getcon();SqlCommandsqlcom=newSqlCommand(M_str_sqlstr,sqlcon);sqlcon.Open();SqlDataReadersqlread=sqlcom.ExecuteReader(CommandBehavior.CloseConnection);returnsqlread;}#endregionDataOperate类DataOperate类首先在命名空间区域添加如下命名空间,并声明DataCon类的一个对象,通过该类对象调用类中的功能方法。实现代码如下:usingSystem.Drawing;usingSystem.IO;usingSystem.IO.Compression;usingSystem.Drawing.Text;usingSystem.Drawing.Drawing2D;usingSystem.Drawing.Imaging;usingSystem.Text.RegularExpressions;namespaceSMS.BaseClass{classDataOperate{DataCondatacon=newDataCon();//声明DataCon类的一个对象,以调用其方法……自定义方法(cboxBind()、drawPic()、compressFile()等)}}DataOperate类还包括以下方法:cboxBind方法无返回值,主要用来执行SQL语句,并将执行结果绑定到ComboBox控件上。drawPic方法无返回值,它主要用来根据SQL语句的查询结果在窗体中绘制饼图。compressFile方法无返回值,主要用来执行文件压缩操作。validateNum方法无返回值,它主要用来验证输入字符串是否为数字。UserLogin方法返回值类型为int类型。在该方法中,首先使用SqlCommand类对象调用proc_Login存储过程,然后使用Parameters类的Add方法给该存储过程的参数赋值,最后调用SqlCommand类对象的ExecuteNonQuery方法执行该存储过程,并返回一个int类型的值。主要功能模块系统登录系统登录主要用于对进入库存管理系统的用户进行安全性检查,以防止非法用户进入该系统。在登录进,只有合法的用户,才可以进入该系统,同时,系统还根据登录用户的级别,给予其不同的操作权限。系统登录供应商信息设置库存货物的进货渠道是供应商,为了使系统操作员使用方便,在进行出入库操作之前,首先应该对供应商信息进行设置。在供应商信息设置窗体中,可以添加、修改和删除供应商信息。添加和修改供应商信息进,使用了Regex类的IsMatch方法自定义正则表达式,来验证供应商的电话号码和传真号码是否合法。供应商信息设置货物入库管理货物入库管理是库存管理系统中的一个重要功能,它主要实现货物的入库登记功能。在货物入库时,不仅需要记录货物名称、货物数量、进货价格和货物种类等信息,还需要修改货物信息表中货物的库存数量,本系统中该功能是通过触发器trig_inGoods实现的。货物入库管理货物出库管理货物出库管理主要完成货物的出库功能。用户从仓库提取货物后,对应货物的库存数量也相相应减少,因此货物出库管理不仅需要记录用户提货的数量和种类等信息,还需要修改货物信息表中货物的库存数量,本系统中该功能是通过用触发器trig_outGoods实现的。货物出库管理借货管理借货管理是库存管理系统中的日常业务,在进行货物借出操作时,货物的借出数量不能大于货物的库存数量。另外,管理员还可以对货物借出信息进行删除。本系统实现货物借出功能时,首先使用自定义的正则表达式判断用户输入的货物借出数量是否为数字,然后判断该数量是否大于货物的库存数量,如果大于,弹出信息提示框,否则执行货物借出操作。借货管理还货管理还货管理就是对所借货物进行归还操作。本系统在实现货物归还功能时,首先判断输入的归还数量是否大于该货物的借出数量,如果大于则弹出提示信息,否则执行还货操作,同时,调用触发器trig_reGoods和rig_updateGInfo更新货物借出表和货物信息表中的相关记录。还货管理库存信息查询库存信息查询主要是根据用户选择的条件和输入的查询关键字查询货物的库存信息,仓库管理人员可以通过库存查询及时了解指定货物在库存中的详细情况。库存信息查询浙江机电职业技术学院计算机应用工程系毕业设计说明书结论结论部分全部重写。结论只要说明你做了个什么东西,和一般的库存管理系统有什么区别,或者这个库存管理有什么特点。你的系统实现了什么,达到了什么目的,有什么意义。最后少量提可以完善的方面。结论不要超过一页纸。结论部分全部重写。结论只要说明你做了个什么东西,和一般的库存管理系统有什么区别,或者这个库存管理有什么特点。你的系统实现了什么,达到了什么目的,有什么意义。最后少量提可以完善的方面。结论不要超过一页纸。结论在做一个系统之前,一定要先弄清楚开发该系统的目的是什么,并将其业务流程图画出来,然后根据所做的需求分析对系统进行可行性分析、总体设计和系统设计,在这些前期工作完善之后,最后进行编码,这时你将会发现自己的编程思路非常明确。程序分好几个模块,毕业设计一共有12周的时间,就要先把做每个模块的时间安排好,这样,自己可以很明确程序的完成度。在做程序的过程中也遇到了不少问题,涉及到C#的一些语法和数据库的多张表,发现自己好多不懂,然后自己先去参考书本上的资料,实在不行的了,就只有有请教别人帮忙了,觉得在调试程序的时候是最麻烦了,会出现很多问题,当你把一个问题解决了,之后会出现其他的问题,这刻有得去一行一行地看代码,去测试,也是考验一个人耐心的时候,同时不能马虎,有时候也就多了一个点,检查了半天,都没发现,真的是细节决定成败!另外,在开发数据库应用程序时,如果遇到涉及多个表操作的问题,可以通过使用触发器来完成。当有货物入库时,程序需要判断该在货物信息表中是否已存在,如果已经存在,则更新对应货物的库存数量,否则在货物信息表中插入一条新记录。实现该功能时,如果在后台编写代码,由于涉及到两个表中的多个字段,实现起来非常复杂,这里通过一个trig_inGoods触发器来实现该功能。trig_inGoods触发器代码如下:CREATETRIGGERtrig_inGoodsONdbo.tb_InStoreFORinsertASifexists(selectGoodsIDfrominsertedwhereGoodsIDin(selectGoodsIDfromtb_GoodsInfo))beginifexists(selectStoreNamefrominsertedwhereStoreNamein(selectStoreNamefromtb_GoodsInfo))beginupdatetb_GoodsInfosetGoodsNum=GoodsNum+(selectGoodsNumfrominserted)whereGoodsID=(selectGoodsIDfrominserted)andGoodsName=(selectGoodsNamefrominserted)andStoreName=(selectStoreNamefrominserted)andGoodsSpec=(selectGoodsSpecfrominserted)endelsebegininsertintotb_GoodsInfo(GoodsID,GoodsName,StoreName,GoodsSpec,GoodsUnit,GoodsNum,GoodsInPrice,GoodsOutPrice)selectGoodsID,GoodsName,StoreName,GoodsSpec,GoodsUnit,GoodsNum,GoodsPrice,GoodsPrice*110/100frominsertedendendelsebegininsertintotb_GoodsInfo(GoodsID,GoodsName,StoreName,GoodsSpec,GoodsUnit,GoodsNum,GoodsInPrice,GoodsOutPrice)selectGoodsID,GoodsName,StoreName,GoodsSpec,GoodsUnit,GoodsNum,GoodsPrice,GoodsPrice*110/100frominsertedend第一次调试程序时,执行货物出库操作,货物信息表中只有最后一条记录更新,其它记录无论出库数量多少,在货物信息表中的库存数量都不会发生变化。经过分析,发现该错误由于在trig_outGoods触发器中,给声明的变量赋值时没有设置条件,因此变量的值总是货物信息表中最后一条记录的相关值。修改后的trig_outGoods触发器代码如下:CREATETRIGGERtrig_outGoodsONdbo.tb_OutStoreFORinsert,deleteASdeclare@GoodsNamevarchar(50),@StoreNamevarchar(100),@GoodsSpecvarchar(50),@GoodsNumbigintselect@GoodsName=GoodsName,@StoreName=StoreName,@GoodsSpec=GoodsSpec,@GoodsNum=GoodsNumfromtb_GoodsInfowhereGoodsName=(selectGoodsNamefrominserted)andStoreName=(selectStoreNamefrominserted)andGoodsSpec=(selectGoodsSpecfrominserted)if(@GoodsName=(selectGoodsNamefrominserted)and@StoreName=(selectStoreNamefrominserted)and@GoodsSpec=(selectGoodsSpecfrominserted))beginif(@GoodsNum>(selectGoodsNumfrominserted))beginupdatetb_GoodsInfosetGoodsNum=@GoodsNum-(selectGoodsNumfrominserted)whereGoodsName=(selectGoodsNamefrominserted)andStoreName=(selectStoreNamefrominserted)andGoodsSpec=(selectGoodsSpecfrominserted)endif(@GoodsNum<=(selectGoodsNumfrominserted))begindeletefromtb_GoodsInfowhereGoodsName=(selectGoodsNamefrominserted)andStoreName=(selectStoreNamefromi

温馨提示

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

评论

0/150

提交评论