仓库管理系统VB 毕业论文_第1页
仓库管理系统VB 毕业论文_第2页
仓库管理系统VB 毕业论文_第3页
仓库管理系统VB 毕业论文_第4页
仓库管理系统VB 毕业论文_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

仓库管理系统-毕业论文开设包含入库信息入库信息拥有设备库存设备代码对应111N出库信息出库信息拥有拥有还库信息还库信息拥有拥有拥有设备需求拥有设备需求关系模式设备代码(设备编码,名称)设备库存信息(编号,设备编码,库存数量,最小库存,最大库存,总数)设备入库信息(编号,设备编码,供应商,供应商电话,数量,价格,采购员)设备出库信息(编号,设备编码,出库时间,使用部门,数量,用途,领取人,经手人,用途)设备还库信息(编号,设备编码,数量,管理员,还库时间)设备需求信息(编号,设备编码,数量,开始时间,结束时间)计算机系统配置方案的选择和设计软硬件平台客户机/服务器:采用PentiumII或以上级别PC机,至少30M硬盘,Pentium90MHZ,支持VGA或分辨率更高的显示器客户机/服务器操作系统:Window98/Me,也可使用WindowsNT作为操作系统数据库:Access2000网络:以太网组成的局域网,可设多台客户机。系统总体安全性方案与措施由于仓库系统中的数据有一定的敏感性,因此系统采用用户登录验证,防止未经许可的用户使用系统。系统的用户管理模块,提供对系统账号的管理,以保证系统的安全性。第五章系统详细设计进入系统启动本系统时,将出现登录界面,用户可以直接双击主程序图标,首先出现的是一个用户登录的窗口,不同的用户以不同的身份登录,选好用户,填好密码,再单击确定就能进入系统的主界面,也就是主要的操作控制窗口,这里主要是通过系统菜单进行操作的。我们根据用户的要求,实现仓库的商品管理、出入库管理、查询管理及用户管理等功能。用户通过相应的模块,对仓库里的商品的基本情况进行更新、删除和查询,对商品的出库和入库进行管理,对出入库明细进行查询,对使用该系统的用户进行更新、删除和查询,对库存数量进行查询,用户通过简单的操作即可轻松的管理,仓库管理员是整个系统拥有全部的控制权。登陆界面在得到有效用户名(字符串长度非0)后,程序用如下代码(select*fromp_userwhereusername=’”&text1&”’andpassword=’”&text2&”’”)查询数据库,如果返回记录集非空则,登陆成功并进入主界面。登陆界面如下图:系统的缺省的用户名为admin,密码为admin.主界面登录完成之后,显示主程序窗口。并提供了一常用操作窗口,集成所有常用的操作,单击某个按钮就能弹出某个功能的界面。设备入库信息我们可以将新进的产品存入库中,可以查看、修改、删除入库记录。以其中“入库”按钮为例,说明它的事件处理函数。PrivateSubCommand9_Click()CallExcuteSql(rec_device_in,"select*fromdevice_in")rec_device_in.AddNewrec_device_in.Fields("code")=text31rec_device_in.Fields("入库时间")=Text32rec_device_in.Fields("供应商")=Text33rec_device_in.Fields("商家电话")=Text34rec_device_in.Fields("数量")=Text35rec_device_in.Fields("价格")=Text36rec_device_in.Fields("采购员")=Text37rec_device_in.UpdateCallExcuteSql(rec_device,"select*fromdevicewherecode='"&text31&"'")Ifrec_device.EOFAndrec_device.BOFThenrec_device.AddNewrec_device.Fields("code")=text31rec_device.Fields("现存数量")=0rec_device.Fields("最大库存")=0rec_device.Fields("最小库存")=0rec_device.UpdateEndIfrec_device.Fields("现存数量")=CInt(rec_device.Fields("现存数量"))+CInt(Text35)rec_device.Fields("总数")=CInt(rec_device.Fields("现存数量"))+CInt(rec_device.Fields("最大库存"))+CInt(rec_device.Fields("最小库存"))rec_device.UpdateCalltext31_ClickCallExcuteSql(rec_pub,"select*fromdevice_in")CallShowInfo(rec_pub,flexb)EndSub从上面的代码看出,当单击“入库”按钮时,系统构造rec_device_in记录集,随后新增一记录,将入库信息(设备编码,现存数量,最小库存,最大库存,总数)填入记录相应字段,然后调用”rec_device_in.update”将数据写入数据库.余下的代码(Calltext31_Click;CallExcuteSql(rec_pub,"select*fromdevice_in");CallShowInfo(rec_pub,flexb))用以初始化用户界面的入库数据并刷新用户界面的入库信息显示。设备管理主要代码如下:PrivateSubCommand7_Click()Ifrec_device.EOFAndrec_device.BOFThenrec_device.AddNewEndIfrec_device.Fields("code")=text41rec_device.Fields("现存数量")=Text42rec_device.Fields("最大库存")=Text43rec_device.Fields("最小库存")=Text44rec_device.Fields("总数")=CInt(Text42)+CInt(Text43)+CInt(Text44)rec_device.UpdateCallExcuteSql(rec_pub,"select*fromdevice")CallShowInfo(rec_pub,flexb)EndSub设备代码管理主要代码如下:PrivateSubCommand1_Click()IfText1<>""AndText2<>""Thenrec_device_code.AddNewrec_device_code.Fields("code")=Text1rec_device_code.Fields("name")=Text2rec_device_code.UpdateCallShowInfo(rec_device_code,flexb)Text1=""Text2=""ElseMsgBox("设备代码及设备名不能为空")EndIfEndSubPrivateSubCommand2_Click()IfText1<>""AndText2<>""ThenIfrec_device_code.State=adStateOpenThenrec_device_code.Fields("code")=Text1rec_device_code.Fields("name")=Text2rec_device_code.UpdateCallShowInfo(rec_device_code,flexb)Text1=""Text2=""EndIfElseMsgBox("设备代码及设备名不能为空")EndIfEndSubPrivateSubCommand3_Click()IfNotrec_device_code.EOFAndNotrec_device_code.BOFThenrec_device_code.Deleterec_device_code.UpdateCallShowInfo(rec_device_code,flexb)Text1=""Text1=""EndIfEndSub设备出库主要代码如下:PrivateSubCommand5_Click()CallExcuteSql(rec_device_out,"select*fromdevice_out")rec_device_out.AddNewrec_device_out.Fields("code")=text11rec_device_out.Fields("使用部门")=Text13rec_device_out.Fields("出库时间")=Text12rec_device_out.Fields("出库状态")=Text14rec_device_out.Fields("经手人")=Text15rec_device_out.Fields("数量")=Text16rec_device_out.Fields("领取人")=Text17rec_device_out.Fields("用途")=Text18rec_device_out.UpdateCallExcuteSql(rec_device,"select*fromdevicewherecode='"&text11&"'")Ifrec_device.EOFAndrec_device.BOFThenrec_device.AddNewrec_device.Fields("code")=text11rec_device.Fields("现存数量")=0rec_device.Fields("最大库存")=0rec_device.Fields("最小库存")=0rec_device.UpdateEndIfrec_device.Fields("现存数量")=CInt(rec_device.Fields("现存数量"))-CInt(Text16)rec_device.Fields("总数")=CInt(rec_device.Fields("现存数量"))+CInt(rec_device.Fields("最大库存"))+CInt(rec_device.Fields("最小库存"))rec_device.UpdateCalltext11_clickCallExcuteSql(rec_pub,"select*fromdevice_out")CallShowInfo(rec_pub,flexb)EndSub设备还库主要代码如下:PrivateSubCommand6_Click()CallExcuteSql(rec_device_return,"select*fromdevice_return")rec_device_return.AddNewrec_device_return.Fields("code")=text21rec_device_return.Fields("还库时间")=Text22rec_device_return.Fields("管理员")=Text23rec_device_return.Fields("数量")=Text24rec_device_return.Fields("归还人")=Text25rec_device_return.UpdateCallExcuteSql(rec_device,"select*fromdevicewherecode='"&text21&"'")Ifrec_device.EOFAndrec_device.BOFThenrec_device.AddNewrec_device.Fields("code")=text21rec_device.Fields("现存数量")=0rec_device.Fields("最大库存")=0rec_device.Fields("最小库存")=0rec_device.UpdateEndIfrec_device.Fields("现存数量")=CInt(rec_device.Fields("现存数量"))+CInt(Text24)rec_device.Fields("总数")=CInt(rec_device.Fields("现存数量"))+CInt(rec_device.Fields("最大库存"))+CInt(rec_device.Fields("最小库存"))rec_device.UpdateCalltext21_clickCallExcuteSql(rec_pub,"select*fromdevice_return")CallShowInfo(rec_pub,flexb)EndSub库存报警主要代码如下:PrivateSubCommand1_Click()UnloadMeEndSubPrivateSubCommand2_Click()CallExcuteSql(rec_pub,"select*fromdevicewhere现存数量>最大库存")CallShowInfo(rec_pub,flexb)EndSubPrivateSubCommand3_Click()CallExcuteSql(rec_pub,"select*fromdevicewhere现存数量<最小库存or现存数量>最大库存")CallShowInfo(rec_pub,flexb)EndSubPrivateSubCommand4_Click()CallExcuteSql(rec_pub,"select*fromdevicewhere现存数量<最小库存")CallShowInfo(rec_pub,flexb)EndSubPublicSubShowInfo(ByValrsAsADODB.Recordset,ByValsearchListAsMSHFlexGrid)OnErrorResumeNextDimSumFields,i,jSumFields=rs.Fields.Count'该表的字段总数searchList.Clear'清空列表,防止增加或修改调用时重复显示'searchList.BackColor=&HC0FFFF'设置网格背景颜色searchList.Cols=SumFields'设置网格列数searchList.Row=0WithsearchList.FillStyle=flexFillSingle'.ScrollTrack=True'.AllowUserResizing=flexResizeColumns.FixedRows=1.FixedCols=0.SelectionMode=flexSelectionByRowEndWith'设置第一行的各列标题Fori=0ToSumFields-1searchList.Col=isearchList.TextMatrix(0,i)=rs.Fields(i).NamesearchList.ColAlignmentFixed(i)=3'searchList.BackColor=&H8000000FNexti'设置第一行的各列标题文字格式Fori=0ToSumFields-1searchList.Col=isearchList.CellAlignment=4'searchList.CellFontBold=True'searchList.CellForeColor=vbBlueIfAsc(Mid(rs.Fields(i).Name,1,1))<0ThenIfrs.Fields(i).Name="入库时间"Thenj=TextWidth(rs.Fields(i).Name)*3Elsej=TextWidth(rs.Fields(i).Name)*2EndIfElsej=TextWidth(rs.Fields(i).DefinedSize)*8EndIfIfj=1Thenj=j+200'设置标题宽度,防止部分长文字不显示Ifj>searchList.ColWidth(i)ThensearchList.ColWidth(i)=jEndIfNexti'循环开始--显示所有符合条件记录rs.MoveLastsearchList.Rows=rs.RecordCount+1'其中标题占一行rs.MoveFirstsearchList.Row=0WhileNotrs.EOFsearchList.Row=searchList.Row+1'增加一行,用于写入内容Fori=0ToSumFields-1searchList.Col=iIfsearchList.Col=0ThensearchList.CellBackColor=&H8000000FEndIfsearchList.CellAlignment=4'读入内容IfNotIsNull(rs.Fields(i).Value)ThensearchList.Text=rs.Fields(i).ValueElsesearchList.Text=""EndIfNextirs.MoveNextWend'循环结束--显示所有符合条件记录EndSub第六章系统的实现系统开发环境:系统开发环境包括硬件平台和软件平台两种。硬件平台是指开发与运行所需要的硬件环境,主要包括计算机机型及硬件配置。由于本系统是一个小型的MIS管理系统,因此对计算机硬件的要求不高,比较经济,只要配备有PII处理器(或以上)、64M内存(或以上)、10G硬盘(或以上)的普通微机即可顺利运行。软件平台是指系统开发与运行的软件环境。本系统在开发时选用了稳定性较强的WindowsXP中文专业版和VisualBasic6.0作为开发语言,同时选用了Access数据库,由于这些软件产品都是Microsoft公司的产品,因此彼此之间的兼容性较好,开发出的应用系统稳定性较高。VisualBasic6.0具有可视化的开发环境,可以快速完成系统的开发,内部集成的数据库访问通道,使得可以轻松方便的对数据库管理。数据库采用MICROSOFTACCESS,由于我们的系统要求,采用它完全可以适合我们的工作需求,并且它所支持的数据类型十分丰富,维护简便,费用比较低,人员素质要求不是很高,容易升级。

本系统在单机上运行。系统测试:在MIS开发过程中采用了多种措施保证软件质量,但是实际开发过程中还是不可避免地会产生差错,系统中通常可能隐藏着错误和缺陷,示经周密测试的系统投入运行,将会造成难以想像的后果,因此系统测试是MIS开发过程中为保证软件质量必须进行的工作。大量统计资料表明,系统测试的工作量往往占MIS开发总工作量的40%以上。因此,我们必须重视测试工作。由于程序中隐藏的缺陷只在特定的环境下才有可靠显露,系统缺陷通常是由于对某些特定情况考虑不周造成的。因此测试不是为了表明程序正确;成功的测试也不是没有发现错误的测试。有意义的软件测试应该是从“破坏”软件系统的角度出发,精心设计最有可以暴露程序系统缺陷的测试方案。因此软件测试的目标应该是以尽可能少的代价和时间找出软件系统中潜在的错误和缺陷。从产品角度看,测试计划中的测试项目包括软件结构中的分系统层、子系统层、功能模块层、程序模块层中的各类模块,从测试本身看,分为单元测试,组合测试,确认测试等。测试对象是随阶段而异的,最基本、最初的测试是单元测试,后面的组合测试、确认测试都是以被测过的模块作为测试对象的。(1)单元测试:单元测试也称模块测试或程序测试,单元测试是对每个模块单独进行的,验证模块接口与设计说明书是否一致,对模块的所有主要处理路径进行测试且与预期的结构进行对照,还要对所有错误处理路径进行测试。对源码进行审查,对照设计说明书,表态地检查源程序是否符合功能的逻辑要求,是进行单元测试前的重要工作工。单元测试一般是由程序员完成,也称程序调试。(2)组合测试组合测试也称集成测试或子系统测试,通常采用自顶向下测试和自底向上测试两种测试方法。组合测试的对象是指已经通过单元测试的模块,不是对零散模块进行单个测试,而是用系统化的方法装配和测试软件系统,是一个严格的过程,必须认真地进行,其计划的产生和单元模块测试的完成日期要协调起来,这种测试应在系统目标机上进行,造成系统应用的环境条件,除了开发部分项目负责人参加以外,还应该有相应系统的用户参加,给评审员进行演示。(3)确认测试确认测试是对通过组合测试的软件进行的,这些软件已经存于系统目标设备的介质上,确认测试的目的是对表明软件是可以工作的,并且符合“软件需求说明书”中规定的全部功能和性能要求。确认测试是按照这些要求定出的“确认测试计划”进行的。测试工作是由一个独立的组织进行,而且测试要从用户的角度出发。(4)系统测试系统测试是对整体性能的测试,主要解决各子系统之间的数据通信和数据共享问题以及检测系统不否达到用户的实际要求,系统测试的依据是系统分析报告。系统测试应在系统的整个范围内进行,这种测试不只对软件进行,而是对构成系统的硬、软件一起进行。系统测试与建构同时进行或略慢。系统测试需要确认从头到尾的功能正常才算完成,应当尽量避免系统测试延到项目末尾进行。(5)用户验收测试在系统测试完成后,进行用户的验收测试,它是用户在实际应用环境中所进行的真实数据测试。在具体的测试中,一般应遵循以下原则:由程序设计者之外的人进行测试;测试用例应由两部分组成:输入数据和预期输出结果;应选用不合理的输入数据与非法输入测试;不仅要检验程序是否实现预期功能,还应检查程序是否做了不应该做的工作;集中测试容易出错的程序模块;对程序修改以后,必须重新进行测试。在开发本系统时,为了使系统能够稳定运行,对本系统进行了有针对性的全面测试,采取的方式是:1、菜单项测试:为了保证每一项下拉菜单能够正确实现系统设计的功能,我把相关的基础数据,基本上全部输入到本系统中,并对每一个菜单项反复进行了增加、删除、修改等操作,从而保证了菜单级功能的正确实现。2、数据跟踪:完成菜单项测试后,我又对系统内的每一个数据进行了跟踪。例如:在成绩管理模块中,我首先对考试类型进行设定,然后在成绩添加模块中进行数据操作,随时观察这两个模块之间是否有冲突产生,配合得是否正确,再然后在成绩浏览模块中进行验证,说明该功能完全正常,对其它的功能模块也进行了类似的设置。3、综合测试:在以上测试的基础上对系统功能进行了整体的测试,依次来检验系统功能是否符合系统设计的要求。系统运行与维护:系统的运行:1初始数据的输入本系统的的输入采用鼠标和键盘相结合的输入方法。2、怎样进入系统A、将本系统所在的文件夹拷贝到硬盘,然后执行其中的仓库管理系统的程序文件即可,应注意要将全部文件的属性变以存档,消除只读属性。B、在随后出现的登录界面上输入正确的用户名和密码即可,本系统可能以909和909这个超级管理员的用户名和密

温馨提示

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

评论

0/150

提交评论