毕业设计(论文)-多级仓库管理的设计与实现I.doc_第1页
毕业设计(论文)-多级仓库管理的设计与实现I.doc_第2页
毕业设计(论文)-多级仓库管理的设计与实现I.doc_第3页
毕业设计(论文)-多级仓库管理的设计与实现I.doc_第4页
毕业设计(论文)-多级仓库管理的设计与实现I.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

多级仓库管理系统的设计与实现目 录一、引言1二、系统分析2(一)客户需求分析2(二)功能确定2三、系统设计3(一)系统目标设计3(二)开发设计思想3(三)开发和运行环境选择3(四)系统功能模块设计3四、数据库设计4(一)数据库需求分析4(二)数据库概念结构设计5(三)数据库逻辑结构设计7五、数据库结构的实现9六、各个功能模块的创建9(一)系统主界面的设计9(二)用户管理模块的设计11(三)产品入库模块的设计12(四)产品出库模块的设计13(五)产品转仓模块的设计14(六)产品信息管理模块的设计14(七)仓库信息管理模块的设计15七、开发中的难点和解决技巧15八、结论16致谢16参考文献16附录一、创建数据库表格的SQL语句1720多级仓库管理系统的设计与实现摘要 本文介绍了用DCOM技术、MS SQL Server 2000和C+Builder 6 进行多级仓库管理系统的设计和实现。给出了详细的系统设计过程和网络配置方案。根据系统的需求,对系统的主要功能(产品入库、产品出库、产品转仓、)都进行了优化设计,给系统的操作带来了很大的便利。对数据库表也进行了详细的设计和优化。在各个功能模块的设计中都有功能的设计方法和问题的解决方案。也对各种算法进行了优化处理。在用户交互界面的设计中,都详细的介绍了整个交互界面功能。最后还实际运行了程序,检验了程序的正确性。关键词 分布式,数据库,仓库,入库,出库,转仓。一、 引言无论是古代还是现代,仓库都是各行各业不可缺少的一部分。国家也需要大型的仓库来存储一些备用物资。随着我国社会主义市场经济体制的确立和发展,商业流通领域进入了一个空前的发展阶段,面临商界的激烈竞争,只有在多变的商品和顾客中挖掘并掌握市场需求,即淘汰“卖不出去的商品”,购进“卖得快、利润高的商品”的经营者才会获利,企业也才能在竞争中生存和发展,如果能够选择一个好的管理系统,把大量繁杂的、看似毫无关系的数据,有机的结合起来,形象的反映出市场的供求关系,就能够为得出正确的决策做出事半功倍的效果。如今在制造业、流通业等各大企业中,仓库更是必不可少。如果对仓库有一个有效的管理,将可以大大提高各企业部门的工作效率,从而带来更高的效益。以前的仓库管理都需要大量的人力、财力来进行管理,仓库的记录也都是用的纸张,对物资的入库、出库和查询都带来了很大的不便。这种工作方式的效率低、易出错,还会带来不必要的损失。从上个世纪80年代,随着计算机的使用在各行各业中慢慢的普及,计算机系统已经大大的提高了工作效率。因此,对于现代计算机的硬件技术和软件技术比较成熟的时期,能够运用计算机技术来管理仓库是非常必要的。用更先进分布式技术来对仓库进行管理更是未来的发展趋势。采用分布式仓库管理系统可以数据统一管理,减少仓库管理需要的人力和财力,减少各仓库数据不一致的问题,大大的降低成本,提高效率。而通过本系统基本可解决以上问题,并且能够方便、灵活地对数据库的资料进行查询、统计、打印等操作,所有这些对数据库进行的操作都受到管理级别的限制,确保数据的安全性。另外,本系统从实用性方面考虑,在联机交换数据时,尽量使数据在必要时才进行传递,提高运行速度。数据库技术是一门历史弥坚的学科,不像其它的计算机技术会随着时间的推移而变得越来越没有声息。考虑其原因,则是因为信息的爆炸对数据库技术的要求只增不减。在互联网日益发展、壮大的背景下,在因特网热潮不减的情况下,如何让原来在单机中使用的数据库可供多机使用,也成了必然的趋势。企业要在竞争中求得生存,就应使自己的产品资料销售、管理等方面科学化,让更多的人知道自己的产品,这样才能争取到更多的销售渠道。在实际的仓库管理中,普遍使用多机操作共享同一个数据库的管理系统。本论文将详细介绍仓库进销存的模拟管理系统的开发环境、需求分析、设计思想、主要算法及其强大的功能,使用户对本系统有一个清晰、完整的了解,详细介绍了个别模块的实现步骤。在实际应用中,对于产品编码的输入可采用扫描仪的方式,比较准确、方便、快捷,但在本系统中,入库操作部分由于缺乏硬件条件,须人手工输入产品编号,但这对系统的模拟并无太大的影响。二、 系统分析(一) 客户需求分析现代的供应链要求我们要对客户的需求做出快速的反映,只有在最短的时间内满足客户的需求,才能在竞争中保持优势。在仓库内部应该采用现代化的货位管理方法,使得定位货物更加方便快速;采用ABC管理方法对库存进行分类,以对不同的货物采取不同的库存控制方法。仓储流程:1. 入库:入库单是仓储部门用于填写因任何原因产品入库的单据。将常用的入库原因分为:采购收货、销售退货、转仓入库、生产成品入库、生产退料五种。用户可以根据自身的情况再添加其他原因。只有入库、出库及库存调整可以改变产品的库存数量,其它所有与产品物流相关的业务模块均只是管理层向仓储部门所下的通知和凭证,仓储部门只有见到这些单据才能以这些单据的名义出入库。2. 出库:出库单是仓储部门用于填写因任何原因出库的单据。本仓库管理系统将常用的出库原因分为:销售发货、采购退货、生产领料、转仓出库四种。用户可以根据自身的情况再添加其他原因,和入库一样,出库过程同样分管理层与执行层,起到相互制约作用。3. 转仓单:如果需要涉及到不同仓库间产品的调配,则可以使用转仓单来处理。转仓过程分为:货物从源仓库出库与货物到目的仓库入库两部分。4. 仓库管理:记录了各个仓库的具体资料。包括联系人(仓管员)的资料。在现实业务中,仓库不一定是企业自己的仓库。很多企业租用专用仓库作为仓储的场地。这在管理上就存在一些困难。但可以有专人负责与仓库进行协调及处理业务,此人即可以作为仓管员身份使用本仓库管理系统软件。5. 仓库调整:仓库调整模块用于在期末企业清点仓库时,根据仓库的实际库存数量对计算机内产品仓储数量做出调整。实际库存与计算机内库存发生差异的原因很多,有可能是因长期存储造成部分产品损坏,也可能因货物拆分零散时数量计算的误差,还可能是因管理不善造成产品的丢失。(二) 功能确定仓库功能:货物入库、货物出库、货物转仓、库存调整、仓库资料、入库凭证、出库凭证。系统功能:用户创建、用户登陆、用户删除。仓库创建、仓库修改、仓库删除。三、 系统设计(一) 系统目标设计库存管理系统主要实施目标是帮助企业的仓库管理人员对库存物品的入库、出库、移动、盘店、补充订货和生产补料等操作进行全面的控制和管理,以达到降低库存、减少资金占用,避免物品积压或短缺现象,保证产品经营活动顺利进行的目的。库存管理系统从级别、类别、货位、批次、单件、分类等不同角度来管理库存物品的数量、库存成本和资金占用情况,以及用户可以即使了解和控制库存业务各方面的准确情况和数据,做到财、物、卡相符。通过仓库管理系统,使仓库的管理工作系统化规范化自动化,使得资金使用合理,物资设备的储备最佳。使企业的所有生产经营活动走上正规,能够对企业的各种决策提供决策支持,加快企业信息化进程。(二) 开发设计思想仓库管理的特点是信息处理量比较大。所管理的物资设备各类繁多,而且由于入库单出库单需求单等单据发生量特别大,关联信息多,查询和统计的方式各不相同等原因,因此在管理上实现起来有一定困难。在管理的过程中经常会出现信息的重复传递单据报表种类繁多各个部门管理规格不统一等问题。本系统开发设计思想:1. 尽量采用公司现有软硬件环境,及先进的管理系统开发方案,从而达到充分利用公司现有资源,提高系统开发水平和应用效果的目的;2. 系统应该从实际出发,满足公司库存管理的各项要求,并达到操作过程中的直观、方便、使用、安全等要求;3. 系统采用模块化程序设计方法,即便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。4. 系统采用多层数据库体系结构,Client(客户端)负责显示用户界面信息、向服务器端发送服务请求;Server(服务器端)则用于提供数据服务。这种结构的优点:封装商务逻辑于一个共享的中间层、瘦客户端应用程序、分布式数据处理和增加了安全性的机会。5. 系统应具备数据维护功能,及时根据用户需求进行数据的添加、删除、修改、备份等操作。(三) 开发和运行环境选择开发环境:Windows XP + SQL Server 2000 + Borland C+ Builder 6 。运行环境-服务器:Windows 98/2000/NT/XP/2003 + SQL Server 2000 。处理器:1.0G以上(推荐2.4G)内存:256MB以上(推荐1GB)网络资源:10Mb/s(推荐100Mb/s)-客户端:Windows 98/2000/NT/XP/2003。处理器:600M以上(推荐1.2G)内存:64MB以上(推荐128MB)网络资源:1Mb/s(推荐10Mb/s)(四) 系统功能模块设计根据客户的需求分析,功能模块设计如图 2-4。安全管理用户登录用户注册用户修改用户删除仓库信息仓库创建仓库修改仓库删除仓库查询仓库功能货物入库货物出库货物转仓库存调整仓库资料产品信息产品信息录入产品信息修改产品信息删除产品信息查询图 2-4功能模块四、 数据库设计(一) 数据库需求分析本机构是一个大型的连锁仓库,仓库分布于各大城市的各个地方。用户的需求具体体现在各种信息的提供、保存、更新和查询等方面。这就要求数据库结构能充分满足各种信息的输入和输出、收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为数据库的具体设计打下基础。在仔细分析调查有关仓库信息管理系统需求的基础上,确定了这个系统所处理的数据流程。针对仓库信息管理系统的需求。通过对仓库管理工作过程的内容和数据流程分析,设计如下所示的数据项和数据结构:1. WareHouse(仓库信息表),包含的数据项有:仓库ID,仓库名,仓库地址,仓库电话,仓库联系人,仓库联系人手机,仓库备注。2. Production(产品信息表),包含的数据项有:产品ID,产品名称,产品规格,产品批号,包装单位,基本单位,包装规格。3. WareHouseStorage(仓库存储信息表),包含的数据项有:仓库ID,产品ID,产品数量,入库时间。4. EnterWareHouse(入库单信息表),包含的数据项有:入库单ID,仓库ID,负责人,入库原因,发货单位,发货人,日期,备注。5. EWHProd(入库单产品表),包含的数据项有:EWHProd ID,入库单ID,产品ID。6. OutWareHouse(出库单信息表),包含的数据项有:出库单ID,仓库ID,负责人,出库原因,收货单位,领取人,日期,备注。7. OWHProd(出库单产品表),包含的数据项有:OWHProd ID,出库单ID,产品ID。8. TransferWareHouse(转仓单信息表),包含的数据项有:转仓单ID,出库ID,入库ID,收货人,出库负责人,日期,备注。9. TWHProd(转仓单产品表),包含的数据项有:TWHProd ID,转仓单ID,产品ID。10. Users(用户信息表),包含的数据项有:用户ID,用户名,用户密码,用户权限,管理的仓库。(二) 数据库概念结构设计根据上面得到的数据项和数据结构,设计满足这些用户要求的各种实体,以及它们之间的关系模型,为后面的逻辑结构设计做好准备。这个实力根据上面的设计规划出实体有:仓库实体、产品实体、仓库存储实体、入库单实体、出库单实体、转仓单实体、用户实体。以下是各实体的E-R图模型:1. 仓库实体。如图 3-2-1所示:仓库实体仓库ID仓库名仓库地址仓库电话仓库联系人仓库备注仓库联系人手机图 3-2-1仓库实体2. 产品实体。如图 3-2-2所示:产品实体产品ID产品名称产品规格产品批号包装单位基本单位包装规格图 3-2-2产品实体3. 仓库存储实体。如图 3-2-3所示:仓库存储实体仓库ID产品ID产品数量入库时间图 3-2-3仓库存储实体4. 入库单实体。如图 3-2-4所示:入库单实体入库单ID仓库ID负责人入库原因发货单位发货人日期备注图 3-2-4入库单实体5. 出库单实体。如图 3-2-5所示:出库单实体出库单ID仓库ID负责人出库原因收货单位领取人日期备注图 3-2-5出库单实体6. 转仓单实体。如图 3-2-6所示:转仓单实体转仓ID出库ID入库ID收货人出库负责人日期备注图 3-2-6转仓单实体7. 用户实体。如图 3-2-7所示:用户实体用户ID用户名用户密码用户权限管理的仓库图 3-2-7用户实体实体间关系的E-R图。如图 3-2-8所示:仓库实体产品实体仓库存储实体入库单实体出库单实体转仓单实体入库出库转仓仓库查询图 3-2-8实体间关系的E-R图(三) 数据库逻辑结构设计1. WareHouse(仓库信息表):数据项数据类型长度描述wh_IDint4仓库IDwh_Namechar20仓库名wh_Addresschar40仓库地址wh_Telchar20仓库电话wh_Linkmanchar10仓库联系人wh_Lm_MTelchar20仓库联系人手机wh_Remarkvarchar100仓库备注2. Production(产品信息表):数据项数据类型长度描述pd_IDint4产品IDpd_Namechar20产品名称pd_Specificationchar10产品规格pd_PatchNumint4产品批号pd_PackUnitchar6包装单位pd_BasicUnitchar6基本单位pd_PackSpecchar10包装规格3. WareHouseStorage(仓库存储信息表):数据项数据类型长度描述whs_whIDint4仓库IDwhs_pdIDint4产品IDwhs_pdNumint4产品数量whs_StorageTimedatetime8入库时间4. EnterWareHouse(入库单信息表):数据项数据类型长度描述ewh_IDtimestamp8入库单IDewh_whIDint4仓库IDewh_Principalchar10负责人ewh_EnterReasonchar20入库原因ewh_ConsignmentUnitchar20发货单位ewh_Consignerchar10发货人ewh_Timedatetime8日期ewh_Remarkvarchar100备注5. OutWareHouse(出库单信息表):数据项数据类型长度描述owh_IDtimestamp8出库单IDowh_whIDint4仓库IDowh_Principalchar10负责人owh_OutReasonchar20出库原因owh_CarryUnitchar20收货单位owh_Consigneechar10领取人owh_Timedatetime8日期owh_Remarkvarchar100备注6. TransferWareHouse(转仓单信息表):数据项数据类型长度描述twh_IDtimestamp8转仓IDtwh_owhIDint4出库IDtwh_ewhIDint4入库IDtwh_Consigneechar10收货人twh_owhPrincipalchar10出库负责人twh_Timedatetime8日期twh_Remarkvarchar100备注7. Users(用户信息表):数据项数据类型长度描述User_IDint4用户IDUser_Namechar20用户名User_Passwordchar20用户密码User_Popedomchar20用户权限User_whIDint4管理的仓库五、 数据库结构的实现经过前面的需求分析和概念结构设计以后,得到数据库的逻辑结构。现在又对以有的设计加以实现。而对于数据库的实现有多种方法,在这里我用的是SQL SERVER 2000来实现仓库管理系统的数据库的逻辑结构。其中的原因有以下几个方面:1.SQL SERVER 2000适合于企业级用户,有更好的安全性和稳定性。2.SQL SERVER 2000有更多的操作方法,不论可以用SQL语言还可以用可视化菜单。3. C+ Builder 6与SQL SERVER 2000有更好的连接接口,这些接口能更好的提高程序的运行效率。下面利用SQL SERVER 2000的SQL查询分析器来实现这个逻辑结构。创建这些表格的SQL语句见附录一:将这些代码放入SQL SERVER 2000的查询分析器中,创建新的查询页中,并运行,这时候数据库,极其内部结构跟数据表格将逐个创建。至此,仓库管理系统的数据库设计已经完全结束。六、 各个功能模块的创建(一) 系统主界面的设计现在开始系统主界面的设计,本系统是一个多层仓库管理系统,所以主界面的设计分为服务器界面设计和客户端应用程序界面的设计。服务器界面设计如图5-1-1。图 5-1-1服务器界面因为服务器端应用程序的工作是在内部完成的,所以在界面上没有什么与用户进行交互。因此,在服务器界面没有安放信息输入控件。只是安放了一些信息输出控件:Client Count:显示了当前连接在服务器上的客户端应用程序的数量。Query Count:显示了曾经请求登录的客户端应用程序请求的总次数。当前活动用户栏里,显示了当前与服务器连接的所有用户信息,包括用户ID、用户名和用户的权限。用户登录记录栏里,显示了客户端用户的一些登录信息历史,包括时间、操作、用户ID、用户名和登录失败原因等信息。通过这个窗口可以了解到有哪些用户进行过什么操作的。 客户端应用程序主界面设计如图5-1-2。图 5-1-2客户端应用程序主界面为了使用户能够很方便快捷的查看本仓库的产品信息,所以本客户端应用程序的主界面设计简单,在主界面上放置了一个表格式的浏览栏。通过这个表格浏览栏可以方便快捷的浏览本仓库的所有存储产品。还设置了一个状态栏,在状态栏中显示了有当前的用户名、用户的权限和本仓库名。当然,客户端应用程序需要对产品进行相关的操作,这些强大的功能都在方便小巧的住菜单里。在编辑主菜单里有产品查找功能:可以通过产品名查找所有仓库里有的产品。界面如图 5-1-3。图 5-1-3产品查找(二) 用户管理模块的设计用户管理模块的设计也就是一个信息安全的管理,通过对用户的管理可以管理整个系统操作安全。所以本系统把用户管理分为五个小模块:用户登录模块、用户信息注册模块、用户删除模块、用户密码修改模块和用户权限修改模块。下面来分别介绍这五个模块。1. 用户登录模块。本模块窗口是在客户端应用程序运行开始的就出现的。如图5-2-1所示。本窗口是登录系统的通道,在窗口上有用户ID输入框,用来获取登录的用户ID。下面的密码框用来获取用户密码。通过确定按键来向服务器发送登录信息(用户ID、密码)。服务器收到请求后,就核查用户信息。如果核查成功,就回复部分用户信息(用户名、用户权限、用户所管理的仓库)。客户端收到信息后就通过权限来配置客户端应用程序的操作许可。如果核查失败了,就发送登录失败信息。客户端收到不同的失败信息后,向用户显示不同的图 5-2-1用户登录提示信息,并且不给与登录。2. 用户信息注册模块。为了注册方便,本模块是在客户端实现的,窗口如图5-2-2所示。本窗口是在客户端应用程序的主菜单中的安全管理中开启的,只有高级管理员(Administrator)才能开启本模块进行用户注册。在窗口中输入用户信息确定后,就会向服务器发送用户注册请求,服务器再来完成相应的注册。图 5-2-2用户信息注册3. 用户删除模块。本模块和用户注册模块一样,是位于客户端,操作窗口如图5-2-3所示。在主菜单安全管理中开启,只有高级管理员才能开启本模块进行用户删除。在窗口上的浏览栏中显示了所有的已注册用户。只需要选择要删除的用户,按按键就可以删除图 5-2-3用户删除不用的用户了,而且在删除的时候还增加了安全检查机制,对当前活动用户是无法删除的。然后按按键就可以想服务器发送用户删除请求了。由服务器来对用户进行删除操作。4. 用户密码修改模块。本模块也是位于客户端应用程序中的,其功能也就是修改个人用户密码。所以本模块可以由所有用户开启,来更改自己的密码,而不能更改别人的密码,包括高级管理员。窗口是设计比较简单,输入框来接收当前用户的正在使用的密码,来确认更改密码的用户的合法性。输入框接收更改后的新密码,输入框接收新密码的再次确认,以防止用户输错新密码,而再以后无法登录。图 5-2-4用户密码修改5. 用户信息修改模块。本模块的功能是修改所有管理员和查看者用户的用户信息。只有高级管理员才能开启本模块进行用户信息修改。图 5-2-5用户信息修改(三) 产品入库模块的设计这部分模块的设计是系统运行的核心部分之一,主要负责仓库的产品进入。本模块的窗口设计如下 图 5-3-1:图 5-3-1产品入库模块窗口上有总入库单表格栏、入库单栏、入库产品栏和产品添加栏。各自功能如下:1. 总入库单表格栏:里面显示了所有入库单,包括入库单的信息。下拉列表用来筛选某一时间段的入库单显示在表格栏里,方便查找。2. 入库单栏:显示了当前选定的入库单的相关信息。3. 入库产品栏:里面显示的是当前入库单里的入库产品。4. 产品添加栏:用来给入库单添加产品的操作栏,里面的产品显示栏里显示有所有注册产品。还可以通过产品管理来新注册产品。模块内部实现:总入库单表格栏直接连接入库单表(EnterWareHouse)显示所有入库单,通过(EnterWareHouse)的滚动事件,在入库单栏里显示选定单信息,并且连接入库单表(EnterWareHouse)、产品表(Production)和入库单产品表(EWHProd),显示入库单入库产品信息在入库产品栏里。(四) 产品出库模块的设计这部分模块的设计与产品入库模块的设计类似,是负责产品的出库。模块界面如图 5-4-1。图 5-4-1产品出库模块窗口上有总出库单表格栏、出库单栏、出库产品栏和产品添加栏。各自功能如下:1. 总出库单表格栏:里面显示了所有出库单,包括出库单的信息。下拉列表用来筛选某一时间段的出库单显示在表格栏里,方便查找。2. 出库单栏:显示了当前选定的出库单的相关信息。3. 出库产品栏:里面显示的是当前出库单里的出库产品。4. 产品添加栏:用来给出库单添加产品的操作栏,里面显示有仓库里所有的产品。模块内部实现:总出库单表格栏直接连接出库单表(OutWareHouse)显示所有出库单,通过(OutWareHouse)的滚动事件,在出库单栏里显示选定单信息,并且连接出库单表(OutWareHouse)、产品表(Production)和出库单产品表(OWHProd),显示出库单出库产品信息在出库产品栏里。(五) 产品转仓模块的设计这部分的模块的功能是仓库产品的调整。其模块界面如图 5-5-1。图 5-5-1产品转仓模块窗口上有总转仓单表格栏、转仓单栏、转仓产品栏和产品添加栏。各自功能如下:1. 总转仓单表格栏:里面显示了所有转仓单,包括转仓单的信息。下拉列表用来筛选某一时间段的转仓单显示在表格栏里,方便查找。2. 转仓单栏:显示了当前选定的转仓单的相关信息。3. 转仓产品栏:里面显示的是当前转仓单里的转仓产品。4. 产品添加栏:是用来给转仓单添加产品的操作栏,里面显示有源仓库里所有的产品。模块内部实现:总转仓单表格栏直接连接转仓单表(TransferWareHouse)显示所有转仓单,通过(TransferWareHouse)的滚动事件,在转仓单栏里显示选定单信息,并且连接转仓单表(TransferWareHouse)、产品表(Production)和转仓单产品表(TWHProd),显示转仓单转仓产品信息在转仓产品栏里。(六) 产品信息管理模块的设计这部分模块是用来注册产品信息的。注册了产品信息之后,才能把注册过的产品用来进行入库、出库和转仓操作。模块界面如图 5-6-1。图 5-6-1产品信息管理所有产品信息栏里的表格是直接与产品表(Production)相连接的,当(Production)滚动时,就将当前的产品信息显示在选定产品信息栏里。通过添加、修改、删除等按键来完成对客户端数据集(Production)的更改。当更改完成后,按确定按键来完成对服务器的应用更新。(七) 仓库信息管理模块的设计本模块用于对仓库的信息进行管理。只有管理员才能开启本模块进行仓库的添加,删除和修改的操作。模块界面如图 5-7-1。图 5-7-1仓库信息管理七、 开发中的难点和解决技巧在本系统的设计过程中,遇到了一些信息知识和技术上的困难。为了克服这些困难,满足计算机管理的需要,我采取了下面一些原则:1统一各种原始单据的格式,统一账目和报表的格式。2删除不必要的管理冗余,实现管理规范化科学化。3程序代码标准化,确保软件的可维护性和实用性。4界面尽量简单化,满足不同层次员工的需要。5建立操作日志,系统自动记录所进行的各种操作。具体难点与具体解决办法如下:1 在分布式的设计上,本来是想采用CORBA的,但是由于CORBA在配置和实施上的困难,所以改用了DCOM技术。2 在数据库的选择上,原本是想采用Oracle 9i的,后来又考虑到Oracle 9i太大了,在一个仓库管理系统里实施不是很必要,维护的代价太高,所以就改用MS SQL Server 2000。来做数据库的维护了。3 在写程序的时候,遇到过读数据失败过,经过多次调试之后,发现问题出现在int 型的数据在数据库中如果为空的话,在读出后直接把它赋值给int 型变量时就会出错。解决办法就是读出数据后先检查是否为空,如果为空就不赋值给变量。或者是设计这种数据在数据库中有缺省值,这样这些数据项就不会为空了。为了简单起见,我采用的是后者。4 在数据库的表中,如果有timestamp类型的数据,在客户端对表修改了多项记录的话,是无法提交更新的。解决方法是一项记录一项记录的提交,也就是修改一项记录就提交一次,这样就可以达到修改多项记录的效果。而且更新的提交方法要设置成修改提交,而不是所有提交。这样可以减少数据交换量,从而提高效率。八、 结论库存管理系统是一个通用软件,可用于原材料库、半成品库、成品库、中转库、行政劳保库等辅助库房的管理。通过和生产计划子系统、车间作业子系统、销售子系统、采购子系统等其它子系统的联系,完成对企业整个物料的有效管理。参考文献1 邵佩英编著,分布式数据库系统及应用,北京:科学出版社,2000.6。2 杨正洪著,SQL SERVER 2000 关系数据库系统管理和开发指南,北京:机械工业出版社。2001.9。3 Siberschatz , A. Database System Concepts, 4th Edition.(杨冬青 等译)北京:机械工业出版社。2003.3。4 李文军 等著,分布式对象技术,北京:机械工业出版社,2004.1。5 李幼仪,甘志编著,C+Builder 高级应用开发指南,北京:清华大学出版社,2002.11。6 张海藩编著,软件工程导轮、(第四版),北京:清华大学出版社,2003.12。7 萨师煊,王珊编著,数据库系统概论、(第三版),北京:高等教育出版社,2000.2。8 Grady Booch , UML 用户指南,(邵维忠 张文娟 孟祥文等译),北京:机械工业出版社,2001.6附录一、创建数据库表格的SQL语句use mastergo/*检查数据库是否存在*/if exists (select * from dbo.sysdatabases where name = WareHouseMS) drop database WareHouseMSGOcreate database WareHouseMS/*创建WareHouseMS数据库*/gouse WareHouseMS/*使用WareHouseMS数据库*/go/*检查仓库信息表是否存在*/if exists (select * from dbo.sysobjects where id = object_id(Ndbo.WareHouse) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo.WareHouseGO/*检查产品信息表是否存在*/if exists (select * from dbo.sysobjects where id = object_id(Ndbo.Production) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo.ProductionGO/*检查仓库存储信息表是否存在*/if exists (select * from dbo.sysobjects where id = object_id(Ndbo.WareHouseStorage) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo.WareHouseStorageGO/*检查入库单信息表是否存在*/if exists (select * from dbo.sysobjects where id = object_id(Ndbo.EnterWareHouse) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo.EnterWareHouseGO/*检查入库单和产品表是否存在*/if exists (select * from dbo.sysobjects where id = object_id(Ndbo.EWHProd) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo.EWHProdGO/*检查出库单信息表是否存在*/if exists (select * from dbo.sysobjects where id = object_id(Ndbo.OutWareHouse) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo.OutWareHouseGO/*检查出库单和产品表是否存在*/if exists (select * from dbo.sysobjects where id = object_id(Ndbo.OWHProd) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo.OWHProdGO/*检查转仓单信息表是否存在*/if exists (select * from dbo.sysobjects where id = object_id(Ndbo.TransferWareHouse) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo.TransferWareHouseGO/*检查转仓单和产品表是否存在*/if exists (select * from dbo.sysobjects where id = object_id(Ndbo.TWHProd) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo.TWHProdGO/*检查用户信息表是否存在*/if exists (select * from dbo.sysobjects where id = object_id(Ndbo.Users) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo.UsersGO/*经过检查并处理,以上表肯定不存在*/*创建仓库信息表WareHouse*/CREATE TABLE dbo.WareHouse (wh_ID int PRIMARY KEY CLUSTERED ,wh_Name char (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,wh_Address char (40) COLLATE Chinese_PRC_CI_AS NULL ,wh_Tel char (20) COLLATE Chinese_PRC_CI_AS NULL ,wh_Linkman char (10) COLLATE Chinese_PRC_CI_AS NULL ,wh_Lm_MTel char (20) COLLATE Chinese_PRC_CI_AS NULL ,wh_Remark varchar (100) COLLATE Chinese_PRC_CI_AS NULL) ON PRIMARYGO/*创建产品信息表Production*/CREATE TABLE dbo.Production (pd_ID int PRIMARY KEY CLUSTERED ,pd_Name char (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,pd_Specification char (10) COLLATE Chinese_PRC_CI_AS NULL ,pd_PatchNum int NULL ,pd_PackUnit char (6) COLLATE Chinese_PRC_CI_AS NULL ,pd_BasicUnit char (6) COLLATE Chinese_PRC_CI_AS NULL ,pd_PackSpec char (10) COLLATE Chinese_PRC_CI_AS NULL) ON PRIMARYGO/*创建仓库存储信息表WareHouseStorage*/CREATE TABLE dbo.WareHouseStorage (whs_ID int PRIMARY KEY CLUSTERED ,whs_whID int NOT NULL REFERENCES WareHouse(wh_ID),whs_pdID int NOT NULL REFERENCES Production(pd_ID),whs_pdNum int NOT NULL ,whs_StorageTime datetime NULL) ON PRIMARYGO/*创建入库信息表EnterWareHouse*/CREATE TABLE dbo.EnterWareHouse (ewh_ID int PRIMARY KEY CLUSTERED ,ewh_whID int NOT NULL REFERENCES WareHouse(wh_ID),ewh_Principal char (10) COLLATE Chinese_PRC_CI_AS NULL ,ewh_EnterReason char (20) COLLATE Chinese_PRC_CI_AS NULL ,ewh_ConsignmentUnit char (20) COLLATE Chinese_PRC_CI_AS NULL ,ewh_Consigner char (10) COLLATE Chinese_PRC_CI_AS NULL ,ewh_Time datetime NULL ,ewh_Remark varchar (100) COLLATE Chinese_PRC_CI_AS NULL) ON PRIMARYGO/*创建入库单和产品表EWHProd*/CREATE TABLE dbo.EWHProd (ewhp_ID timestamp PRIMARY KEY CLUSTERED ,ewhp_ewhID int NOT NULL REFERENCES EnterWareHouse(ewh_ID),ewhp_pdID int NOT NULL REFERENCES Production(pd_ID) ON PRIMARYGO/*创建出库信息表OutWareHouse*/CREATE TABLE dbo.OutWareHouse (owh_ID int PRIMARY KEY CLUSTERED ,owh_whID int NOT NULL REFERENCES WareHouse(wh_ID),owh_Principal char (10) COLLATE Chinese_PRC_CI_AS NULL ,owh_OutReason char (20) COLLATE Chinese_PRC_CI_AS NULL ,owh_CarryUnit char (20) COLLATE Chinese_PRC_CI_AS NULL ,owh_Consignee char (10) COLLATE Chinese_PRC_CI_AS NULL ,owh_Time datetime NULL ,owh_Remark varchar (100) COLLATE Chinese_PRC_CI_AS NULL) ON PRIMARYGO/*创建出库单和产品表OWHProd*/CREATE TABLE dbo.OWHProd (owhp_ID timestamp PRIMARY KEY CLUSTERED ,owhp_owhID int NOT NULL REFERENCES OutWareHouse(owh_ID),owhp_pdID int NOT NULL REFERENCES Production(pd_ID) ON PRIMARYGO/*创建转仓信息表TransferWareHouse*/CREATE TABLE dbo.TransferWareHouse (twh_ID int PRIMARY KEY CLUSTERED ,twh_owhID int NOT NULL REFERENCES WareHouse(wh_ID),twh_ewhID int NOT NULL REFERENCES WareHouse(wh_ID),twh_Consignee char (10) COLLATE Chinese_PRC_CI_AS NULL ,twh_owhPrincipal char (10

温馨提示

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

评论

0/150

提交评论