仓库管理系统实验报告.docx
- 文档编号:5429157
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:5
- 大小:20.71KB
仓库管理系统实验报告.docx
《仓库管理系统实验报告.docx》由会员分享,可在线阅读,更多相关《仓库管理系统实验报告.docx(5页珍藏版)》请在冰豆网上搜索。
仓库管理系统实验报告
1概述1.1选题背景仓库管理系统在企业的整个供应链中起着至关重要的作用,如果不能保证正确的进货和库存控制及发货,将会导致管理费用的增加,服务质量难以得到保证,从而影响企业的竞争力。
传统简单、静态的仓储管理已无法保证企业各种资源的高效利用。
如今的仓库作业和库存控制作业已十分复杂化多样化,仅靠人工记忆和手工录入,不但费时费力,而且容易出错,给企业带来巨大损失。
本软件系统是通过入库业务、出库业务、仓库调拨、库存调拨等功能,综合批次管理、物料对应、库存盘点、质检管理和即时库存管理等功能综合运用的管理系统,有效控制并跟踪仓库业务的物流和成本管理全过程,实现完善的企业仓储信息管理。
该系统可以独立执行库存操作,与其他系统的单据和凭证等结合使用,可提供更为完整全面的企业业务流程和财务。
管理信息1.2系统环境VisualFoxPro,是Microsoft公司从Fox公司的FoxBase数据库软件经过数次改良,并且移植到Windows之后,得来的应用程序开发软件,主要用于开发数据管理与运算等方面的软件。
VFP是Microsoft公司推出的最新可视化数据库管理系统平台,是功能特别强大的32位数据库管理系统。
它提供了功能完备的工具、极其友好的用户界面、简单的数据存取方式、独一无二的跨平台技术,交肯有良好的兼容性、真正的可编译性和较强的安全性,是目前最快捷、最实用的数据库管理系统软件之一。
2系统分析2.1系统目标需求仓库管理系统主要用于仓库货品信息的管理,系统包括仓库管理、入库、出库、一些统计查询和报表等几部分组成。
系统特色:
1.设置系统用户登录功能,即对系统数据进行安全设置与保护。
2.友好的用户界面,业务操作简单,进入系统即能使用。
3.系统每种操作都可以通过菜单来进行。
操作快捷、方便。
系统集输入、维护、查询、统计和各种处理为一体,信息导入导出方便共享。
2.2开发的可行性分析根据当前的企业管理体制,一般物资供应管理系统,总是根据所掌握的物资类别,相应分成几个科室来进行物资的计划,订货,核销托收,验收入库,根据企业各个部门的需要来发放物资设备,并随时按期进行库存盘点,作台帐,根据企业领导和自身管理的需要按月,季度,年来进行统计分析,产生相应报表。
为了加强关键物资,设备的管理,要定期掌握其储备,消耗情况,根据计划定额和实际消耗定额的比较,进行定额的管理,使得资金使用合理,物资设备的储备最佳。
所以一个完整的企业物资供应管理系统应该包括计划管理,合同托收管理,仓库管理,定额管理,统计管理,财务管理等模块。
其中仓库管理是整个物资供应管理系统的核心。
鉴于VisualFoxpro6.0有强大的数据库管理功能,我们选用VisualFoxpro6.0来完成这个仓库管理系统。
2.3业务流程分析主要业务流程如图所示。
仓库管理系统系输维查报帮统入护看表助模模模模模模块块块块块块打日入出还需印志库库库求设管模模模模置理块块块块2.4数据流程仓库现有库存各部门需求企业总体生产计划汇总处理设备采购设备出库设备入库设备还库2.5数据字典●设备代码信息。
包括的数据项有设备号、设备名称。
●现有库存信息。
包括的数据项有现有设备、现有数目、总数目、最大库存、最小库存等。
●设备使用信息。
包括的数据项有使用的设备、使用部门、数目、使用时间、出库时状态。
●设备采购信息。
包括的数据项有采购的设备、采购员、供应商、采购数目、采购时间等。
●设备归还信息。
包括的数据项有归还设备、归还部门、归还数目、归还时间、经手人等。
●设备需求信息。
包括的数据项有需求的部门、需求设备、需求数目、需求时间等。
3系统设计3.1功能结构图切换面板设设设设设显备备备备备示入出还需采报库库库求购表3.2模块说明书
(1)设备入库模块:
添加设备到库存中。
(2)设备出库模块:
将设备从库存取出并记录。
(3)设备还库模块:
将归并到库存的设备保存到数据库。
(4)设备需求模块:
记录各部门的设备需求。
(5)设备采购模块:
记录要采购的设备。
(6)切换面板:
用于切换到不同的操作,如设备入库、设备出库等。
3.3代码设计
首先建立一个表单,设取“caption”属性为“仓库管理”。
在该表单上添加6个“按钮”控件,它们的“caption”属性分别为“设备入库”,“设备出库”,“设备还库”,“部门需求”,“设备采购”,“显示报表”。
然后在表单上添加“图象控件”,并设其“stretch”属性为“2-strech(扩展)”,“pictrue”属性为图片所在的位置,本例中为“c:
\仓库管理\001.jpg”。
在“comm.and1”(“caption”属性为“设备入库”)控件的“click”事件中添加如下代码:
doform设备入库表thisform.release在“comm.and2”(“caption”属性为“设备出库”)控件的“click”事件中添加如下代码:
doform设备出库表thisform.release在“comm.and3”(“caption”属性为“设备还库”)控件的“click”事件中添加如下代码:
doform设备还库表thisform.release在“comm.and4”(“caption”属性为“部门需求”)控件的“click”事件中添加如下代码:
doform部门需求表thisform.release在“comm.and5”(“caption”属性为“设备采购”)控件的“click”事件中添加如下代码:
doform设备采购表thisform.release在“comm.and6”(“caption”属性为“显示报表”)控件的“click”事件中添加如下代码:
doform显示报表thisform.release
在“form1”的属性里选择“autocenter”设置为“.T.-真”,同时将“backcolor”设置为“255,255,255”,“windowstate”设置为“0-普通”。
添加“form1”的“init”事件的代码如下:
setdirectorytoc:
\仓库管理\*将程序的默认的路径指向资源所在的文件夹3.4数据库设计3.4.1E-R图现有库存设备号现有库存警戒库存总数2)入库实体E-R图:
入库设备号供应商信息采购价格信息采购员3)出库实体E-R图:
出库设备号使用部门数量时间经手人4)部门需求实体E-R图:
部门需求
设备号需求部门需求数量需求时间5)还库实体E-R图:
设备还库设备号还库时间人还库数量经手人6)计划采购实体E-R图:
计划采购设备号库存信息供应信息时间7)实体和实体之间的关系E-R图如图所示:
入库现有库存出库还库部门需求设备采购3.4.2数据表设计
(1)设备代码表:
列名数据类型可否为空设备号(主键)数值型(20)不能为空设备名称字符型(50)可为空
(2)设备入库表:
列名数据类型可否为空设备号数值型(20)不能为空
入库时间(主键)日期型(8)可为空供应商字符型(50)可为空供应商电话字符型(15)可为空入库数量数值型(20)可为空价格字符型(10)可为空采购员字符型(20)可为空(3)设备出库表:
列名数据类型可否为空设备号数值型(20)不能为空出库时间(主键)日期型(8)可为空使用部门字符型(50)可为空出库状况数值型(20)可为空经手人字符型(20)可为空出库数量数值型(10)不能为空领取人字符型(50)可为空用途字符型(50)可为空(4)现有库存表:
列名数据类型可否为空设备号(主键)数值型(20)不能为空现有库存数值型(20)可为空最大库存数值型(20)可为空最小库存数值型(20)可为空总数数值型(20)可为空(5)部门需求表:
列名数据类型可否为空设备号(主键)数值型(20)不能为空
部门名称字符型(20)不能为空需要数量数值型(20)可为空需求开始时间日期型(8)可为空需求结束时间日期型(8)可为空(6)设备还库表:
列名数据类型可否为空设备号(主键)数值型(20)不能为空还库时间日期型(8)不能为空仓库管理员数值型(20)可为空归还数量数值型(20)可为空归还人字符型(10)可为空(7)操作日志表:
列名数据类型可否为空操作员字符型(50)不能为空操作内容字符型(50)不能为空操作时间日期型(8)可为空(8)设备采购计划表:
列名数据类型可否为空设备号数值型(20)不能为空现有库存数值型(20)可为空总库存数值型(20)可为空最大库存数值型(20)可为空购买数量数值型(20)可为空供应商字符型(20)不能为空价格字符型(10)可为空计划采购时间(主键)日期型(8)可为空
3.5界面设计3.5.1系统首页界面3.5.2设备入库模块界面3.5.3设备出库模块界面
3.5.4设备还库模块界面3.5.5部门需求模块界面
3.5.6设备采购模块界面3.5.7显示报表模块界面
4系统实施系统类的编写1:
主程序源代码:
SETTALKoffsetsysmenuoffsetcenton_screen.windowstate=2_screen.icon="icons\happy.ico"_screen.maxbutton=0_screen.minbutton=1_screen.closable=.f.modifywindowscreennocloseMODIFYWINDOWSCREENTITLE"仓库管理信息系统"ZOOMWINDOWSCREENMAXsetdefaulttodatadoform登录表单readeventsclearcloseallreturnendif2:
登录表单的确定按钮控件的click源代码:
locateforalltrim(用户名)==alltrim(bo1.value)andalltrim(密码)==alltrim(thisform.text1.value)if!
eof()ifalltrim(级别)=="管理员"publicjb,username
jb=1username=alltrim(bo1.value)elsepublicjb,usernamejb=0username=alltrim(bo1.value)endifdomenu.mprthisform.releasedoform仓库管理else#definemissmatch_loc"用户或口令错,请重新登录!
"waitwindowmissmatch_loctimeout1bo1.value=''thisform.text1.value=''thisform.text1.setfocusnumcount=numcount+1ifnumcount=4numcount=0mess=messagebox("三次口令错,将退出程序!
",4+16+2,"退出")cleareventreleasethisformendifendif3:
密码修改表单的修改按钮的click事件源代码:
ifempty(thisform.text4.value)mess=messagebox("用户名不能为空!
",48,"警告")elseifempty(thisform.text1.value)
mess=messagebox("旧密码不能为空!
",48,"警告")elseifempty(thisform.text2.value)mess=messagebox("新密码不能为空!
",48,"警告")elseifempty(thisform.text3.value)mess=messagebox("重复密码不能为空!
",48,"警告")elseifalltrim(thisform.text2.value)<>alltrim(thisform.text3.value)orlen(alltrim(thisform.text2.value))<>len(alltrim(thisform.text3.value))mess=messagebox("二次密码不一致!
",48,"警告")elselocateforalltrim(用户名)==alltrim(thisform.text4.value)andalltrim(密码)==alltrim(thisform.text1.value)ifeof()mess=messagebox("密码错误,系统将取消你的修改权利!
",48,"警告")thisform.releaseelserepl密码withalltrim(thisform.text3.value)mess=messagebox("密码修改成功!
",48,"信息")thisform.releaseendif4:
添加操作员表单的最首按钮的click事件源代码:
gotopthisform.grid1.setfocusthisform.grid1.refresh5:
添加操作员表单的上一个按钮的click事件源代码:
skip-1ifbof()
?
?
chr(7)=messagebox("警告,这已经是第一条记录!
",48,"信息窗口")gotopendifthisform.grid1.setfocusthisform.grid1.refresh6:
添加操作员表单的下一个按钮的click事件源代码:
skipifeof()?
?
chr(7)=messagebox("警告,这已经是最后一条记录!
",48,"信息窗口")gobottomendifthisform.grid1.setfocusthisform.grid1.refresh7:
添加操作员表单的最末按钮的click事件源代码:
gobottomthisform.grid1.setfocusthisform.grid1.refresh8:
添加操作员表单的修改按钮的click事件源代码:
ifmand5.caption='修改'thisform.text1.readonly=.f.thisform.text2.readonly=.f.thisform.text3.readonly=.f.bo1.readonly=.f.mand5.caption='保存'mand1.enabled=.f.mand2.enabled=.f.mand3.enabled=.f.mand4.enabled=.f.
mand6.enabled=.f.mand7.enabled=.f.mand8.enabled=.f.elsemand5.caption='修改'thisform.text1.readonly=.t.thisform.text2.readonly=.t.thisform.text3.readonly=.t.bo1.readonly=.t.mand1.enabled=.t.mand2.enabled=.t.mand3.enabled=.t.mand4.enabled=.t.mand6.enabled=.t.mand7.enabled=.t.mand8.enabled=.t.endifthisform.grid1.setfocusthisform.grid1.refresh9:
添加操作员表单的添加按钮的click事件源代码:
ifmand6.caption='添加'thisform.text1.readonly=.f.thisform.text2.readonly=.f.thisform.text3.readonly=.f.bo1.readonly=.f.mand6.caption='保存'mand1.enabled=.f.mand2.enabled=.f.mand3.enabled=.f.mand4.enabled=.f.
mand5.enabled=.f.mand7.enabled=.f.mand8.enabled=.f.appeblanelsemand6.caption='添加'thisform.text1.readonly=.t.thisform.text2.readonly=.t.thisform.text3.readonly=.t.bo1.readonly=.t.mand1.enabled=.t.mand2.enabled=.t.mand3.enabled=.t.mand4.enabled=.t.mand5.enabled=.t.mand7.enabled=.t.mand8.enabled=.t.endifthisform.grid1.setfocusthisform.grid1.refresh10:
添加操作员表单的删除按钮的click事件源代码:
cMessageTitle='系统警告'cMessageText='确认要删除吗?
'nDialogType=4+32nanswer=messagebox(cMessageText,nDialogType,cMessageTitle)ifnanswer=6delethisform.grid1.setfocusthisform.grid1.refreshendif
11:
类baseform的picrecord的源代码:
IFTYPE("THIS.APP_MEDIATOR.BaseClass")#"C"RETURNENDIFIFTHIS.APP_MEDIATOR.PickRecordToWorkOn()IFTHIS.APP_MEDIATOR.lAddingAND!
EMPTY(ALIAS())THIS.REFRESH()*CheckifwehaveblankrecordalreadyfromtxtbtnsIFGETFLDSTATE
(1)#3THIS.AddRecord()ENDIFENDIFENDIF12:
类baseform的queryunload的源代码:
IFTYPE("THIS.APP_MEDIATOR.BaseClass")#"C"IF!
THIS.ResolveConflicts()NODEFAULTRETURN.F.ENDIFRETURNENDIFIFDODEFAULT()IFNOTTHIS.App_Mediator.QueryUnload()NODEFAULTRETURN.F.ENDIFELSENODEFAULTRETURN.F.
ENDIF13:
类baseform的release的源代码:
IF!
THIS.Queryunload()NODEFAULTRETURN.F.ENDIF14:
类baseform的resolveconflicts的源代码:
#DEFINEPROMPTTOSAVE_LOC"Datahasbeenchanged.Wouldyouliketosavechanges?
"IF!
THIS.lSaveBufferedDataRETURNENDIFLOCALnDECursors,aDECursors,cDataEnvRef,lPromptSave,lHadPromptLOCALlcAlias,lnFields,nPromptSave,i,loCurrentControl*FlushcurrentcontrolIFTYPE("THIS.ActiveControl.baseclass")="C"AND;PEMSTATUS(THIS.ActiveControl,"value",5)AND;PEMSTATUS(THIS.ActiveControl,"controlsource",5)AND;!
EMPTY(THIS.ActiveControl.controlsource)loCurrentControl=THIS.ActiveControl*CheckifdataactuallychangedIF!
EVAL(loCurrentControl.controlsource)=loCurrentControl.ValueloCurrentControl.Value=loCurrentControl.ValueENDIFloCurrentControl=""ENDIF
nDECursors=0cDataEnvRef=""DIMENSIONaDECursors[1]DOCASECASETYPE("THISFORM.DataEnvironment")="O"nDECursors=AMEMBERS(aDECursors,THISFORM.DataEnvironment,2)cDataEnvRef="THISFORM.DataEnvironment"CASETYPE("THISFORMSET.DataEnvironment")="O"nDECursors=AMEMBERS(aDECursors,THISFORMSET.DataEnvironment,2)cDataEnvRef="THISFORMSET.DataEnvironment"CASETHIS.lUpdateAllBufferedTablesnDECursors=AUS
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 仓库 管理 系统 实验 报告