- 881.87 KB
- 2022-05-16 18:34:41 发布
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
沈阳师范大学学士学位论文题 目:仓库管理系统的设计与实现-I-
【摘要】随着现代工业的发展,计算机信息管理系统越来越受到企业重视。本文主要分析了库存管理系统的一些基本功能和组成情况,包括系统的需求分析、系统结构,功能模块划分以及数据库模式分析等,重点对应用程序的实际开发实现作了介绍。达到了数据的一致性和安全性,且应用程序功能完备,符合了库存管理系统作为典型的信息管理系统(MIS)的要求。同时简单介绍了VisualC++编程环境和SQL数据库管理系统的功能特点,库存管理系统是企业物流管理中不可或缺的一部分。使用计算机对产品仓库信息进行管理,具有着人工管理无法比拟的优点,它检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等,可减少更多的人力物力,这些都能够极大地提高货品库存的管理效率,也是企业库存管理科学化、正规化,与世界接轨的重要条件。因此,开发一个仓库管理系统是很有必要的,具有其特有的技术意义和管理意义。【关键词】仓库管理;信息管理;数据库;VC++;产品管理-42-
StorageManagementSystemdesignandrealization【Abstract】Withthedevelopmentofmodernindustry,theinformationmanagementsystemofthecomputerispaidmoreandmoreattentionbyenterprises.Thisarticlemainlyanalyzessomebasicfunctionsandconstitutionofthestoragemanagementsystem,includingthesystematicdemand,structure,thefunctionmoduledivisionandthedatabasemodeanalysis,etc.Especiallyintroducestheactualdevelopmentoftheapplicationprogramforemphasis.Thissystemguaranteedtheconsistencyandsecurityofthedata,andtheapplicationprogramfunctionsarecomplete,andmeetingtherequirementofthestoragemanagementsystemastherequestforthetypicalinformationmanagementsystem(MIS).Meanwhile,itbrieflyintroducedthefunctioncharacteristicsofVisualC++programmingenvironmentandSQLdatabasemanagementsystem.Storagemanagementsystemisanimportantpartthatshouldnotbeneglectedincorporationmanagement.Usingacomputertocontrolinformationofthewarehousewhichhasadvantagesthatartificialmanagementthatcan’tcatchupwith.Itisquicklyinspectional,easytosearch,thecredibilityishigh,anddepositcapacityishigh,confidentialitygood,Lifespanlong,andthecostislowECT,andcanalsoreducemoremanpowerandmaterialresource.Allofthesemanagementscaninfinitelyraisethemanagementefficiencyofgoodsstockandalsoisascientificandregularturn,andbeinlinewithworldofimportantconditionofthestoragemanagement.Therefore,developingastoragemanagementsystemisnecessary.Ithasspecialtechniqueandmanagesmeaning.【Keywords】StorageManagementSystem;InformationManagement;Database;VC++;ProductionManagement-42-
目录引言1第一章绪论21.1管理信息系统的概述21.2仓库管理系统2第二章数据库理论基础及应用系统开发工具62.1SQL语言介绍62.2应用系统开发工具72.3数据表的设计9第三章仓库管理系统需求分析及总体设计153.1系统需求分析153.2系统功能描述163.3系统功能模型183.4系统设计的E-R图183.5系统流程分析203.6系统用例图20第四章详细设计224.1主界面设计224.2基本信息管理模块22第五章备份和还原数据库295.1规划数据库的备份和还原295.2数据库的备份295.3还原数据库31结论33致谢34参考文献35-42-
附录Ⅰ数据库建表语句36附录Ⅱ仓库管理系统部分程序代码41-42-
引言当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛应用于信息处理系统的环境。计算机最大的好处在于利用它能够进行信息管理,使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。仓库管理系统是一个企事业单位不可缺少的一部分,它的内容对于企业的决策者和管理者来说都是至关重要的,因此,仓库管理系统应该能够为用户提供充足的信息和快捷的查询手段,但一直以来人们使用传统的人工方式管理仓库,这种管理方式存在着许多缺点,诸如效率低,保密性差等,而且时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。作为计算机应用的一部分,使用计算机对产品仓库信息进行管理,具有着人工管理无法比拟的优点,它检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等,可减少更多的人力物力,这些都能够极大地提高货品仓库的管理效率,也是企业仓库管理科学化、正规化,与世界接轨的重要条件。因此,开发一个仓库管理系统是很有必要的,具有其特有的技术意义和管理意义。第一章绪论1.1管理信息系统的概述管理信息系统(简称MIS)是在管理科学、系统科学、计算机科学等的基础上发展起来的综合性边缘科学。在21世纪信息高速发展的时代中,管理信息系统具有很重要的作用,它的预测和辅助决策的功能,即利用现代管理的决策和支持。-42-
管理信息系统是一个由人、机(计算机)组成的能进行管理信息的收集、传递、存储、加工、维护和使用的系统。它能观测企业或组织的各种运动情况,利用过去的数据预测未来;从全局出发辅助决策;利用信息控制企业或组织行为,帮助其实现长远的规划目标。简言之,管理信息系统是一个以计算机为工具,具有数据处理、预测、控制和辅助决策功能的信息系统。管理信息系统是一个人机系统,同时它又是一个一体化集成系统。管理信息系统是信息系统的一个子系统,它以计算机技术、通讯技术和软件技术为技术基础,同时将现代管理理论、现代管理方法及各级管理人员融为一体,最终为某个组织整体的管理与决策服务,是由人和计算机组成的能进行管理信息的收集、传递、存储、加工、维护和使用的系统。管理信息系统的基本结构可以概括为四大部件,即信息源、信息处理器、信息用户和信息管理者。因此,一个成功的管理信息系统应该具有可靠的硬件、实用的软件、强有力的现代化管理水平。具体讲,管理信息系统的三大支柱是:计算机网络、数据库和现代化的管理,这三打支柱称为管理信息系统的扩展部件。1.2仓库管理系统企业的仓库管理往往是很复杂的,烦琐的。由于所掌握的物资种类众多,入库、出库等操作的方法各有差异,各类统计计划报表繁多,因此仓库管理需要系统、规范的管理手段。传统的仓库管理存在诸多弊病。因为进行信息管理的方式主要是基于文本、表格等纸介质的手工处理,一般的存储情况是记录在账本上的。仓库的工作人员和管理员也只是当时记得比较清楚,时间一长,如果再要进行查询,就得在众多的资料中翻阅查找了,这样造成费时、费力,如要对很长时间以前的货品进行更改就更加困难了。对于货品的出入库情况的统计和核实采用对账本的人工检查,对管理者的管理权限等不受约束,任何人都可查看,还容易引起资料外泄。另外,数据信息处理工作量大,容易出错,由于数据繁多,容易丢失,且不易查找。因此物资管理必须实现计算机化,而且必须根据企业的具体情况制定相应的方案。根据当前的企业管理体制,一般仓库管理系统,总是根据所掌握的物资类别,相应分成几个科室来进行物资的计划,订货,核销托收,验收入库,根据企业各个部门的需要来发放物资设备,并随时按期进行库存盘点,根据企业领导和自身管理的需要按月、季度或年来进行统计分析,产生相应报表。面对庞大的产品信息量,如何有效地管理仓库产品,对这些企业来说是非常重要的,仓库管理的重点是销售信息能否及时反馈,从而确保企业运行效益。而仓库管理又涉及入库、出库的产品、经办人员及客户等方方面面的因素,如何管理这些信息数据,是一项复杂的系统工程,充分考验着仓库管理员的工作能力,工作量的繁重是可想而知的。-42-
使用仓库管理系统,既可以对信息进行规范管理、科学统计和快速查询,减少管理方面的工作量,同时又能调动广大员工的工作积极性,提高企业的生产效率。仓库作为一总货品资源的集散地,货品的种类繁多,包含很多的信息数据的管理。据调查得知,以前仓库进行信息管理的方式主要是基于文本、表格等纸介质的手工处理,对于货品的出入库情况的统计和核实等往往采用对账本的人工检查,对管理者的管理权限等不受约束,任何人都可查看,这样容易引起资料外泄。另外,数据信息处理工作量大,容易出错,由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统、规范的信息管理手段。而且,一般的存储情况是记录在账本上的,仓库的工作人员和管理员也只是当时记得比较清楚,时间一长,如果再要进行查询,就得在众多的资料中翻阅查找了,这样造成费时、费力,如要对很长时间以前的货品进行更改就更加困难了。因此,很有必要建立一个仓库管理系统,使货品管理工作规范化,系统化,程序化。提高信息处理的速度和准确性。1.2.1国内外现状与发展趋势现在国内外对此类系统的开发与研究也是很有实用性的,基本上能满足各企业的自身特点,来进行仓库方面的管理,同时,改类系统又都在不断地深入与发展,来适用更多的企业,一般都能运用于各个企业的仓库管理,但是都没有针对大众的广泛应用,只能运用某个企业或单位,这一点还有待于今后的进一步开发与实践。今后此类软件将会向条码仓库管理系统发展,现阶段,伴随物流及管理信息化、网络化的发展,应用条码技术进行仓库管理、实现仓库作业自动化,将是一个必然的发展趋势,也是需要迫切解决的一个现实问题。随着信息化技术的不断提高和应用的日渐普及,更多的商品拥有自己的条码,而且,使用条码化工作代替传统作业模式,减少了手工输入,这样不但提高了作业效率,还能确保资料正确,并减少因人为失误所造成的损失。1、技术应用于仓库管理是实现仓库管理自动化的有效途径仓库品种多,数量大。因此,要实现收发作业的快速、准确、高效,仓储管理自动化势在必行。而实现管理自动化的“瓶颈”则是产品信息的采集、输入。传统手工作业方式,在信息采集量加大的情形下,半因信息不能及时的反馈,给收发作业造成一定的困难。利用仓库管理系统,使用仓库信息管理系统进行作业,不仅可提高效率,降低作业强度,也将大大提高产品收发作业准确率,进而实现仓库管理的全面自动化。2、技术应用于仓库管理对提高仓库作业效率有重要作用-42-
使用仓库管理信息系统,用于产品收、发、保管等全过程控制管理,不仅可改变信息采集的传统手工作业方式,降低作业强度,还可避免由此造成的各种差错,提高作业效率和科学管库水平。入库时,通常保管员根据产品上所反映出的册序号、出厂期、生产厂家、单价、封存(保管)期等信息,进行实物点验,同时信息录入到管理信息系统;出库时,保管员根据航材发付单内容,完成信息录入;清库盘点时,保管员可进行数质量等内容核对,并将采集的信息录入管理系统中进行自动盘点,生成清库对帐单等,完成清库盘点作业。3、仓库管理是完善产品保障信息网络的重要手段储存产品信息是产品保障信息网络的重要组成部分,是做好产品供应保障工作的基础。产品保障信息网是实现物资储运全过程可视化的前提。目前,有些仓库内部局域网已经建成并投入使用,并与业务主管部门实现了信息沟通,仓库保障信息网在日常航材保障工作中实现了信息沟通,仓库保障信息网在日常产品保障工作中的作用日趋明显。同时,在软件系统的研发过程中,将会融入一种EPR的企业管理思想。大量的研究与实践已经充分表明,ERP作为一种现代企业管理的思想和方法,将其大力地推广应用就是有效的促使我国企业管理朝着更加科学化、合理化和规范化方向发展的一种具体方法和途径。另外,仓库管理的信息化和可视化,每个企业将会拥有两个仓库,一个是装满货物的仓库,还有一个就是管理系统里的数据库,对上万种货物分别编码,使其成为计算机可识别的语言,形象地说,货架上的号码就是货物的地址,从而避免了货物的分拣和提取时的翻箱倒柜式的查找。1.2.2仓库管理系统研究背景与意义随着我国经济的飞速发展,各种类型规模的公司企业迅速崛起,许多从事生产和经营管理的企业都有自己生产和销售的产品,而这些产品都需要储存在仓库中,对于每个企业来说,随着企业规模的不断扩大,产品数量的急剧增加,所生产产品的种类也会不断地更新与发展,有关产品的各种信息量也会成倍增长。面对庞大的产品信息量,如何有效地管理仓库产品,对这些企业来说是非常重要的,仓库管理的重点是销售信息能否及时反馈,从而确保企业运行效益。而仓库管理又涉及入库、出库的产品、经办人员及客户等方方面面的因素,如何管理这些信息数据,是一项复杂的系统工程,充分考验着仓库管理员的工作能力,工作量的繁重是可想而知的,所以这就需要由仓库管理系统来提高仓库管理工作的效率,这对信息的规范管理、科学统计和快速查询,减少管理方面的工作量,同时对于调动广大员工的工作积极性,提高企业的生产效率,都具有十分重要的现实意义。-42-
第二章数据库理论基础及应用系统开发工具2.1SQL语言介绍2.1.1SQL基础SQL(StructuredQueryLanguage,结构查询语言)是一个功能强大的数据库语言。SQL通常使用于数据库的通讯。ANSI(美国国家标准学会)声称,SQL是关系数据库管理系统的标准语言。SQL语句通常用于完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据。使用SQL的常见关系数据库管理系统有:Oracle、Sybase、MicrosoftSQLServer、Access、Ingres等等。虽然绝大多数的数据库系统使用SQL,但是它们同样有它们自立另外的专有扩展功能用于它们的系统。但是,标准的SQL命令,比如"Select"、"Insert"、"Update"、"Delete"、"Create"和"Drop"常常被用于完成绝大多数数据库的操作[1]。SQL语言的突出优点就是它的非过程化、统一,而且还是所有关系数据库的公共语言。SQL语言一次处理一个记录,对数据提供自动导航,它允许用户在高层的数据结构上工作,而部队单个记录进行操作,可操作记录集,所有SQL语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。同时,它不要求用户指定对数据的存放方法,这种特性使用户更易集中精力于要得到的结果;所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段,查询优化器知道存在什么索引,在哪儿使用索引合适,而用户则从不需要知道表是否有索引、有什么类型的索引。作为统一的语言,SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、应用程序员、决策支持系统人员及许多其它类型的终端用户[2]。-42-
2.1.2SQL语句SQL语句概括起来可以分为数据操作语言,数据定义语言和数据控制语言几大组,它们用于对数据库数据的查询,修改和更新,是一种完备的数据处理语言。主要用到的数据操作语言主要是:SELECT:用于数据检索;INSERT:用于增加数据到数据库;UPDATE:用于从数据库中修改现存的数据;DELETE:用于从数据库中删除数据[3]。2.2应用系统开发工具2.2.1VisualC++简介及实现原理MicrosoftVisualC++作为MicrosoftVisualStudio的重要组成部分,包含了迄今为止功能最为强大的基于Windows的应用框架,在同类产品中处于领先地位。利用它所继承的一系列强大功能,用户就能够开发出实用高效的应用程序。Visual,其英文含义是“可视的”,这里是指在用VisualC++进行开发的过程中对应用程序界面(GUI)的开发,一般是使用开发工具所提供的现成的组件,利用所见即所得的方式完成程序界面的设计(亦通常所说的可视化编程),因此大大减轻可程序设计人员的劳动强度,同时也提高了开发效率。VisualC++的最大的特色是对面向对象技术的支持,它利用类把大部分与用户界面设计有关的WindowsAPI函数封装起来,通过MFC(MicrosoftFoundationClass)类库的方式提供给开发人员使用,极大的提高了软件重要性[4]。另外,VisualC++内带的AppWizard可以帮助MFC类库的用户自动生成一个运行程序框架,即一个空的不能做任何事的应用程序,而用户只需要对该应用程序框架进行扩充和添加代码就可以得到一个结构优良的应用程序。VisualC++提供的ClassWizard可以使用户方便而有效地使用和管理MFC类库,它允许用户对AppWizard应用程序产生的类进行加工、编辑甚至扩充[5]。VisualC++作为一个功能强大的软件开发工具,它对应用程序开发的支持是多方面的,它可以为以下程序开发提供支持:●利用MFC的32位Windows应用程序;●使用C语言SDK编写的Windows程序;●编写控制台程序;-42-
●编写ActiveX控件;●编写动态连接库(DLLS);●开发数据库应用程序;●开发Internet应用程序;●开发多媒体应用程序。简而言之,VisualC++的优点是:●与操作系统配合紧密、不存在与操作系统不兼容的问题;●功能强大,用途广泛,不仅可以编写普通的应用程序,还能很好的进行系统软件及软件及通信软件的开发;●操作简便,熟练以后,开发效率将成倍提高。2.2.2数据访问组件在使用VisualC++开发数据库应用程序的时候,会经常使用数据库访问控件。这些控件包括:● Data控件;● ADOData控件;● DataList控件/DataCombo控件;● DataGrid控件;● MSChart控件。下面将分别对这些控件的主要功能及使用方法进行介绍[6]。2.2.2.1Data控件Data控件是VisualC++中最基本的数据库操作控件。它使用Recordset对象提供对存储在数据库中数据的访问。Data控件允许从一个记录移动到另一个记录,并显示和操纵来自被连接控件的记录的数据。许多其他的数据库操作控件都需要Data控件或类似的数据源控件(比如ADOData控件)。Data控件可以执行大部分数据库访问操作,但是它并不能显示数据库中数据的内容。Data控件通常需要与其他控件结合使用。这些与Data控件结合使用的控件,可以称之为“数据觉察控件”。因为程序员无需编写任何代码,就可以在这些控件中显示当前记录的数据。当Data控件中当前记录发生变化时,数据觉察控件的内容也会随之发生变化。-42-
当与Data控件相连接时,DataList、DataCombo、DataGrid和MSHFlexGrid控件都能管理记录集合。所有这些控件都允许一次显示或操作几个记录。内部的Picture、Label、TextBox、CheckBox、Image、OLE、ListBox和ComboBox控件也是数据觉察的,能和由Data控件管理的Recordset对象的某个字段相连接。2.2.2.2ADOData控件ADOData控件与内部Data控件以及RemoteData控件(RDC)相似。用户可以使用ADOData控件快速地创建一个到数据库的连接。2.2.2.3DataList控件/DataCombo控件DataList控件是一个数据绑定列表框,它可以自动地由一个附加数据源中的一个字段充填,并且可选择地更新另一个数据源中一个相关表的一个字段。DataCombo控件的功能与DataList控件完全相同,只不过DataCombo控件是一个组合框。2.2.2.4DataGrid控件在许多情况下,需要使用表格形式来显示数据库中的数据。这时就要借助于DaatGrid控件。用户可以设置DataGrid控件的DataSource属性为一个ADOData控件,从而将ADOData中的数据自动地填充到DataGrid表格中。这个DataGrid控件实际上是一个固定的列集合,每一列的行数都是不确定的。2.2.2.5MSChart控件MSChart控件的功能是以图形方式显示数据的图表。这会使枯燥的数据变得更加生动直观,增加了程序的实用价值。MSChart控件支持一下特性:1、真三维表示;2、支持所有主要的图表类型;3、数据网络成员支持随机数据,数据数组。2.3数据表的设计2.3.1概念结构设计这一设计阶段是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。各个实体的E-R图及其关系描述如下图2-1、2-2、2-3所示。-42-
2.3.2创建数据库在设计数据库之前,首先要创建一个数据库。此数据库包含系统中所有用到的数据表。创建数据库代码为:REATEDATABASEStockGO客户信息管理添加客户修改客户信息删除客户查看客户信息图2-1客户信息管理E-R图仓库信息管理添加仓库信息修改仓库信息删除仓库信息查看仓库信息图2-2仓库管理信息E-R图用户信息管理管理员用户普通用户-42-
图2-3用户信息管理E-R图2.3.3数据库的逻辑结构设计数据库stock包含以下8个表:客户信息表Client、仓库信息表Storehouse、用户信息表Users、产品类别表ProType、产品信息表Product、入库操作信息表StoreIn、出库操作信息表TakeOut和库存产品信息表ProInStore。各个表的具体信息如下:1.客户信息表Client客户信息表Client主要是用来保存客户信息,表Client结构如图表2-1所示。表2-1客户信息表Client编号字段名称数据结构说明1Cidint客户编号2Cnamevarchar(50)客户名称3Ctypetinyint客户类型,1——供应商、2——购货商4Contactvarchar(30)联系人5Addressvarchar(50)通信地址6Postcodevarchar(10)邮政编码7Phonevarchar(30)联系电话8Faxvarchar(30)传真电话9Memovarchar(100)备注信息2.仓库信息表Storehouse仓库信息表Storehouse用来保存仓库信息,表Storehouse的结构如表2-2所示。表2-2仓库信息表Storehouse编号字段名称数据结构说明1Sidint仓库编号2Snamevarchar(50)仓库名称-42-
3Memovarchar(100)仓库说明1.用户信息表Users用户信息表Users用来保存用户信息,表Users的结构如表2-3表示。4.产品类别表ProType产品类别表ProType用来保存产品类别信息,表ProType的结构如表2-4表示。表2-3用户信息表Users编号字段名称数据结构说明1UserNamevarchar(40)用户名2Pwdvarchar(40)密码3User_typetinyint用户类型(1——系统管理员用户2——普通用户)表2-4产品类别表ProType编号字段名称数据结构说明1TypeIdint产品类别编号2TypeNamevarchar(50)产品类别名称3UpperIdint上级产品5.产品信息表Product产品信息表Product用来保存产品的基本信息,表Product的结构如表2-5表示。表2-5产品信息表Product编号字段名称数据结构说明1Pidint产品编号2Pnamevarchar(50)产品名称3TypeIdint产品类型编号4Pstylevarchar(50)产品规格5Punitvarchar(10)计量单位6Ppricedecimal(15,2)参考价格9Validint有效期(以天为单位)10InventoryInt库存量6.入库操作信息表StoreIn入库操作信息表StoreIn用来保存入库操作的基本信息,表StoreIn的结构如表2-6表示。-42-
表2-6入库操作信息表StoreIn编号字段名称数据结构说明1SiTypevarchar(20)入库操作类型,包括采购入库、生产入库、退货入库、退料入库等2Pidint入库产品编号3MakeDatechar(10)生产日期4Ppricedecimal(15,2)入库产品单价5Pnumint入库产品数量6Cidint客户编号7Sidint仓库编号8EmpNamevarchar(50)经办人9OptDatechar(10)入库日期6.出库操作信息表TakeOut出库操作信息表TakeOut用来保存出库操作的基本信息。表TakeOut的结构如表2-7表示。表2-7出库操作信息表TakeOut编号字段名称数据结构说明1Typevarchar(20)出库操作类型,包括销售出库、退货出、用料出库等2Pidint出库产品编号3Ppricedecimal(15,2)出库产品单价4Pnumint出库产品数量5Cidint客户编号6Sidint仓库编号7EmpNamevarchar(50)经办人8OptDatechar(20)出库日期7.库存产品信息表ProInStore库存产品信息表ProInStore用来保存库存产品的基本信息,表ProInStore的结构如表2-8表示。表2-8库存产品信息表ProInStore-42-
编号字段名称数据结构说明1Typevarchar(20)产品存储编号2Pidint产品编号3Ppricedecimal(15,2)产品入库单价4PnumInt产品数量5MakeDatechar(10)生产日期6SidInt仓库编号-42-
第三章仓库管理系统需求分析及总体设计3.1系统需求分析本套应用程序名称为“仓库管理系统”,主要用于仓库货品信息的管理,系统包括仓库管理、入库、出库、一些统计查询和报表等几部分组成。仓库管理系统需满足仓库管理员及工作人员的需求,他们具有登陆应用系统的权限,所以需要对工作人员的登陆本模块进行更多的考虑,设计不同用户的操作权限和登陆方法。对于一个仓库来说,最大的功能就是存储货品,所以仓库管理就是对货品信息,仓库信息,短线货品及超储货品的管理,用户可以根据实际情况对各种货品信息进行分类管理,包括添加,删除更新数据库等[7]。当然,仓库中货品入库也是常有的事,入库管理操作就是对于货品入库情况的管理,用户可以方便地输入一些货品的信息。有了货品的入库,自然也就有货品的出库,这部分提供的功能与入库操作流程差不多,有所区别的只是对一些出库货品的管理,也很方便数据的输入。仓库货品的信息量大,数据安全性和保密性要求高。本系统实现对货品信息的管理和总体的统计等,仓库信息,供货单位和经办人员信息的查看及维护。仓库管理人员可以浏览、查询、添加、删除等货品的基本信息以及统计等,并可以对一些基本的信息生成报表形式,并打印输出的功能[8]。报表是一个数据库中最重要的功能之一,有了报表才能清楚地知道货品的出入库情况,在数据报表功能中包括出库报表,仓库报表及经办人员报表等一些基本信息的打印,方便简洁[9]。本系统基本涵盖了仓库管理的主要需求,具有完善细致的功能、友好的用户界面、强大的数据处理功能和完备的安全机制;随心所欲的查询和所见即所得的打印功能,并全面支持分析和决策的功能。●系统特色:1.设置系统用户登陆功能,即时对系统数据进行安全设置与保护。2.友好的用户界面,业务操作简单,进入系统即能使用。3.成熟先进的技术和系统构架,采用先进的数据库访问方式,数据更安全,性能更稳定。4.强大的数据处理能力和开放的数据接口,选用具有大型数据库安全机制的数据库系统,提供各种级别的数据保护和权限控制方式,确保数据的安全可靠。5.系统每种操作都可以通过菜单来进行。操作快捷、方便。易懂易会。系统集输入、维护、查询、统计和各种处理为一体,信息导入导出方便共享[10]。3.2系统功能描述本实例所描述的仓库管理系统主要包括以下功能。-42-
3.2.1基本信息管理基本信息包括客户信息、仓库信息和用户信息。客户可以分为供应商和购货商两种类型。在产品入库时,需要提供供应商的信息;在产品出库和退货时,需要提供购货商的信息。仓库信息包括仓库编号、仓库名称和仓库说明等信息。用户信息包括用户名、密码、员工姓名等信息。基本信息管理模块可以实现以下功能:●添加、修改、删除和查看客户信息;●添加、修改、删除和查看仓库信息;●添加、修改、删除和查看用户信息。3.2.2产品信息管理产品信息管理模块可以实现以下功能:●添加产品类别;●修改产品类别;●删除产品类别;●查看产品类别;●添加产品信息;●修改产品信息;●删除产品信息;●查询产品信息;本系统中采用二级产品类别的方法,一级类别描述产品所属的大致类别,二级类别则在一级类别的基础上,对产品进行细致地划分。3.2.3仓库操作管理仓库操作由仓库管理员执行,就是把产品防如仓库或把产品从仓库中取出的操作,用专业术语来描述就是入库和出库。仓库操作管理模块可以实现入库管理、出库管理和仓库盘点等功能。入库可以分为采购入库、生产入库、退货入库、退料入库等情况。●采购入库指将从供应商处采购的产品入库;●生产入库指将企业自己生产的产品入库;-42-
●退货入库指将售出的产品退货后,将退货产品入库;●退料入库指用于本企业生产原料出库后没有完全使用退回仓库。入库操作需要纪律相关的产品信息、仓库信息、客户信息、经办人、涉及金额和入库时间等信息出库可以分为销售出库、退货出库、用料出库等情况。●销售出库指把卖给购货商的产品出库;●退货出库指将本企业采购的原材料从仓库中提出退货;●用料出库指将本企业用于生产的原材料从仓库中提出到生产线。出库操作需要记录相关的产品信息、仓库信息、客户信息、经办人、涉及金额和出库时间等信息。仓库盘点是指催仓库产品进行整理,纠正不准确的仓库数据。由于人为操作等原因,系统中仓库数据与实际数据之间可能会存在误差。所以隔一段时间就需要对仓库进行盘点,从而保证仓库数据的准确性。3.2.4仓库警示管理仓库警示管理是指对仓库中接近或超过临界值的产品进行报警。在产品信息中,包含产品的合理数量范围和有效期限。产品数量小于合理数量的下限称为短线;产品数量大于合理数量的上限称为超储。产品出现短线、超储、接近或超过有效期限时都需要报警。仓库警示管理模块可以实现以下功能:产品信息、仓库信息、客户信息、经办人、涉及金额和入库时间等信息●仓库产品数量报警;●仓库管理失效报警。3.2.5统计查询管理功能统计查询管理模块可以对仓库产品进行各种类型的统计和查询,从而使拥护能够全面的了解仓库情况。仓库维护模块可以实现以下功能:●产品出入库统计报表;●仓库产品流水线统计报表。3.3系统功能模型根据上一小节介绍的功能,可以设计出系统的总体功能模块,如图3-1所示-42-
图3-1仓库管理系统功能模块示意图-42-
3.4系统设计的E-R图由P.P.S.Chen首创的实体-关系图,原来描述数据库中各种数据之间的关系的图形表示工具。这种图能直观、明了的表达数据间的复杂关系,所以在结构化分析模型中,尤其对于某些包含复杂数据的应用[11]。-42-
图3-2系统E-R图3.5系统流程分析所谓的系统流程就是用户在使用系统时的工作过程。对于多类型用户的管理系统来说,每一类用户的工作流程都是不同的。多用户系统的工作流程都是从用户登陆模块开始的,对于用户的身份进行验证。身份认证可以分为以下两个过程:(1)确认用户是否是有效的系统用户;(2)确定用户类型。第一个过程是确定用户是否能进入系统,第二个过程是根据用户类型决定用户的操作权限,从而决定用户的工作界面。本系统的流程分析如图3-3所示。图3-3系统分析流程图3.6系统用例图用例图通常由系统、用例、角色与关联组成,系统由一个矩形表示,上面标注了系统名称,内部可以包含一个或多个用例;每一个用例由一个椭圆形表示,其中标上用例的名称;角色用一个人行的符号表示;角色和用例之间或用例和用例之间的关联均用直线表示。用例图表示了参与者和用例以及他们之间的关系,其实就是参与者与系统的一个交互[12]。-42-
本系统的用例如图3-4所示。产品失效报警表查看用户信息产品出库信息删除用户产品入库信息修改用户信息产品信息查询用户信息产品类别设置用户权限用户信息审批用户注册仓库信息管理员信息客户信息添加普通用户系统管理员数据库普通用户图3-4系统用例图-42-
第四章详细设计4.1主界面设计主界面包括系统的主要功能包括基本信息管理、产品信息管理、库存操作管理、库存警示管理、统计查询管理和系统数据维护六个主要的功能。主界面设置一个友好的界面,用户可以根据需要点击自己想使用的功能进入功能界面。在进入主界面之前有一个用户登陆界面,用户键入用户名和密码,系统自行判定是否存在,然后进入主界面。输入:用户名,密码。处理:判断用户名和密码是否有效。填入用户名和密码后点击【登录】按钮,系统将自动从数据库中判断是否存在相同的用户名和密码,如果有则进入系统,如果不存在则提示用户名和密码有错误信息。输出:登录成功,进入系统的主页面,不成功则显示错误信息页面。系统登陆界面如图4-1所示。图4-1系统登陆界面系统的主界面如图4-2所示。4.2基本信息管理模块基本信息包括客户信息、仓库信息和用户信息。客户可以分为供应商和购货商两种类型。在产品入库时,需要提供供应商的信息;在产品出库和退货时,需要提供购货商的信息。仓库信息包括仓库编号、仓库名称和仓库说明等信息。用户信息包括用户名、密码、员工姓名等信息。基本信息管理模块可以实现以下功能:●添加、修改、删除和查看客户信息;-42-
●添加、修改、删除和查看仓库信息;●添加、修改、删除和查看用户信息图4-2系统的主界面基本信息管理的功能树如图4-3所示。基本信息管理用户信息管理仓库信息管理客户信息管理图4-3基本信息管理功能-42-
4.2.1客户管理模块设计1、客户信息输入输入:客户名称、客户类型、联系人、通信地址、邮政编码、联系电话、传真电话、备注信息处理:(1)判断客户名称、客户类型、联系人、通信地址、邮政编码、联系电话、传真电话、备注信息是否为空,数据库中是否有重复的客户名称及填写的格式是否正确。(2)在这里系统管理员可以添加客户的信息,添加的信息有客户单位、客户类型、联系人、通信地址、邮政编码、联系电话、传真电话、备注信息。所有客户信息被系统取得后都将添入客户信息表中。2、客户信息加载界面点击菜单“基本信息管理”、“客户信息管理”后,进入客户信息界面。客户信息管理界面客户可以分为供应商和购货商两种类型。客户信息管理界面如图4-4所示。图4-4客户信息管理点击添加按钮,按要求输入-42-
客户名称、客户类型、联系人、通信地址、邮政编码、联系电话、传真电话、备注信息。点击确定按钮。在这里的操作相当于写入数据库的操作,确定以后,数据会被写进数据库表内,在上面的页面内,数据也会随时反映出来。图4-5编辑客户信息4.2.2仓库管理模块设计1、仓库信息输入输入:仓库名称、仓库说明处理:(1)判断仓库名称、仓库说明是否为空,数据库中是否有重复的仓库名称及填写的格式是否正确。(2)在这里系统管理员可以添加仓库的信息,添加的信息有仓库名称、仓库说明。所有仓库信息被系统取得后都将添入仓库信息表中。2、客户信息加载界面点击菜单“基本信息管理”、“仓库信息管理”后,进入仓库信息界面,仓库信息管理共分添加、修改、删除和返回四个按钮。仓库信息管理界面如图4-6所示。3、添加仓库信息界面用户点击添加按钮进入编辑仓库信息界面,输入仓库名称和仓库信息点击确定完成添加。仓库编辑管理界面如图4-7所示。-42-
图4-6仓库管理界面图4-7编辑仓库信息-42-
4.2.3用户管理模块设计1、用户信息输入输入:用户名、密码、用户类型处理:(1)判断用户名、密码、用户类型是否为空,数据库中是否有重复的用户名及填写的格式是否正确。(2)在这里系统管理员可以添加用户的信息,添加的信息有用户名、密码、用户类型。所有用户信息被系统取得后都将添入用户信息表中。2、客户信息加载界面点击菜单“基本信息管理”、“用户信息管理”后,进入用户信息界面。图4-8用户管理界面4.2.4修改用户密码点击菜单“基本信息管理”、“修改用户密码”后,进入修改用户密码界面,修改用户密码界面共包括用户名、旧密码、新密码和确认新密码四项。按要求填写点击确认完成修改。密码修改只可以修改自己的帐户密码,如果新密码和确认新密码两项输入不一致,系统自动提示输入不一致,并且清空用户输入,要求用户重新输入。修改用户密码界面如图4-9所示。-42-
图4-9修改用户密码-42-
第五章备份和还原数据库备份和还原数据库可以保证数据的安全性,也可以保证数据的不丢失,保证系统的稳定性。备份和还原数据库是所有数据库应用系统必备的功能。备份和还原是数据库管理员维护数据库安全性和完整性的重要操作。备份是还原受损数据库最容易,把意外损失降到最小的保障方法。没有备份,所有的数据都可能丢失。备份可以防止因表或数据库遭受破坏、介质失效或用户错误而造成的数据灾难。还原数据库是在意外发生后,利用备份来还原数据库的造作。5.1规划数据库的备份和还原在规划数据库的备份和还原时,必须结合两者一起考虑。一般说来,用户设计的操作方案将受到数据库运行的实际情况和可利用的数据库备份资源的限制。但是,无论如何数据库的价值将是放在第一位考虑的因素,根据数据的价值,用户可以预测自己所能承受的数据损失,从而选择合适的还原方案,并根据还原方案设计出合理的备份方案。一般说来,规划数据库备份应该按照先面的步骤进行:(1)预测自己的数据库系统所可能遇到的数据库意外事故。(2)针对不同的意外事故一一设计对应的还原方案。(3)支队所有的还原方案设计可行的备份方案。(4)在一定备份资源和时间限制内对设计的方案进行测试。5.2数据库的备份5.2.1备份概述备份就是制作数据库结构和数据的拷贝,这是保障数据库系统安全的基础性工作。用户使用数据库是因为要利用数据库来管理和操作数据,数据对于用户来说是非常宝贵的资产。数据是存放在计算机上的,但是即使是最可靠的硬件或软件,也会出现系统故障和产品故障。所以,应该在意外发生之前做好充分的准备工作,以便在意外发生之后有相应的措施能快速地还原数据库的运行,并使丢失的数据量减到最小。可能造成数据损失的因素很多,如:●误执行了删除造作●破坏性病毒●自然灾害-42-
●硬件系统或软件系统故障●盗窃等。5.2.2数据库备份设备类型数据库备份设备类型包括磁盘备份设备、磁带本分设备、命令管道设备备份。磁盘备份设备磁盘备份设备一般是硬盘或其他磁盘类存储介质上的文件,一般按照普通的操作系统文件进行管理。磁盘备份设备可以定义在数据库服务器的本地磁盘上,也可以定义在通过网络连接的远程磁盘上。磁带设备备份磁带设备与磁盘设备的使用方式一样,但有两点区别:磁带设备必须直接物理连接在运行SQLServer服务器的计算机上;磁带设备不支持远程设备备份。命名管道设备命名管道设备为使用第三方的备份软件和设备提供了一个灵活、强大的通道。当用户使用命名管道设备进行备份和还原的操作时,需要在BACKUP或RESTORE语句中给出客户端应用程序中使用的命名管道的名字。5.2.3数据库的备份有的系统要求用户使用SQLServer2000的工具进行数据的备份和还原,这就要求用户熟悉SQLServer2000数据库的基本使用方法。本系统利用另一种方法,在应用系统中实现数据的备份和还原。在程序中备份数据库,要使用BACKUPDATABASE命令,格式如下:BACKUPDATABASE<数据库名>TOdisk=<备份文件名>在类CADOConn中添加一个函数Backup(),代码如下:voidADOConn::Backup(){//连接数据库OnInitADOConn();_bstr_tvSQL;vSQL="backupdatabaseStocktodisk="C:\BackUp\Stock.bak"";-42-
ExecuteSQL(vSQL);//关闭数据库ExitConnect();}在主界面中单击菜单项“备份数据库”,将执行OnBackup()函数,代码如下:voidCStockDlg::OnBackup(){//TODO:AddyourcommandhandlercodehereADOConnm_AdoConn;m_AdoConn.Backup();MessageBox("备份完成");}如果备份成功,系统将提示用户备份成功。5.3还原数据库当系统数据库出现数据事故时,就需要还原数据库中的数据,把损失降到最小。这对企业和用户来说非常重要。还原数据库可以最大限度的减少用户的经济损失和数据损失。在程序中还原数据库,需要使用RESTOREDATABASE命令,格式如下:RESTOREDATABASE<数据库名>FROMdisk=<备份文件名>在类CADOConn中添加一个函数Restore(),代码如下:voidADOConn::Restore(){//@@@@创建到Master数据库的连接try{//创建Connection对象m_pConnection.CreateInstance("ADODB.Connection");//设置连接字符串,必须是BSTR型或者_bstr_t类型_bstr_tstrConnect="Provider=SQLOLEDB;Server=ntserver;Database=master;uid=sa;pwd=sa;";-42-
m_pConnection->Open(strConnect,"","",adModeUnknown);}//捕捉异常catch(_com_errore){//显示错误信息AfxMessageBox(e.Description());}_bstr_tvSQL;vSQL="restoredatabaseStockfromdisk="C:\BackUp\Stock.bak"";m_pConnection->Execute(vSQL,NULL,adCmdText);}在主界面中单击菜单项“还原数据库”,将执行OnBackup()函数,代码如下:voidCStockDlg::OnRestore(){//TODO:AddyourcommandhandlercodehereADOConnm_AdoConn;m_AdoConn.Restore();MessageBox("还原完成");}如果用户还原完成,系统将自动弹出对话框提示用户还原完成。-42-
结论此次毕业设计是用VC++和SQL数据库完成的,通过此次毕业设计把几年来所学的知识做了一个系统的复习和总结,巩固了所学知识并提高了实际动手能力,同时也发现身上不足的之处,需要以后不断完善。此次毕业设计为我以后工作和学习打下了坚实的基础,也大大的增强了我的自信心。在设计阶段,通过对课题的深层分析与研究,使我对多门技术和知识有了一定的了解,比如管理信息系统(简称MIS)是在管理科学、系统科学、计算机科学等的基础上发展起来的综合性边缘科学。还有VC++中Data控件、ADOData控件、DataList控件/DataCombo控件、DataGrid控件、MSChart控件的定义和作用。还了解了安装SQL数据库的时候不能先安装Offices工具,因为它们中有的数据互相冲突,必须先安装SQL数据库后安装Offices工具。通过这一段时间的学习,不但使我的知识有了很大的提高,也使我深切的感觉到团队的重要性,一个成功的软件项目不是一个人可以独立完成的,只有通力合作,个人发挥自己的优点,发挥团队精神,才能更出色的完成任务。由于时间紧迫,个人水平有限,设计过程中不可避免的存在各种不足之处,比如联机文档比较少,用户界面不够美观,出错处理不够等多方面问题。这些都有待进一步改善,敬请各位老师予以批评和指正。-42-
致谢首先,我要感谢带我们毕业设计的老师,感谢两位老师的悉心指导和辛勤的工作,她们认真负责的工作态度和一丝不苟的钻研精神深深地影响着我,也正是她们无私的付出才使我的毕业设计能够顺利的完成。同时我还要感谢负责联系的老师,老师总是第一时间把学校的各项通知转达给我们,让我们能够随时的了解学校的要求。帮助我顺利的完成毕业设计。同时我也要感谢软件学院的各位老师,感谢这一年半来对我们的谆谆教导,教会我们许多知识和做人的道理。感谢软件学院对我的栽培。还要感谢同组的,是他们陪我一起讨论问题,帮助我解决一个又一个的难点和困难,使我能够按时的完成毕业设计。最后我要感谢我的父母,这么多年来对我的养育之恩,没有他们辛勤无私的付出,也就没有我今天的成绩。所以我要说谢谢你们,谢谢所有关心我的老师同学和朋友参考文献[1]周峰.SQLServer2005中文版关系数据库基础与实践教程[M].北京:电子工业出版社,2006.7.[2]刘遵仁,于忠清.从零开始——SQLServer中文版基础培训教程[M].北京:人民邮电出版社,2002.9.[3]启明工作室.VisualC+++SQLServer数据库应用系统开发与实例[M].北京:人民邮电出版社,2004.7.[4]夏云庆. VisualC++6.0数据库高级编程[M].北京:北京希望电子出版社,2002.1.[5]郑莉,刘慧宁,孟威.C++程序设计教程[M].北京:机械工业出版社,2001.7.[6]揣锦华.面向对象的程序设计与VC++实践[M].西安:西安电子科大出版社,2005.2.[7]曹晨.基于UML的仓储管理系统的分析与设计[J],电子工程师2006(6):11-14.[8]顾绍元,李华庆.仓库管理信息系统的设计与实现[J],上海铁道大学学报1996(4):5-7.[9]覃利秋.仓库管理系统及其开发[J],茂名学院学报2005(3):7-10.[10]JeffreyRichter.ProgrammingApplicationsforMicrosoftWindows[M].CourseTechnologyPTR,2005.8.-42-
[11]DavidJ.Kruglinski,InsideVisualC++4thEdition[M].CourseTechnologyPTR,2005.[12]CharlesPetzold.ProgrammingWindows(FifthEdition)[M].PrenticeHall.附录Ⅰ数据库建表语句1、名称:客户信息表Client标识:Client数据来源:前台页面取得。建表语言如下:USEStockGOCREATETABLEClient(CidintPRIMARYKEYIDENTITY,Cnamevarchar(50)NOTNULL,Ctypetinyint,Contactvarchar(30),Addressvarchar(50),Postcodevarchar(10),Phonevarchar(30),Faxvarchar(30),Memovarchar(100))GO2、名称:仓库信息表Storehouse标识:Storehouse数据来源:前台页面取得。建表语言如下:USEStockGO-42-
CREATETABLEStorehouse(SidintPRIMARYKEYIDENTITY,Snamevarchar(50)NOTNULL,Memovarchar(100))GO3、名称:用户信息表Users标识:Users数据来源:前台页面取得。建表语言如下:USEStockGOCREATETABLEUsers(UserNamevarchar(40)PRIMARYKEY,Pwdvarchar(40)NOTNULL,User_TypetinyintNOTNULL)GOINSERTINTOUsersValues("Admin","888888",1)GO4、名称:产品类别表ProType标识:ProType数据来源:前台页面取得。建表语言如下:USEStockGO-42-
CREATETABLEProType(TypeIdintPRIMARYKEYIDENTITY,TypeNamevarchar(50)NOTNULL,UpperIdint)GO5.名称:产品信息表Product标识:Product数据来源:前台页面取得。建表语言如下:USEStockGOCREATETABLEProduct(PidintPRIMARYKEYIDENTITY,Pnamevarchar(50)NOTNULL,TypeIdint,Pstylevarchar(50),Punitvarchar(10),Ppricedecimal(15,2),Plowint,Phighint,Validint,AlarmDaysint)GO-42-
6.名称:入库操作信息表StoreIn标识:StoreIn数据来源:前台页面取得。建表语言如下:USEStockGOCREATETABLEStoreIn(SiTypevarchar(20),Pidint,MakeDatechar(10),Ppricedecimal(15,2),Pnumint,Cidint,Sidint,EmpNamevarchar(50),OptDatechar(10))GO7.名称:出库操作信息表TakeOut标识:TakeOut数据来源:前台页面取得。建表语言如下:USEStockGOCREATETABLETakeOut(Ttypevarchar(20)NOTNULL,Pidint,Ppricedecimal(15,2),Pnumint,-42-
Cidint,Sidint,EmpNamevarchar(50),OptDatechar(20))GO8.名称:库存产品信息表ProInStore标识:ProInStore数据来源:前台页面取得建表语言如下:USEStockGOCREATETABLEProInStore(SpIdintPRIMARYKEYIDENTITY,PidintNOTNULL,Ppricedecimal(15,2),Pnumint,MakeDatechar(10),Sidint)GO-42-
附录Ⅱ仓库管理系统部分程序代码设计客户信息编辑对话框voidCClientEditDlg::OnOK(){//将用户输入数据读取到成员变量中UpdateData(TRUE);//检查用户输入数据的有效性if(m_Cname==""){MessageBox("请输入客户单位");return;}if(m_Contact==""){MessageBox("请输入联系人");return;}//将成员变量赋值到clt对象,并保存到数据库CClientclt;clt.SetCname(m_Cname);//客户单位clt.SetCtype(m_Ctype.GetCurSel()+1);//客户类型clt.SetContact(m_Contact);//联系人clt.SetAddress(m_Address);//通信地址clt.SetPostcode(m_Postcode);//邮政编码clt.SetPhone(m_Phone);//联系电话clt.SetFax(m_Fax);//传真电话clt.SetMemo(m_Memo);//备注if(cCid=="")//插入数据-42-
if(clt.HaveName(m_Cname)==1){MessageBox(m_Cname);MessageBox("当前客户已经存在,请重新输入客户单位");return;}elseclt.sql_insert();else//更新数据if(m_Cname!=cCname&&clt.HaveName(m_Cname)==1){MessageBox("当前客户已经存在,请重新输入客户单位");return;}elseclt.sql_update(cCid);//关闭对话框CDialog::OnOK();}设计客户信息管理对话框1.Refresh_Data()函数voidCClientManDlg::Refresh_Data(){UpdateData(TRUE);//将控件的值读取到成员变量中CStringcSource;CStringcCtype;//读取客户类型值cCtype.Format("%d",m_Ctype.GetCurSel()+1);//设置SELECT语句,按客户单位排序cSource="SELECTCid,CnameAS客户单位,ContactAS联系人,AddressAS通信地址,";-42-
cSource+="PostcodeAS邮政编码,PhoneAS联系电话,FaxAS传真电话,MemoAS备注";cSource+="FROMClientWHERECtype="+cCtype+"ORDERBYCname";m_adodc.SetRecordSource(cSource);m_adodc.Refresh();//设置表格列宽度_variant_tvIndex;vIndex=long(0);m_datagrid.GetColumns().GetItem(vIndex).SetWidth(0);}2.OnInitDialog()函数BOOLCClientManDlg::OnInitDialog(){CDialog::OnInitDialog();//TODO:Addextrainitializationherem_Ctype.SetCurSel(0);//设置客户类型Refresh_Data();//刷新表格中的记录集returnTRUE;//returnTRUEunlessyousetthefocustoacontrol//EXCEPTION:OCXPropertyPagesshouldreturnFALSE}3.OnAddButton()函数voidCClientManDlg::OnAddButton(){//TODO:AddyourcontrolnotificationhandlercodehereUpdateData(TRUE);//打开编辑对话框CClientEditDlgdlg;-42-
dlg.cCid="";dlg.iCtype=m_Ctype.GetCurSel()+1;if(dlg.DoModal()==IDOK)Refresh_Data();}4.OnModButton()函数voidCCheckManDlg::OnModiButton(){//TODO:Addyourcontrolnotificationhandlercodehereif(m_adodc6.GetRecordset().GetEof()){MessageBox("请选择盘点记录");return;}CCheckEditDlgdlg;dlg.cSpId=m_datagrid.GetItem(0);//库存记录编号dlg.m_Sname=m_Storehouse.GetText();//仓库名称dlg.m_Pname=m_Pname.GetText();//产品名称dlg.m_MakeDate=m_datagrid.GetItem(3);//生产日期dlg.m_Price=m_datagrid.GetItem(1);//单价dlg.m_OldNum=m_datagrid.GetItem(2);//原数量if(dlg.DoModal()==IDOK)Refresh_Data();}5.OnDelButton()函数voidCClientManDlg::OnDelButton(){//TODO:Addyourcontrolnotificationhandlercodehere-42-
if(m_adodc.GetRecordset().GetEof()){MessageBox("请选择要删除的记录");return;}CStringCid;Cid=m_datagrid.GetItem(0);CStoreInobj;if(obj.HaveClient(Cid)==1){MessageBox("客户出现在入库单中,不能删除");return;}CTakeOutobj1;if(obj1.HaveClient(Cid)==1){MessageBox("客户出现在出库单中,不能删除");return;}if(MessageBox("是否删除当前记录","请确定",MB_YESNO)==IDYES){CClientclt;clt.sql_delete(m_datagrid.GetItem(0));Refresh_Data();}}-42-