当前位置:文档之家› 仓储管理信息系统文档

仓储管理信息系统文档

仓储管理信息系统1、前言货物管理系统作为商品或者货物管理必须要涉及到的部分,在各种企业中有广泛的应用前景。

本系统可以录入保存商品、客户、供货商等基本资料,完成货品的进货、出货、退货等日常操作。

通过对日常操作的查询,用户可以掌握货物流通情况,并能够对货物情况进行统计。

货物管理中主要涉及的管理有三个方面:进货、出货、退货。

本系统使用VFP5.0进行开发,原因是VFP5.0易学、易记、功能齐全。

公司在货物管理中涉及的业务过程大致如下:进货:公司根据货物信息表中的信息,决定进何种货;进货的数量、单位、时间经手人等由用户输入。

进货成功后,更新库存货物表和进货表。

出货:首先公司对销售单位向公司开出要货单;然后,公司根据要货单及货物的实物数量决定给要货单位的货物数量;最后,公司开出出货单,根据出货单将货物出库,并发给要货单位。

销售出库时,开出库单上面应记载售货的名称及数量、金额等信息;然后,货物出库,交给客户。

退货:对客户不满意的货物进行检查,符合退货要求后货物退回到库房1.2 数据库技术与VFP系统平台概述数据库技术产生于20世纪60年代末70年代初,到70年代末期数据库理论的研究已基本进入了成熟阶段。

它的出现与完善使得计算机应用进入了新的历史时期,社会的每一个领域都与计算机发生了联系,计算机在人类社会中开始起着不可估量的作用。

随着信息技术、网络技术及计算机技术的飞速发展和人民生活水平的提高,微机走入了我们的家庭成为我们工作和学习的得力助手。

在此浪朝的推动下各类学习软件相继推出,尤其学习语言类的软件更是种类繁多,面面俱到。

Visual Foxpro(以下简称VFP)是一个优秀的,基于Internet平台的数据库管理系统。

VFP既具有Visual 语言系列的功能强大、直观易用以及面向对象的优点,又兼有Windows和FoxPro的长处。

并为用户提供了众多向导、生成器、设计器及面向对象程序设计的技术支持,特别适合开发中小型系统。

用VFP开发的系统具有界面友好、操作方便、易于学习的特点。

特别VFP5.0是一个功能强大的数据库管理系统(DBMS)。

随着现代科学技术的发展,越来越多的公司和企业已经使用计算机系统代替繁琐冗余的手工操作来管理货物的工作。

VFP5.0是面向对象的可视化编程工具,利用该系统可以方便快捷的开发包含数据库的各种应用软件,开发出的可执行文件效率较高,打包发布也非常方便。

2、系统设计2.1系统设计原理系统结构图如图所示本系统主要包括三个功能模块1. 基础数据模块功能:用来设置各实体、简单关系的基本信息。

2. 库存操作处理模块功能:其他出、入库单是针对一些特殊情况。

仓库管理是一项非常重的工作。

3. 数据查询模块功能:库存报警主要是保证缺货货品的供货的及时性。

库存汇总、库存单据为企业决策者提供重要的信息。

系统功能模块图如下:1、供应商基本信息:包含供应商品的人员的基本信息2、仓库基本信息:仓库的信息和商品信息,如仓库地址,库存,商品种类,数量,金额等商品信息3、商品:需要保存在数据库的商品信息有商品名称,规格,单位,有效期,成本价,类别名称等4、员工基本信息如姓名,性别,住址,联系电话等5、入库单:采购的商品存入仓库,并把有关数据存入数据库6、出库单:商品出售给其他人员并把销售后仓库信息的变化存入数据库7、库存明细:与商品有关的数据的详细罗列8、销售退货管理:消费者因不满意商品而退货,商品重新进入仓库并在数据库中重新添加信息9、供应商供货明细:供应商供货的种类,数量,价格的信息及供应商的信息,交易信息等系统模块图有关数据表结构入库单(入库编号,供应商编号,仓库编号,商品编码,入库日期,数量,制单人)出库单(出库编号,供应商编号,客户编号,仓库编号,出库日期,数量)供应商(供应商编号,供应商地址,邮编,联系人,联系人电话)商品(商品编码,商品名称,计量单位,成本价,类别名称)仓库(仓库编号,仓库名称,仓库地址,库管员,联系电话)客户(客户编号,客户地址,姓名,电话)库存查询(供应商编号,仓库编号,商品编码,数量)系统用户(用户名,密码)在上面的实体以及实体之间关系的基础上,形成各个表格之间的关系。

库存管理系统数据库中的各个表的设计结果如下面的几个表格所示,每个表格表示数据库中的一个表。

实际工作中的表格往往不适合直接输入到计算机中。

如上述货物信息、出货单、进货单等,无法在计算机中直接建立这样的表,因此需要对实际的表格或清单进行规范化设计。

2.2货物信息表设计货物信息是货物管理系统的一个基本表,可用如图2-2所示的实体关系图来图2-2 货物关系对每一种货物都有唯一与之对应的编号,因此在货物关系中编号是主关键字,其他的非主属性都完全依赖于它。

2.3系统思想该系统的基本设计思路如下:(1)建立好各表,输入一些模拟数据;(2)在显示货物信息时,将表单上的用来显示表中字段值的文本框分别与相关的字段进行绑定;具体设置要将文本框的controlsource属性设定为对应的字段名;(3)在货物信息管理时可以查看各记录的值,可以添加、修改、删除、保存记录;(4)货物查询时,只需输入货物名称,就可以定位在该记录,并显示该记录的有关内容,也可以修改该记录;(5)进货管理中的进货信息显示是以只读方式显示货物信息表中的编号、名称和规格字段内容,具体设置方法是将该文本框的readonly属性值改为.T.;因为对货物信息表中信息的改变不是在本菜单中完成的。

其余文本框接收用户输入的内容,并将内容加入进货表(以便于进货统计),还要加入库存货物表中;(6)进货统计是根据用户通过进货信息表单中输入的有关信息,加入到进货表中,然后接收用户查询的时间段,在该进货表中找出在该时间段进的货。

制作一个含有表格控件的表单,将表格控件中相关header的值改为所显示字段名,将表格控件的数据源RecordSource的值设为“进货表”所在的路径和表名,将表格控件的数据源类型RecordSourceType的值设为“0-表”;(7)其他功能与进货管理类似,只需做稍微改动即可。

3、系统实现3.1开发平台及系统配置该系统采用 Microsoft公司推出的Visual FoxPro 5.0 作为开发平台,该开发平台具有一下优点:VFP 5.0 特别适合开发中小型的管理系统;面向对象的特点与程序设计的可视化结合在一起,有效地提高了编程的效率;界面美观、使用方便;VFP5.0全面支持GIF(Graphics Interchange Format)和JPEG(Joint Photographic Group)图象格式。

你可以将对 Visual FoxPro 配置的设定仅仅应用于当前的工作期(临时),或者将其设定为下一次使用 Visual FoxPro 的默认值 (永久)。

如果设定是临时的,那它们将存储在内存中,并在你退出 Visual FoxPro 时丢弃。

如果你进行的是永久性设定,它们将存储在 Microsoft Windows 注册表或Visual FoxPro 资源文件中。

Windows 注册表是一个数据库,存储关于操作系统,所有的 Windows 应用程序,OLE,以及 ODBC 等其他选件等等的配置信息。

例如,注册表保存了 Windows 对于文件扩展名与应用程序的关联信息,这样当你点击一个文件时,Windows 能够加载并激活相对应的应用程序。

类似地,Visual FoxPro 也在注册表中存储其特定地配置信息。

当 Visual FoxPro 启动时,程序将会读取注册表中的配置信息,并按照这些内容进行相应地设置。

完成注册表读取后,Visual FoxPro 也会检查其配置文件,这个文件是一个文本文件,存在这个文件中的配置信息将会覆盖注册表的设定。

Visual FoxPro 启动后,你还可以使用选项对话框或 SET 命令来进行一些额外的配置设定。

3.2模块实现3.2.1基础数据模块基础数据模块包含的内容有供应商信息,仓库基本信息,员工信息,商品基本信息,客户基本信息这些数据是其余模块功能实现的基础,在此模块能进行信息的查询、添加、保存、删除。

在数据库中建立不同的报表,将各个子模块的信息录入到数据库中,并有管理员随时对数据库中的信息进行修改和保存,如有新的商品进入时需要添加信息,商品价格变动时要更改价格信息,在商品售出时,要记录售出的数量并将原有的商品信息进行清理(1)基本信息添加:输入所需录入的信息的全部内容,点击确定按钮即可将记录添加到数据库(2)基本信息查询:登录后再组合框中选择要查询的字段,则文本框中输入如要查询的内容,点击查询,根基 ODBC 绑定的数据库,显示数据库中相应表对应的数据信息(3)基本信息保存:可以将添加和删除的记录保存到数据库中。

(4)基本信息删除:定位要删除的信息,点击按钮即可删除数据库库中的相应的记录3.2.2数据库出入库管理模块的实现由于数据库管理模块分工详细,项目繁多,在此将其合并为三个子功能模块设计本模块包含入库管理,出库管理,销售退货管理三个字模块(1)入库管理模块入库添加:主要对入库信息进行录入操作,即第一大模块的基础。

点击添加,输入所有要录入的信息,输入完毕后,将记录添加到数据库入库删除:主要对入库信息进行删除操作,即第一大模块的基础。

点击删除,删除已录入的信息入库保存:主要对入库信息进行保存操作,即第一大模块的基础。

点击保存,保存要录入的信息,保存完毕后,将记录保存到数据库(2)出库管理模块出库添加:主要对出库信息进行录入操作,输入出库信息后将记录添加到出库数据库中,及销售输出表和销售出库明细表的有关内容的录入和更新出库删除:主要对出库信息进行删除操作,即第一大模块的基础。

点击删除,删除已录入的信息出库保存:主要对出库信息进行保存操作,即第一大模块的基础。

点击保存,保存要录入的信息,保存完毕后,将记录保存到数据库(3)销售退货管理模块销售退货:主要对已售出的商品信息进行退货处理,输入出库编号,点击退货处理后该商品被退回到库存里3.2.3数据查询模块的设计与实现用户在系统界面选择系统功能完成不同的操作,实现系统的使用。

入库时商品进入仓库时的信息,如商品编号、数量、价格、入库时间、仓库编号的信息;出库类似,但包含出库时间,出库等信息;报表是查询各种商品信息和仓库信息,提供商信息时显示的表格库存查询用户登录系统后,根据需要的商品编码检索,可以查询不同的仓库的商品,也可以查询商品在不同的仓库中的库存。

3.2.4系统用户管理的实现主要对系统用户名和密码的更改3.3主程序的编制登录界面close alluse 系统用户do casecase alltrim(thisform.text1.value)==""messagebox("请输入用户名")thisform.text1.setfocuscase alltrim(thisform.text2.value)==""messagebox("请输入密码")thisform.text2.setfocusotherwisen=n+1do while not eof()iflower(alltr用户名))==lower(alltrim(thisform.text1.value)) and lower(alltrim(密码))==lower(alltrim(thisform.text2.value))exitendifskipenddoif not eof()登录界面.releasewait "欢迎使用货物管理信息系统" window timeout 1do form 货物管理信息系统elseif n=3登录界面.releasewait "对不起,你不是合法用户!" window timeout 1elsewait "用户名或密码第"+str(n,1)+"次错,请重新输入!" window timeout 1thisform.text1.value=""thisform.text2.value=""thisform.text1.setfocusendifendifendcase入库thisform.text1.enabled=.t.thisform.text2.enabled=.t.thisform.text3.enabled=.t.bo1.enabled=.t.bo2.enabled=.t.bo3.enabled=.t.mand4.enabled=.t.thisform.text1.value=""thisform.text2.value=""thisform.text3.value=dtoc(date())flag=1thisform.text1.setfocusthisform.text1.enabled=.t.thisform.text2.enabled=.t.thisform.text3.enabled=.t.bo1.enabled=.t.bo2.enabled=.t.bo3.enabled=.t.mand4.enabled=.t.flag=2thisform.text1.setfocusset delete onif messagebox("您确认是否要删除吗?",33)=1deletethisform.refreshendifupdate ss set 数量=数量-www where 商品编号=abcif flag=1 theninsert into入库values(thisform.text1.value,bo1.value,bo2.val ue,bo3.value,val(thisform.text2.value),ctod(thisform.text 3.value))elsereplace 入库编号 with thisform.text1.valuereplace 供应商编号 with bo1.valuereplace 仓库编号 with bo2.valuereplace 商品编号 with bo3.valuereplace 数量 with val(thisform.text2.value)replace 日期 with ctod(thisform.text3.value)endifthisform.text1.enabled=.f.thisform.text2.enabled=.f.thisform.text3.enabled=.f.bo1.enabled=.f.bo2.enabled=.f.bo3.enabled=.f.mand4.enabled=.f.thisform.text1.value=""thisform.text2.value=""thisform.text3.value=""bo1.value=""bo2.value=""bo3.value=""set safety offselect 供应商编号,仓库编号,商品编号,sum(数量) as 数量 from 入库 group by 商品编号 into table ssuse ssdo while not eof()select sum(数量) from 出库 where ss.商品编号=出库.商品编号 into array mmreplace 数量 with 数量-mm(1)skipenddousethisform.refreshthisform.release*do form 货物管理信息系统close allUSE 入库.dbf EXCLUSIVEpackuse出库thisform.text1.enabled=.t.thisform.text2.enabled=.t.thisform.text3.enabled=.t.bo1.enabled=.t.bo2.enabled=.t.bo3.enabled=.t.mand4.enabled=.t.thisform.text1.value=""thisform.text2.value=""thisform.text3.value=dtoc(date())flag=1thisform.text1.setfocusthisform.text1.enabled=.t.thisform.text2.enabled=.t.thisform.text3.enabled=.t.bo1.enabled=.t.bo2.enabled=.t.bo3.enabled=.t.mand4.enabled=.t.flag=2thisform.text1.setfocusset delete onif messagebox("您确认是否要删除吗?",33)=1deletethisform.refreshendifupdate ss set 数量=数量+www where 商品编号=abcif flag=1 thenselect 数量from ss where lower(alltrim(ss.商品编号))==lower(alltrim(bo3.value)) into cursor dd select count(*) from dd into array eeif ee(1)>0select 数量from ss where lower(alltrim(ss.商品编号))==lower(alltrim(bo3.value)) into array aaif aa(1)<val(thisform.text2.value)messagebox("该商品现有"+alltrim(str(aa(1)))+",请重新输入数量!")mand1.clickelseinsert into 出库values(thisform.text1.value,bo1.value,bo2.val ue,bo3.value,val(thisform.text2.value),ctod(thisform.text 3.value))set safety offselect 供应商编号,仓库编号,商品编号,sum(数量) as 数量 from 入库 group by 商品编号 into table ssuse ssdo while not eof()select sum(数量) from 出库 where ss.商品编号=出库.商品编号 into array mmreplace 数量 with 数量-mm(1)skipenddouseendifelsemessagebox("该商品现已没有库存,请及时进货!")endifelseselect 数量from ss where lower(alltrim(ss.商品编号))==lower(alltrim(bo3.value)) into array aa select count(*) from dd into array eeif ee(1)>0select 数量from ss where lower(alltrim(ss.商品编号))==lower(alltrim(bo3.value)) into array aaif aa(1)<val(thisform.text2.value)messagebox("该商品现有"+alltrim(str(aa(1)))+",请重新输入数量!")mand2.clickelsereplace 出库编号 with thisform.text1.valuereplace 供应商编号 with bo1.valuereplace 仓库编号 with bo2.valuereplace 商品编号 with bo3.valuereplace 数量 with val(thisform.text2.value)replace 日期 with ctod(thisform.text3.value)endifelsemessagebox("该商品现已没有库存,请及时进货!")endifendifthisform.text1.enabled=.f.thisform.text2.enabled=.f.thisform.text3.enabled=.f.bo1.enabled=.f.bo2.enabled=.f.bo3.enabled=.f.mand4.enabled=.f.thisform.text1.value=""thisform.text2.value=""thisform.text3.value=""bo1.value=""bo2.value=""bo3.value=""thisform.refreshthisform.release*do form 货物管理信息系统close allUSE 出库.dbf EXCLUSIVEpackuse库存管理close allif alltrim(thisform.text1.value)==""wait "请输入要查询的商品编号" window timeout 1thisform.text1.setfocuselseuse sslocate for lower(alltrim(商品编号))==lower(alltrim(thisform.text1.value))if eof()messagebox("您输入的商品编号不存在,请重新输入")thisform.text1.setfocusthisform.text1.value=""elsethisform.grid1.recordsource="select * from ss where lower(alltrim(商品编号))==lower(alltrim(thisform.text1.value)) into cursor aa"endifendifthisform.grid1.recordsource="select * from ss into cursor bb"thisform.release*do form 货物管理信息系统close allif alltrim(thisform.text1.value)==""wait "请输入退货的出库编号" window timeout 1elseclose alluse 出库.dbf EXCLUSIVElocate for alltrim(出库编号)==alltrim(thisform.text1.value)if eof()messagebox("您输入退货的出库编号不存在,请重新输入")thisform.text1.setfocusthisform.text1.value=""elsedelete from 出库where alltrim(出库编号)==alltrim(thisform.text1.value)messagebox("您的退货已成功处理!")endifendifthisform.release*do form 货物管理信息系统close allUSE 出库.dbf EXCLUSIVEpackusethisform.text1.enabled=.t.thisform.text2.enabled=.t.thisform.text3.enabled=.t.thisform.text4.enabled=.t.thisform.text5.enabled=.t.mand4.enabled=.t.thisform.text1.value=""thisform.text2.value=""thisform.text3.value=""thisform.text4.value=""thisform.text5.value=""flag=1thisform.text1.setfocusthisform.text1.enabled=.t.thisform.text2.enabled=.t.thisform.text3.enabled=.t.thisform.text4.enabled=.t.thisform.text5.enabled=.t.mand4.enabled=.t.flag=2thisform.text1.setfocusset delete onif messagebox("您确认是否要删除吗?",33)=1deletethisform.refreshendifif flag=1 theninsert into 仓库values(thisform.text1.value,thisform.text2.value,thisform.text3.value ,thisform.text4.value,thisform.text5.value)elsereplace 仓库编号 with thisform.text1.valuereplace 仓库名称 with thisform.text2.valuereplace 仓库地址 with thisform.text3.valuereplace 库管员 with thisform.text4.valuereplace 联系电话 with thisform.text5.valueendifthisform.text1.enabled=.f.thisform.text2.enabled=.f.thisform.text3.enabled=.f.thisform.text4.enabled=.f.thisform.text5.enabled=.f.mand4.enabled=.f.thisform.text1.value=""thisform.text2.value=""thisform.text3.value=""thisform.text4.value=""thisform.text5.value=""thisform.refreshthisform.release*do form 货物管理信息系统close allUSE 仓库.dbf EXCLUSIVEpack use。

相关主题