《仓库管理系统36872588[49页].docx》由会员分享,可在线阅读,更多相关《仓库管理系统36872588[49页].docx(49页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、最新资料推荐第一章 选题背景及系统目标 1.1 选题背景俗话说,兵马未出,粮草先行.古代行兵打仗,最先要考虑的就是物资的准备和管理,否则要取得胜利是非常困难的一件事。商场如战场,商家不仅要掌握大量的物资,同时这些物资还要尽可能满足顾客的需要,这样才能在激烈的市场竞争中获取胜利。然而管理物资却是最烦琐的事情,无论数量还是种类,都是数以万计,用人手工来做,是非常困难的,而且很容易出错误,但是随着科学技术的发展,社会进步,计算机迅速的发展,仓库管理的方法也日新月异,以前全是由人管理的方法现存在很多的缺点:管理效率低,劳动强度大,信息处理速度低而且准确率也不够令人满意。为了提高仓库管理效率,减轻劳动强
2、度提高,信息处理速度和准确性;为仓库管理员提供更方便、科学的服务项目。为仓库管理员提供的一种更先进、科学的服务系统。于是我们便选择了由计算机来设计一个仓库管理系统的方案。让计算机对仓库进行自动管理,仓库管理员可以直接在计算机上实现仓库的信息管理,并能在一定程度上实现自动化。在计算机普及的今天,用电脑管理物资是必然的趋势.现已某中小型公司的仓库管理为例,开发一个借助电脑,把所有数据输入数据库,然后用系统对这些数据进 行管理,通过统计和分析得到各种有用的信息的数据管理系统,以方便对仓库的统一管理。1.2系统目标仓库管理主要是企业各种商品的管理。进货时经检查合同确认为有效托收后,进行验收入库,填写入
3、库单,进行入库登记。企业各个部门根据需要提出产品请求,计划员根据整个企业的需求开出产品出库单,仓库管理人员根据出库单核对发放产品。根据需要按照月进行统计分析,产生相应报表。仓库管理的特点是信息处理量比较大,所管理的产品种类繁多,而且由于入库单、出库单、盘点单等单据发生量特别大,关联信息多,查询和统计的方式各不相同。因此在管理上实现起来有一定的困难。在管理的过程中经常会出现信息的重复传递;单据、报表种类繁多,各个部门管理规格不统一等问题。 在本系统的设计过程中,为了克服这些困难,满足计算机管理工作的需要,我们采取了下面的一些原则:(1)统一各种原始单据的格式,统一报表的格式。(2)删除不必要的管
4、理冗余,实现管理规范化、科学化。(3)程序代码标准化,软件统一化,确保软件的可维护性和实用性。(4)界面尽量简单化,做到实用、方便,尽量满足企业中不同层次员工的需要。(5)建立操作日志,系统自动记录所进行和各种操作。 第二章 需求分析2.1 组织机构分析该仓库企业的组织结构如图所示。企业的主要决策和管理机构总经理,总经理分管财务和执行两大体系模块;财务在仓库管理的经营中所扮演的角色是是一个相当重要的角色过程,相对来说,此部门是相对独立的;日常事务的执行的部分,分为采购部、库存管理部、销售部和人事部四个主要部门。库存管理部的主要任务是根据销售部提供的信息和采购及时联系,使库房货源充足;责任货物的
5、接收,并安排好货物的存放事宜;对每天进出库房的货物进行详细记录,使基础数据完备。 销售部主要责任日常销售工作,包括物品摆放、货架整理、收银台等货物销售区的日常事务;及时准确地将销售信息反馈给其他部门,以保证商品的及时供应更新;同时处理消费者提出的各种疑问和信息,为公司的整体运作提供实际销售的基础数据。 财务部负责一切与财务有关的各项事宜,全面记录公司的所有收支资金流动,包括各种收入、支出、税务、财务结算等。对进出贷款实行控制,定期分析资金走向,为公司的发展计划做好准备。 2.2 系统功能分析系统功能分析是在系统开发的总体任务的基础上完成。本仓库管理系统需要完成功能主要有:(1)仓库管理各种信息
6、的输入,包括货物、供应商、客户、仓库信息的输入等。(2)仓库管理各种信息的查询、统计、修改和维护,包括货物、单据查询,货物出入、职员操作统计,各种信息的修改和维护等。(3)打印报表的生成。(4)在货物管理中加入最高储备和最低储备字段,对仓库中的产品实现监控和报警。(5)操作日志的管理。(6)仓库管理系统的使用帮助。其系统功能图如图所示:仓库管理系统基本信息单据中心查询统计报表打印维护设置系统帮助新增单据单据管理查询模块统计模块 图2-2 系统功能图2.3 业务流程调查与分析1)进货员填写入库单并经仓管查询库存台帐检查核对,不合格单据送回,合格后直接入库并修改库存台帐,同时记录在商品购入流水帐中
7、。如果是新产品,则还要在库存台帐中建立新帐页然后入库。2)商品出库管理过程是管理人员根据销售人员提供的商品出库单,经核查后合格付货,有误送回,同时登记商品的销售流水帐。如果仓库库存不满足,通知采购部进行采购。3)财务员盘点库存数量,计算库存成本。其业务流程图如图2-3所示: 图2-3业务流程图2.4 数据流程调查与分析负责进货的人员首先填写入库单,然后仓库管理人员对商品的质量及数量进行核查不合格的返回入库单让进货员重填,合格的入库并返回确认单。然后更新库存台账。商品出库管理过程是管理人员根据销售人员提供的商品出库单,不合格出库单返回重填,合格后,查询库存台帐,若商品充足,仓库管理系统填写发货单
8、,向客户付货并修改库存台帐,否则,通知生产部门生产。顶层: 图2-4 顶层数据流图负责进货的人员首先填写入库单,然后仓库管理人员对商品的质量及数量进行核查不合格的返回入库单让进货员重填,合格的入库并返回确认单,如商品有记录则录入更新库存台账并记入商品购入流水账,如商品无记录则建立新帐页然后录入,更新库存台账并记入商品购入流水账。商品出库管理过程是管理人员根据销售人员提供的商品出库单,不合格出库单返回重填,合格后,查询库存台帐,若商品充足,仓库管理系统填写发货单,向客户付货并修改库存台帐熟练并记入商品流出流水账,否则,通知生产部门生产。财务人员盘点库存,计算库存成本。累计汇总出各种商品当日的累计
9、购入入库量、累计销售出库量和库存结余量等数据,并将这些数据填入库存台帐。第一层图2-4 第一层数据流程图进货员不合格入库单入库单确认单检查P1.1D1库存台帐无记录货品入库单有记录货品入库单新账建立P1.2入库单录入P1.3D2商品购入流水帐入库信息第二层图2-5 第二层数据流程图 图2-6 管理员数据流图对于管理员来说,要对仓库的信息进行核对注册用户,管理货物的更改信息、入库、出库、核对信息等,其数据流图如图所示: 图2-6 管理员数据流程图管理员的入库操作流程图如图2-7所示:图2-7 入库操作流程图管理员的出库操作流程图如图2-8所示: 图2-8 出库操作流程图对于用户来说,要操作数据库
10、的信息,首先要注册账号,设置密码,登陆上去以后,才能对信息进行查询、更改的操作,其数据流图如图所示:图2-9 用户数据流程图 用户的查询操作如图2-10所示: 图2-10查询数据流程图用户更改密码的流程图如图2-11所示: 图2-11 修改密码数据流程图2.5 典型数据字典分析通过对企业仓库管理的内容和数据流程分析,设计数据项和数据结构如下:(1)货物信息,包括的数据项有编号、货物名称、货物类别、货物规格、计量单位、最高限量、最低限量、备注等。(2)仓库信息,包括的数据项有编号、仓库名称、仓库地点、保管员编号、备注等。(3)库存状况信息,包括的数据项有编号、货物编号、库存数量、仓库编号等。(4
11、)入库单信息,包括的数据项有编号、货物编号、经办人编号、入库时间、入库单价、入库数量、供应商编号、仓库编号、定单状况、其它金额、备注等。(5)出库单信息,包括的数据项有编号、货物编号、经办人编号、出库时间、出库单价、出库数量、客户编号、仓库编号、定单状况、其它金额、备注等。(6)进行月盘点信息,包括的数据项有编号、仓库编号、盘点时间、经办人编号、盘点数据等。(7)系统日志信息,包括的数据项有用户名、操作时间、操作内容等。(8)用户管理信息,包括的数据项有用户名、用户密码、用户权限等。另外,还有借入单、借出单、报损单、调拨单信息等。它们与入库单、出库单信息基本类似。第三章 系统数据库设计3.1数
12、据库概念结构分析根据上面的设计规划出的实体有:现有库存信息实体、入库信息实体、出库信息实体、借入信息实体、借出信息实体、调拨信息实体图和报损信息实体图。各个实体具体的描述E-R图如下:图3-1 现有库存信息实体E-R图 图3-2 入库单信息实体E-R图客户编号出库信息实体编号经办人编号入库时间、单价、数量图3-3 出库信息实体E-R图借入信息实体编号经办人编号借入时间、单价、数量货物编号 图3-4 借入信息实体E-R图借出信息实体编号经办人编号借出时间、数量货物编号 图3-5 借出信息实体E-R图调拨信息实体编号经办人编号目标仓库编号原仓库编号图3-6 调拨信息实体E-R图报损信息实体编号经办
13、人编号报损时间、单价、数量仓库编号 图3-7 报损信息实体E-R图实体和实体之间的关系E-R图如图所示: 图3-8 实体之间关系E-R图 图3-9 全局E_R图3.2数据库逻辑结构设计将在上面的数据库概念结构转化为数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。仓库管理信息系统数据库中各个表格的设计结果如下面表格所示。每个表格所示在数据库中的一个表。表3-1 货物基本信息表字段名称数据类型字段大小可否为空货物编号数字长整型不可货物名称文本16不可货物类别文本16可货物规格文本16可计量单位文本16可最高限量数字长整型不可最低限量数字长整型不可备注文本16可 表3-2 仓库信息表字段名称
14、数据类型字段大小可否为空仓库编号数字长整型不可仓库名称文本16不可仓库地点文本255可管理员编号数字长整型可备注文本16可 表3-3 库存状况信息表字段名称数据类型字段大小可否为空库存状况编号数字长整型不可货物编号数字长整型不可库存数量数字长整型不可仓库编号数字长整型不可 表3-4 入库单信息表字段名称数据类型字段大小可否为空入库单编号数字长整型不可货物编号数字长整型不可经办人编号数字长整型不可入库时间日期/时间不可入库单价货币不可入库数量数字长整型不可供应商编号数字长整型可仓库编号数字长整型不可订单状况文本16不可其它金额货币可备注备注可 表3-5 出库单信息表字段名称数据类型字段大小可否为
15、空出库单编号数字长整型不可货物编号数字长整型不可经办人编号数字长整型不可出库时间日期/时间不可出库单价货币不可出库数量数字长整型不可客户编号数字长整型可仓库编号数字长整型不可订单状况文本16不可其它金额货币可备注文本16可表3-6 借入单信息表字段名称数据类型字段大小可否为空借入单编号数字长整型不可货物编号数字长整型不可经办人编号数字长整型不可借入时间日期/时间不可借入数量数字长整型不可供应商编号数字长整型可仓库编号数字长整型不可订单状况文本16不可其它金额货币可备注文本16可表3-7 借出单信息表字段名称数据类型字段大小可否为空借出单编号数字长整型不可货物编号数字长整型不可经办人编号数字长整
16、型不可借出时间日期/时间不可借出数量数字长整型不可供应商编号数字长整型可仓库编号数字长整型不可订单状况文本16不可其它金额货币可备注文本16可表3-8 调拨单信息表字段名称数据类型字段大小可否为空调拨单编号数字长整型不可货物编号数字长整型不可经办人编号数字长整型不可调拨时间日期/时间不可调拨数量数字长整型不可原仓库编号数字长整型不可目标仓库编号数字长整型不可其它金额货币可备注文本16可表3-9 报损单信息表字段名称数据类型字段大小可否为空报损单编号数字长整型不可货物编号数字长整型不可经办人编号数字长整型不可报损时间日期/时间不可报损单价货币不可报损数量数字长整型不可仓库编号数字长整型不可其它金
17、额货币可备注文本16可表3-10 盘点单信息表字段名称数据类型字段大小可否为空盘点单编号数字长整型不可仓库编号数字长整型不可盘点时间日期/时间不可经办人编号数字长整型不可盘点数据数字长整型不可表3-11 系统日志信息表字段名称数据类型字段大小可否为空用户名Char16不可操作时间日期/时间不可操作内容文本16不可表3-12 用户管理信息表字段名称数据类型字段大小可否为空用户名Char16不可用户密码Char16不可用户权限数字长整型不可3.3数据库物理结构设计物理结构设计的任务就是根据具体计算机系统的特点,为给定的数据库系统确定合理的存储结构和存储方法。所谓的“合理”主要有两个含义:一个是要使
18、设计出的物理数据库占有较少的存储空间。另一个是要对数据库的操作具有尽可能高的速度。1) 建立索引(1)对“货物基本信息”表,在属性列“货物编号”上建立唯一性索引。(2)对“仓库信息”表,在属性列“仓库编号”上建立唯一性索引。(3)对“库存状况信息”表,在属性列“库存状况编号”上建立唯一性索引。(4)对“入库单信息”表,在属性列“入库单编号”上建立唯一性索引。(5)对“出库单信息”表,在属性列“出库单编号”上建立唯一性索引。(6)对“借入单信息”表,在属性列“借入单编号”上建立唯一性索引。(7)对“借出单信息”表,在属性列“借出单编号”上建立唯一性索引。(8)对“调拨单信息”表,在属性列“调拨单
19、编号”上建立唯一性索引。(9)对“报损单信息”表,在属性列“报损单编号”上建立唯一性索引。(10)对“盘点单信息”表,在属性列“盘点单编号”上建立唯一性索引。(11)对“系统日志信息”表,在属性列“用户名”“操作时间”上建立唯一性索引。(12)对“用户管理信息表”表,在属性列“用户名”“用户密码”上建立唯一性索引。2)建立个唯一性索引对应的代码如下:(1)creat unique index 货物信息-编号on 货物基本信息表(货物编号);(2)creat unique index 仓库信息-编号on 仓库基本信息表(仓库编号);(3)creat unique index 库存状况信息-编号o
20、n库存状况信息表(库存状况编号);(4)creat unique index 入库单信息-编号on 入库单信息表(入库单编号);(5)creat unique index 出库单信息-编号on 出库单信息表(出库单编号);(6)creat unique index 借入单信息-编号on 借入单信息表(借入单编号);(7)creat unique index 借出单信息-编号on 借出单信息表(借出单编号);(8)creat unique index 调拨单信息-编号on 调拨单信息表(调拨单编号);(9)creat unique index 报损单信息-编号on 报损单信息表(报损单编号);(
21、10)creat unique index 盘点单信息-编号on 盘点单信息表(盘点单编号);(11)creat unique index 系统日志信息-编号on 系统日志信息表(用户名,操作时间);(12)creat unique index 用户管理信息-编号on 用户管理信息表(用户名,用户密码);3)存储结构确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、日志、备份等的存储安排及存储结构,以及确定系统存储参数的配置。将日志文件和数据库对象(表、索引等)分别放在不同的存盘,可以改进系统的性能,提高系统的安全性。所以,系统应将日志文件和数据文件放在不同的磁盘上。
22、3.4数据库关系设计表3-13 货物基本信息表 表3-14 仓库信息表 表3-15 库存状况信息表表3-16 入库信息表 表3-17 出库单信息表表 3-18 借入单信息表 表3-19 借出单信息表 表3-20 调拨单信息表 表3-21 报损单信息表 表3-22 盘点单信息表 表3-23 系统日志信息表 表3-24 用户管理信息表 表3-25 各表关系图第四章 系统主要功能模块设计与实现4.1系统登录界面设计思路与要点:用户运行程序后,输入用户名与密码,程序根据用户名到后台数据库查询用户名和密码是否正确,如果正确,则根据用户名给出用户所属的级别,并根据级别给出相应的权限。如没有通过验证,则给出
23、没有通过验证的原因。系统登录界面如图4-1所示: 图4-1 系统登录界面单击登陆时,其对应的代码如下:Private Sub cmdOK_Click() Dim con As ADODB.Connection Dim rs As ADODB.Recordset Set con = New ADODB.Connection Set rs = New ADODB.Recordset con.Open dsn=xue, sa, rs.Open select * from 用户 where 用户名= + Trim(txtUserName.Text) + , con, adOpenStatic, adL
24、ockOptimistic If rs.RecordCount 0 Then rs.MoveFirst If Trim(txtPassword.Text) = Trim(rs.Fields(密码) Then Form1.Show LoginSucceeded = True Me.Hide Else MsgBox 密码错误,请重新输入!, , 确定 txtPassword.SetFocus SendKeys Home+End End If Else MsgBox 密码错误,请重新输入, 确定 txtPassword.SetFocus SendKeys Home+End End IfEnd Sub
25、 图4-2 仓库管理系统密码错误界面单击退出时,对应的代码如下:Private Sub cmdCancel_Click()End SubPrivate Sub cmdOK_Click() Dim con As ADODB.Connection Dim rs As ADODB.Recordset Set con = New ADODB.Connection Set rs = New ADODB.Recordset con.Open dsn=xue, sa, rs.Open select * from 用户 where 用户名= + Trim(txtUserName.Text) + , con,
26、adOpenStatic, adLockOptimistic If rs.RecordCount 0 Then rs.MoveFirst If Trim(txtPassword.Text) = Trim(rs.Fields(密码) Then Form1.Show LoginSucceeded = True Me.Hide Else MsgBox 无效的密码,请重试!, , 登录 txtPassword.SetFocus SendKeys Home+End End If Else MsgBox 无效的用户名,请重试!, , 登录 txtPassword.SetFocus SendKeys Hom
27、e+End End IfEnd Sub如果用户名或密码错误,系统会分别提示,防止非法用户进入系统操作。4.2 系统主界面设计思路与要点:用户登录通过后,进入系统的主界面。主界面的菜单如果是灰色显示,则表明此用户没有权限操作此功能。在主界面的状态栏会显示当前用户名和用户权限。界面如图4-3所示: 图4-3 仓库管理系统主界面 其对应的代码如下:Private Sub24.3 系统管理模块系统管理模块主是功能是进行本系统的一些常用管理工作,共有四个子模块:重新登录,修改密码,用户管理,退出。4.3.1 重新登录功能进入系统后,可选择重新登录在不现用户之间进行切换。界面如图4-4所示: 图4-4 系
28、统重登陆界面其对应的代码如下:Private Sub cmdRelude -Click() Relude Me 重新登录仓库管理系统End Sub4.3.2 修改密码功能设计思路和要点:用户如需修改自己的登录密码,需输入旧密码与新密码,程序在数据库中修改用户的密码。界面如图4-5所示: 图4-5 修改密码界面其对应的代码如下:Private Sub From-Loud() TxtOldPWD=CurrentUserPassword 显示用户密码Eed Sub实现密码输入验证:Private Sub txtNewPWD-KeyPress(Index As Integer,KeyAscii As
29、Integer) If KeyAscii=vbKeyRurn ThenSecondKeys“Tab” ElseIf Not (KeyAsscii=vbKey0 And KeyAsscii=Asc(a)And KeyAscii=Asc(A)And KeyAscii=Asc(Z)-Or KeyAsscii=vbKeyBack )ThenKeyAsscii=0 Eed IfEnd Sub单击确认,保存新密码,Private Sub cmdSave-Click() If txtNewPWD(1) txtNewPWD(9)Then MsgBox“两次输入的密码必须相等!”,vbExclamation,“
30、修改密码” txtNewPWD(0).SetFocus txtNewPWD(0).SetStart=0 txtNewPWD(0).SetLength=Len(txtNewPWD(0) Else 修改原来的密码 With Drug-Stor.rsSysUsers .Open .Find “编号=”“&CurrentUserNumner&” .Fields(“密码”)=Trim(txtNewPWD(0) .Update End With MsgBox “密码已修改End Sub单击取消,关闭仓库管理窗体Private Sub cmdExit-Click() Unload Me 关闭密码修改窗体En
31、d Sub4.3.3 用户管理功能设计思路和要点:用户管理是对使用此系统的所有用户进行管理。分为增加,删除以及修改用户信息。此功能只有管理员和超级用户才能使用。普通用户不能执行此操作。界面如图4-6所示: 图4-6 用户管理界面其对应的代码如下: 定义窗体级变量,用于表示当前是否处于添加记录状态Dim isAdding As Boolean实现记录导航Private Sub cmdMove-Click(Index As Integer) With Drug-Store.rsSysUsers Case 0 使第一个记录成为当前记录 If .RecordCont0 And Not .BOF The
32、n .MoveFirst Case 1 使上一个记录成为当前记录 If .RecordCont0 And Not .BOF Then .MovePrevious If.BOF Then .MoveFirst End If Case 2 使下一个记录成为当前记录 If .RecordCont0 And Not .BOF Then .MoveNext If . BOF Then .MoveLast End If Case 3 使最后一个记录成为当前记录 If .RecordCont0 And Not .BOF Then .MoveLastEnd SelectIf And . BOF Then tx
33、tNews=“记录:无”ElsetxtNews=“记录:”&.AbsolutePossition&”/”&.RecordCountEnd IfEnd WithEnd Sub验证用户信息输入,在输入用户名、密码和权限代码时,执行验证操作,Private Sub txtUser-KeyPress(KeyAscii As Integer) If Not(KeyAscii=vbKey0 And KeyAscii=Asc(a)And KeyAscii=Asc(A)And KeyAscii=vbKey0 And KeyAscii=Asc(a)And KeyAscii=Asc(A)And KeyAscii0
34、 Then. MoveLastEed If Eed If Eed IfEed WithEnd Sub单击关闭时,实现关闭窗体操作Private Sub cmdExit-Click()Unload Me 关闭系统用户管理窗体End Sub4.3.3.1 退出功能退出即退出本系统。选择系统管理下的退出即可。如图4-7所示: 图4-7 退出系统界面其对应的代码如下:Private Sub cmdExit-Click() Unload Me 关闭仓库管理窗体End Sub4.4仓库管理模块仓库管理模块是本系统的核心模块。根据仓库的日常操作共分有六个子模块,分别是:入库操作,出库操作,退料操作,增料操作
35、,仓位管理和盘点损益。已基本包括了仓库管理的主要功能。4.4.1入库操作设计思路和要点:入库操作即仓库的收料,系统规定收料只能根据订单来进行。没有订单就不能完成收料。每个订单都对应一个入库操作。这样可以大大减少因人为因素产生的错误。规范化仓库收料操作。选择订单号码后,相关的订单信息已会显示出来。订单号码是由订单管理模块产生。仓库人员没有权限产生订单。界面如图4-8所示: 图4-8 入库操作界面其对应的代码如下:单击入库时,Private Sub cmdAdd-Click() If cmdAdd.Caption=“入库” ThencmdAdd.Caption=“查询”StockData.Visi
36、ble= FalseStockIn.Visible=TrueisStorking= TruecmdDelet.Enabled= FalsecmbName.ListIndex=0 设置入库数据默认的产品名称和编号cmbNum.ListIndex=0Else cmdRefresh.Value= TruecmdAdd.Caption=“入库”StockData.Visible= TrueStockIn.Visible= FalseisStorking= FalsecmdDelet.Enabled= TrueEed IfEnd Sub点击关闭时,退出入库窗体Private Sub cmdExit-Click() Unl