《仓库管理系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《仓库管理系统的设计与实现.docx(26页珍藏版)》请在课桌文档上搜索。
1、随着社会经济的不断发展,各个企业也面临者各种机遇和挑战.为J能够在这个信息化的时代接着发展卜.去,就必需紧跟上时代的脚步。随着网络技术的不断发展,现代物流技术也在不断的更新换代,传统的人工记载的办公方法已经无法满意很多企业的须要,因此,每个企业都须要一个自动化的仓库管理系统。仓库是每个企业都必需违慎管理的地方,因为货物是企业最基本的本钱,只有很好地管理好自己企业的货物,才能在竞争如此激烈的社会中谋得一片天地。本课题正是依据这一理念,开发r一个功能比较完善,基本能满总企业要求的仓库管理系统。1.1 系统开发背景随若计算机技术的发展,一个耕新的信息化的世界已经呈现在我们眼前,如今,你可以随处看到很
2、多不同种类的信息管理系统。商品是企业的根本,仓库是企业用来保存商品的地方。因此,仓库对于企业特别武要。所以说一个胜利的企业必定会有一个好的仓库,而一个好的仓库就确定会有一个先进的仓库管理系统作为支撑。但是,传统简洁、静态的仓库管理系统,因为其不具符信息共享功能,且无法保证货物的正确的进库、库存限制和发货等问题.己经无法确保企业资源的高效利用:而且,传统的仓库管理系统存在维护困难、开发困难等碇点,极大的奢侈企业的人力、物力,因此已经跟不上时代的步伐。所以说,个胜利的企业须要一个现代的仓库管理系统来保证企业产品的精细化管理,保证最大化利用企业资源。1.2 系统开发目的仓库是全部企业都不行缺少的部分
3、,因此,一个企业想要蓬勃发展,管理好自己的仓库就显得特别重要。但是仓库中的货物总是不断变动的,因此,就须要有人将仓库中货物的增减状况进行记录。但是传统的人工记录的方法存在着很多问题,比如信息平安行性低、查询效率低等。因此,对于一个想要不断发展的企业来说,这种人工记录的方式必需淘汰.随着计停机技术的不断发展,计算机的运用已经特别普遍,每个企业都拥有计算机。运用计算机对库存信息进行管理有着很多人工记录所无法比拟的优点,比如查询快捷、信息平安性将、添加删除便利等。基于以上这些缘由,我开发了一个仓库管理系统。本系统能够保丽货物的正确的进库、库存限制和发货,并且,系统维护简洁,不须要动用太多的人力、物力
4、,可以有效的帮助企业管理好仓库。1.3 系统开发平台本系统采纳B/S的三层架构,系统运用MyECIiPSe开发工具,基于J2EE平台,采纳MYC开发模式,JSP、Stn1.tS技术,选用SQ1.Server2000作为系统的数据库平台.MyEcIipse全名MyECIiPSeEnterpriseWorkbench.简称MyECIiPSe。MyECIiPSe企业级工作平台是对Ee1.iPSeIDE的扩展,利用它我们可以极大的提裔在数据库和J2EE的开发、发布,以及应用程序服务器整合方面的工作效率。它是功能丰富的J2EE集成开发环境,包括了完备的编码功能、调试功能、测试功能、发布功能等,完整支持H
5、TM1.、Struts%JSP、CSS、Javascript-.SQ1.,HibernaIe等框架.JSP技术JSP技术是主流Web开发技术中运用最为广泛的一种,它是由Sun公司推出的一款基于Java语言的Web开发技术。在Sun公司的提倡下,很多公司都参加到了JSP的开发之中,使得JSP成为了动态网页技术的标准。JSP技术不仅继承了Java语言的强大功能,可以便利的开发出先进、平安和跨平台的电子商务系统,而且还拥有JaVaServ1.et的稳定性,并可以运用Serv1.et供应API.JSP是目前比的热门的一款Web网页开发技术,由它开发出的系统具有良好的扩充性,好用性较高。JSP技术运用J
6、ava编程语言编写类XM1.的tags和scriptIeIS来封装动态网页产生的处理逻辑。JSP技术将网页的设计和显示与网页逻辑分别开来,并且设计成支持可重用的基于组件,这些功能极大的提高了基于7曲的应用程序的开发效率.当有访问JSP页面的恳求发送到Web服务器时,首先将其中的程序段进行执行,然后将执行结果连同JSP文件中的H口I1.代码起返回给客户。插入的Java程序段可以用来进行数据库、重新定向网页等操作,以实现建立动态网页所须要的功能.JSP与JaVaSerVIet一样,是在服务器端执行的,通常返回绐客户端的就是一个HTM1.文本,因此客户端只要有阅读器就能阅读。1.4 .3Struts
7、2Struts2框架是在Struts1.和WebWork框架的基础上开发出来的,它汲取了2个框架的优点.Struts1.框架和KCbWOrk框架是2个完全不同的框架.因此,虽然Struts2感觉上似乎是StrUtS1.的升级版,但是却和StrUtS1.相比,在设计理念上有着本质的不同。在体系结构和运行流程上StrUtS2和WebWoik特别相像,因此,可以将Struts2理解成是继承了WebWork的血统。SIrUIS2框架大致是由核心限制器、业务限制器和用户实现的业务逻辑组件3个部分组成。其中,Fi1.terDispatcher充当着核心限制器,该限制城作为一个Fi1.ter运行在NCb应用
8、中,并负贡拦截用户的全部恳求。用户运用软件时,假如恳求最终是以“.action”结尾,那么,该恳求就将转入到StrUIS2框架中进行处理。用户自己实现的Aetion类的实例其实就是业务限制器,在这些ACtion类中,般都包含个execute。方法,该方法的返回值一般都是一个字符串,就是一般我们所说的逻辑视图名,并且,总有一个实际要转到的视图资源和这些逻辑视图名相对应。虽然Struts2在核心限制器和业务限制器方面为用户供应了很多帮助,但是在业务逻辑组件方面,它确没有供应太多的帮助。业务逻辑组件其实只是一个表现层的框架,因此在实际开发过程中,当限制器须要获得业务逻辑组件时,通常都要通过Faeto
9、ry模式来获得所需的业务逻辑组件实例.1.5 .4MicrosoftSO1.Servr2000MicrosoftSQ1.Server2000是一款由微软公司开发的数据库产品。它拥有很多的分类,但基本都是产品规格上的变更,内部包含的服务不同.一般有企业版,各人版,移动版以及搜寻引擎类等版本。其中,企业版相对与其它几个版原来说,功能比较齐全,但是确不能在WindOWXP下安装,这点比较缺憾。MicrosoftSQ1.Server2000的主要作用是对程序所须要的数据进行存储、分析、查询、修改等操作.MicrosoftSQ1.Server2000简化了之前版本数据库中的管理和优化功能,并且极大的提高
10、J在线商务应用程序胜利部署所需的牢靠性和伸缩性。其中,日志传送、在组备份和故障切换群集等功能用以提高牢靠性的特性。并且,对32颗CPC和64GBRAM的支持也在很大程度上改进在伸缩性方面。通过对数据文件尺寸的自动管理、基右向导的数据库拷贝、自动内存管理和简化的故障切换群集安装与管理等一系列的自动优化和改进后的管理特性,使得用户能够快速部署并有效管理在线商务应用程序。MicrosoftSQ1.SerVer还供应了数据库完整性爱护在SQ1.SerVer中,为了对实现数据庠完整性的约束,则通过检杳(Check)约束、默认值(Defau1.1.)约束、用户定义的数据类型、规则(RUIe)、存储过程(S
11、tOredprocedure)、触发器Crrigger)等技术来实现,从而使数据库中的数据达到一样、正确,以提高数据库系统的性能.2系统需求分析需求分析是系统开发的首耍步骤,也是干脆影响系统整体性能和功能的关键步骤。系统的需求分析主要是对系统的可行性、性能和功能进行详细地分析。不合理的需求分析,会使系统的开发环节.出现很多错误和走很多弯路,导致系统开发时间长.效率低,系统顺量受到影响。2.1 运行环境分析硬件需求CPU:IG以上内存:512M以上硬盘:IG以上系统环境操作系统:WindowXPVindow20数据阵:SQ1.Server2(XM)开发工具:MyEcIipsc开发语言:JaVa2
12、.2 功能模块分析(1)功能分析系统具有仓库管理系统的基本功能.系统分为两个部分,一个是用户部分:用户可以运用用户名和密码登录系统进行操作。个是系统部分:这部分包括对商品的入库、出库操作,在库比物查询等功能。(2)模块分析登录模块:仓库管理人员进入系统必需经过登录。添加商品信息模块:新入库的商品,在进入仓库之前,必需经过仓库管理人员的进行添加。入库模块:仓库中已有的商品才能进行的操作,主要是入库数量上的变更。商品类别管理模块:商品类别来区分各种商品,将商品分类管理。2.3 系统目的分析仓储物流在企业的整个供应链中起到一个至关重要的作用,假如不能正确的保证货物的入库,库存货物的发货,将导致企业管
13、理费用的增加。并且,仓库管理人员的工作时间会延长,工作的效率不高。开发这个系统,主要的目的就是帮助仓库管理人员提高工作效率,降低工作时间.实现仓库货物在管理上的系统化,规范化和自动化。2.4 性能分析本系统操作简洁,界面美观,运用本系统的仓库管理人员不须要驾驭太多的专业学问便可娴熟运用。系统能够快速的将仓库管理人员对商品信息的操作(包括商品的入库、出库,商品信息的修改和制除,商品类别的添加和删除等)显示在对应的页面中,达到“即时操作,即时显示的效果。系统功能完善,包括了一般仓库管理系统的全部功能,完全能够满.意用户的须要。系统的设计是系统开发中的一个重要环节。本章将主要介绍一个基丁B/S架构的
14、仓库管理系统的总体结构、系统架构和数据库设计。总体结构主要介绍了各个模块之间的关系,数据库设计主要说明白表的建立和数据之间的关系。3.1 总体结构本系统包含了仓库管理系统所须要的基本功能,能够满意一般用户对于仓库管理的须要,能有效的提高仓库管理人员的工作效率.依据系统的需求分析,系统大体分为以下几个模块:登录模块、添加商品信息模块、出库模块、入库模块、商品类别管理模块。其中,各个模块乂有不同的了模块。总体结构如图3.1所示。图3总体结构图3.2 系统架构系统是基于B/S结构开发的B/S结构分为表示层、业务层、数据层三层。其中:(1)表示层:作为用户的接口层,负责用户与整个系统交互,利用JSP技
15、术来实现。(2)业务以:作为业务逻辑的封装必,采纳StrUtS2框架,页面接受到用户息求后,将数据层取到的数据进行处理,最终把处理结果在表示层中显示出来。(3)数据层:作为数据的存储层,采纳SQ1.SCrVer2000数据库进行数据的管理.3.3 数据库设计3.3.1 概念结构设计概念设计从系统的需求动身,用数据流的形式将设计对象表达成完整的抽象实体。但不涉及模块内部的细微环节。它的描述工具是E-R图,如图3.2所示.图3.2系统E-R图3.3.2逻辑结构设计逻辑结构的描述方法是基本表,它反映了系统中所涉及数据的逻辑结构,依据系统中数据信息的特点,将数据的概念模型转换为关系模型.(I)用户信息
16、关系模式,其中用户名为关系主键。用户(用户1D、用户名、密码)(2)商品信息关系模式,其中商品号码为关系主键。商品(商品号码、商品名、生.产产地、商品数量、类别ID)(3)商品类别信息关系模式,其中类别ID为关系主链。商品类别(类别1D、类别名)(4)出库商品信息关系模式,其中商品号码为美系主键。出库商品(商品号码、商品名、生产产地、出库数量、类别ID)表3.1商品信息表(kehu)列名数据类型可否为空说明Com1.PVarcharNOTNU1.1.商品IDcomnameVarcharNU1.1.商品数量sortIDint(4)NU1.1.商品类别ID3.2商品出库信息表(outkehu列名数
17、贝类型可否为空说明comIDVarchar50)NOTNU1.1.商品IDComnnmeVarchar50)N1.1.1.商品名称CoinfroiVarchar(50)NU1.1.生产厂家ComnumbcrChar(10)NU1.1.商品致届sortIDint(4)Ninx商品类别11)表3.3仓库管理员信息表列名数据类型可否为空说明userIDchar(10NOTNU1.1.管理员IDuscr11a三echar(10)NU1.1.管理员姓名passwordchar(10)NU1.1.密码表3.1商品类别管理信息表(sort)列名数据类型可否为空说明SortIDIn1.NOTNU1.1.商品类
18、别IDSortNaneChar(IO)NU1.1.商品类别名称3.3.3物理结构设计本系统采纳MiCroSOftSQ1.Server2000数据库系统,系统供应f良好的数据库管理功能来管理商品数据。数据库名为fmw,表名分别为kehu、abc、OUtkChu、sort。数据的备份和第原来纳数据库系统本身供应的数据导入/导出工具来完成,形成相应的数据文件。其中数据文件名为fmwDataJIDF;日志文件名为f11w1.og.1.DF。4系统实现该系统实现了仓库管理系统的基本功能,包括商品的入库、出库,商品信息的修改和删除,商品类别的添加、删除。用户(即仓库管理人员)登录后可以进入系统运用主界面,
19、在主界面上,仓库管理人员可以对本系统的各个界面进行操作。4.1 数据库连接和页面显示4.1.1 数据库连接本系统与数据库的连接方式,包括对数据库中的信息进行添加、删除、修改,都封装在一个名为DBOPer.juva的文件中,以便仓库管理人员在计算机上运行本系统时,对数据库进行必要的操作。详细代码如下。importjava.sq1.*;pub1.icc1.assDBOperpub1.icDBOperO(tryC1.ass.m(coc11.microsoft.jdbc.sq1.server.SQ1.ServerDriver*):)catch(C1.assNotEoundExcep1.ione)()p
20、rivateConnectiongetConnection()Connectionconn=nu1.1.;tryco11n=DriverManager.getConnection(jdbc:sq1.server:/Ioca1.has1.:1433;DatabaseName=fmw,sa,sa);填写相关的数据库名和数据库用户名和密码StatementStmt=COnn.CreatoStatement();JcatchCSQ1.Exceptione)System,out.printIn(e.getMcssage();)returnconn;)pub1.icResu1.1.Se1.executeQ
21、uery(Siringsq1.)Resu1.tSetrs=nu1.1:1.ryConnectionconn=this.getConnectionO;Statementstmt=conn.CreatoStatement():rs=s1.mt.executeQuery(sq1.);catch(SQ1.Exceptione)System,out.printIn(e.getMessage();returnrs;/用于执行InSert.、Update、DeIete语句以及SQ1.DD1.语句pub1.icintexccuteUpdate(Stringsq1.)ininum=O;try(Connectio
22、nconnthis.getConnection();初始化数据库的连接Statementstm1.=cnn.Crea1.eSta1.einentO;执行一个连接num=stmt.executeUpdate(sq1.);执行SqI的操作catch(SQ1.Exceptione)System,out.print1.n(e.getMessageO);returnnum;)关闭一个连接privatevoidC1.OSeCOnn(COnneCtiOnCOnn)if(nu1.1.!=conn)try(conn,c1.ose();catch(SQ1.Exceptione)e.PrintStackTraceO
23、;关闭一个连接privatevoidC1.oSeStaIn(StatCmen1.Stmt)if(nu1.1.!=stmt)try(stmt,c1.ose():catch(SQ1.Exceptione)e.PrintStackTraceO;)4.1. 2页面显示本系统的页面显示很多都是采纳的分页显示.因为,在一般的状况下,仓库中的商品补可能只有一种,因此,要将商品的信息分开显示出来就须要用到分页查询的功能。详细代码如下。PUb1.iC1.is1.queryByPge(inipageSize,intPUgeNOW)(1.ist1.ist=new11ay1.istO;tryif(this.getCo
24、nnection()!=nu1.1.&PageSiZe0fiPHgeNOW0)pstmt=this.getConnection().prepareStatement(*se1.oct*fromkehuorderbyCom1.D1imit”+(PageNO1.r*pageSize-pageSiZe)+pageSize):以商品ID为标准查询数据表kchu中的商品信息rs=pstmt.executeQueryO;whi1.e(rs.next()kehu=newKehu():kehu.Se1.Cora1.D(rs.getIn1.(D);kehu.SetComname(rs.getString(2);
25、kchu.SetComfrom(rs.gctString(3);kehu.se1.Comrunber(rs.getS1.ring(4);kehu.SetSortID(rs.getString(5);1.ist,add(kehu);)catch(SQ1.Exceptione)e.priHtStackTraceO:return1.ist;)4.2 登录模块本系统是一个单用户系统。仓库管理人员运用用户名和密码登入系统之后,可进入主界面对系统进行操作。登录界面设计,如图4.1所示。用户登录:用户名,f*v密码I.图4.I用户登录界面当仓库管理人员登录系统,必需输入正确的用户名和密码,当输入的用户名或者
26、密码错误时,就会出现登录失败的状况,实现推断登录人员用户名和密码是否错误功能的主要代码如下。pub1.icStringexecuteOthrowsExceptionDBOperdbpernewDBOperO:StringSqI=se1.ectfromabcwhereusername=+username+”andpassword-+password+*”;查询数据表abc中是否有这个用户名和常码Rcsu1.tSetrs=dbpcr.CxecuteQucry(sq1.):System.out.print1.n(sq1.);if(rs.nextO)returnmain”:)e1.sereturner
27、ror”;杳询结果假如有则返回到main,没有,则返回error,这两个返回值对应两个JSp页面4.3 主界面横块当仓库管理人员用正酹的用户名和密码登录进系统之后,即可干脆进入到主界面。在主界面上,有各个子功能界面的超链接选项,包括商品信息查询、商品入库、新商品入库管理、商品类别管理、商品出库信息杳询。当仓库管理人员完成工作后,即可选择退出。主界面如图4.2所示。应用界面:afti商品入库Sfi鳖整商Ia麴管理噂髀a图4.2应用界面4.4 商品信息查询模块本模块主要功能为商品信息查询。仓库管理人员进入该页面后,可以在本模块的界面中查询到全部商品的信息,并且还有关于商品出阵和修改商品信息操作的超
28、链接选项。界面如图4.3所示。酉品信息商品号码-tKX而B名称胡厂家FJodXS商品类别ID出修改1优假雌瓶I旗2003出库修谀2颤传旅剽词1001出库修改3海法三局矽海港凝502出库修改图4.3商品信息界面从图中可以看到,仓库管理人员可以看到全部商品的信息。这个主要由action包中的ShOWGoOdSACtion.java类来实现的ShowGoodsAction.java类的作用是创建。个链表,将要显示的商品信息放入这个链表中。详细代码为:ShowGoodsAciton.java:pub1.icc1.assShowGoodsActionpub1.icStringexecuteOthrows
29、ExceptionDBOperdb=newDBOpcr():Resu1.tSetrs-db.PxecuteQuory(*se1.ect*fromkehu);查询kehu这个表Array1.iStIistGoods=newArray1.ist():/创建个名为IiStGoOdS的链表whi1.e(rs.next()Goodsgoods-newGoodsO:goods.Se1.Com1.D(rs.ge(String(D);goods.SetComname(rs.getString(2):goods.SetComnumber(rs.getString(4);goods.setSortID(rs.ge
30、tString(5);goods.SetComfrom(rs.getString(3):IiS1.GOOds.Hdd(goods);/将取出的商品信息放到IiSIGOOdS这个链表中ActionContextactionContoxt=ActionContext.getContext);Mapmap=actionContext.getpp1.ication();map.DU1.(IistGods,IistGoods);将链表里的内容放到InaP对象里return*success*;)4.4.1商品出库当仓库管理人m须要对在库商品进行出库操作时,只需在商品查询界面的相应的商品信息后点击出庠操作的
31、选项。点击出库选项之后,便进入到商品出库操作界面,界面如图4.4所示。商品信息等待出库商品信息如下【商(S号谙】1【滴品名称】优乐融啡笏茶【生产厂家】喜之郎【商品数量】200【商10类别3出库数量,50眄%图4.4商M出阵界面当仓库管理人员点击确定之后,页面会依据仓库管理人员输入的数优,对数据库中该商品的数量进行甜减。完成该功能所需的代码如卜PUbIiCc1.assDe1.eteWaresActionprivateStringComID;privateStringcoinnumber1:pub1.icStringexecute()throwsException!DBOperdbper=newD
32、BOper();Stringsq1.=updatekchusetComnumber=Comnumber-+comnumbcr1.+”WhereComID=+CoB1.1.D+”*;以商品ID为条件,将该商品在原有数量的基础上,减去输入的数量intnun-dbpe.executeUpdate(sq1.);System.Wrin1.In(SqI);if(num!=0)returnsuccess;e1.sereturnerror”;pub1.icStringgetConIDOreturnCOmID:pub1.icvoidsetComID(Stringcora1.D)thisID=coff1.ID;4
33、. 4.2商品信息修改当仓库管理人员须要对现在仓库中的商品信息进行修改时,只需在商品信息查询界面的相应的商品信息后点击修改操作的选项。修改选项是一个超徒接,它触发了一个action,将仓库管理人员所选的这行商品信息显示出来。如图4.5所示。原商品信息:优乐美如隼蝌詈Z郎图4.5商品信息修改界面从图中可以看到,页面上显示了将要修改的某一行商品的全部信息,并n可以干脆在方框内进行修改.完成这个功能的代码如下.pub1.icc1.assModify2ActionprivateStringcomID:privateStringcomnamc1:privateStringconron1.;private
34、Stringcomnumber1.:pub1.icStringexecute()throwsExceptionDBOperdbper=newDBOperO;Stringsq1.=updatekchusetcomnamc=+comname1.+*,comfron-*+confrora1.+*,comnumber-*+comumber1.+*wherecom!D=+comID+”以商品ID为标记,替换商品的信息,因为商品ID为主及,不能为换intnum=dbper.exccuteUpdate(sq1);System,out.print1.n(sq1.);if(num!-0)returnsucces
35、s”;)e1.sereturnerror”:)pub1.icStringgetCxnID()returncomID:)pub1.icvoidsetComID(StringcomID)thisID=comID;)4.5商品入库模块当有仓库中已有的货物进入仓库时,仓库管理人员可以运用主界面上的“商品入库”操作选项进入商品入库界面.在这个界面中,仓库管理人倒可以看到现有商品的全部信息,并且可以在相应的商品信息后面点击入库操作选项进行商品的入库操作。该界面如图4.6所示。商品信息商品号码I商品名临生产厂冢现有数量I两品类别I入库版刻眸赈再之图2003倒隔方便面10011.海飞经去局法瘫港飞整w2A1.
36、图4.6商品入库界面图中的商品信息的显示的方法和代码,参照4.4商品信息查询界面。4.5.1商品入库当点击了上图中的“入库”操作选项之后,就进入了商品入库操作的界面,在这个界面,仓库管理人员只需输入新入库的该商品的数量即可。该界面如图1.7所示。商品信息等待入库商品信息如下商品号弼】2【商品名称】来师他方便面【生产厂军】康师傅商品数量】100【商品类1501逋叫图4.7商品入库操作界面当仓库管理人员输入数量后,点击确定,即完成了对商品的入库操作。完成该功能的代码可参照完成图4.3功能所用的代码。之前很多次提到点击操作选项显示某一个商品的全部信息的操作功能,实现这个功能的代码如下。pub1.ic
37、c1.assModifyAction(StringcomID:pub1.icStringexecuteOthrowsExceptio11!Goodsgoods=ncwGoods():DBOPerdb=newDBOperO;Stringsq1.=*se1.ect*fromkehuwherecomID,*+comID+*;从数据库中查询所选商品ID的商品的信息System,out.print1.n(sq1.):Resu1.tSetis=db.exocuteQuery(sq1.);Array1.iStIistGoods1.=newArray1.istO:创建一个链表whiIc(rs.nextO)go
38、ods.Se1.Com1.D(rs.getString(1.);goods.SetComname(rs.getString(2);goods.SetComnumber(rs.getString(4);goods.SetSort1.D(rs.getString(5);goods.setComfrom(rs.getString(3):IiSIGOOdS1.add(goods):Maprequest=(Map)ActionContcxt.getContextO.get(request);request,pu1.(1isiGoods1.”,IiSIGoOdSD;将链表里的内容放到request对象里,
39、使网页能够取出return*success*:)pub1.icStringgetConID()returncomID:)pub1.icvoidsetComID(StringComID)thisID=comID;4.6 新商品入阵管理模块当有新的商品进入仓库中时,仓库管理人员需点击主界面的“新商品入库管理”选项。在进行添加商品信息的操作过程中,商品的类别选择是依据个连接着“sort”数据表的下拉他来选择的.当将新入库的商品的信息填写完毕之后,点击确定将新入库的商品的信息添加到管理商品信息的数据表“kehu”中。界面如图4.8所示。添加商品信息:商品号码:|41商品名称:芬达柠檬味汽水生产厂家I可
40、口可乐I商品数量:JooI商品类别:馍料VfIw1.图4.8新商品入库操作界面当点击“确定”之后,就将仓库管理人员输入的新入库商品的信息保存到了数据库中,功能实现的详细代码如下。import;import;importado.DBOper;import.*:pub1.icc1.assAddActionprivateStringcon11)=nu1.1.;privateStringcomnamc=nu1.1:privateStringconfron=nu1.1.:privateStringcomnumber-nu1.1:privateintSOrt.ID;初始化商品的信息pub1.icStri1
41、1execu1.e()throwsExceptionDBOperdbper=newDBOper();实例化一个DBOPerStringsq1.=*insertintokehu(comID,comnfune,comfrom,comnumber,sortID)va1.ues(,-+comID+,,+cxnname+,,+comfrom+*,+Jcomnumbcr+JSort1.DJ)”:将填写的信息保存到kehu数据表中ininum=dbper.executeUpda1.e(sq1.):if(num!-0)returnsuccess2”;e1.sereturnerror”;)pub1.icStri
42、nggetConIDOreturnconID;pub1.icvoidsetComID(StringCOm1.D)thisID=comID;4.7 商品类别管理模块在本文4.6章新商品入库管理模块中,我已经提到商品的类别选择是由个连接若“sort”数据表的下拉他来选择的。因此,必定有一个管理者商品类别的界面。界面如图4.9所示。商品类别管理:增加商品类别IBi1.类别退出图4.9商品类别管理界面如图可见,商品类别的管理有添加和删除两个方面。点击上图的“增加商品类别”选项可进行商品类别的添加操作,操作的实现界面可参照本文45章的图4.6新商品入库管理;点击“删除商品类别”选项可进行商品类别的删除操
43、作,在这个界面中,仓库管理人员可以看到现仃的全部的商品类别的ID和名称,并点击相应商品类别后的删除选项进行商品类别的删除。界面如图410所示.食品日用品蹄图4.10删除商品类别界面实现删除操作的代码和本文4.8章中图4.10科除商品出库信息的相像,可参照此代因上文提到添加新的商品信息时,商品类别是以下拉框的形式来选择的,下拉枢的代码如的DBOperdb=newDBOper();Resu1.tSetrs=db.executeQuery(*se1.ectsortID,SortNamefromsort*):/调用在DBOPer里封装好的类,从Sor1.表中杳询SorIID和soriNamewhi1.
44、e(rs.next()optionva1.ue=4.8商品出库信息管理模块当商品出库的时候,系统会记录下商品出库的信息并保存在数据库的“ou1.kehu”表中,信息包括出库的商品的详细信息和出库的数量。为了实现上述功能,在仓库管理人员执行出库操作的同时,系统会先执行记录下出库的全部信息,再执行出阵操作.如4.3图所示,出库的信息显示在F图4.U中。商品出库信息1优布眩场之弟50堡懿2康麻情方便面50食品堡麻3海飞丝去曷初春20日用品曜懿图4.U商品出库信息界面当仓库管理人员须要对出库商品信息做修改或者删除时,只需点击上图中的删除或者修改的操作选项。修改的界面同图4.4相像。删除出库商晶信息的时候,只得点击所要制除的那行商品信息后的删除选项即可。实现的代码如下。pub1.icc1.assDe1.eteWaresActionprivateintCOm1.D;privateStringcomnme=nu1.1;privateStringcomfrom=nu1.1;privateStringcomumber=nu1.1:privateStringsortID=nu1.1;pub1.icStringexecute()throwsExceptionDBOperdbper三newDBOperO;Stringsq1.=*de1.etefromo