仓库管理系统设计.docx
《仓库管理系统设计.docx》由会员分享,可在线阅读,更多相关《仓库管理系统设计.docx(37页珍藏版)》请在冰豆网上搜索。
仓库管理系统设计
(此文档为word格式,下载后您可任意编辑修改!
)
第一章需求分析及能模块分析3
1.1需求分析3
1.2数据流图的设计3
1.3E-R图的设计5
第二章概要设计9
2.1基本表的说明9
2.2基本表的设计9
第三章仓库管理系统的详细设计及功能的实现12
3.1总体设计方案12
3.2窗体的设计及功能实现12
3.2.1登陆窗体的设计及功能实现12
3.2.2切换窗体的设计及其实现功能13
3.2.3数据录入窗体的设计及其实现功能15
3.2.4查询数据窗体的设计及其实现功能25
3.2.5密码维护窗体的设计及其实现功能33
3.2.6报表打印窗体的设计及其实现功能35
第四章软件测试及调试37
第五章结论38
致谢39
参考文献39
摘要
人类社会正在进入信息化的社会。
人们在政治,经济,科学研究,文化教育等各个领域都将产生大量的信息。
这些信息需要加工和处理,需要交流和应用。
数据库技术作为信息技术的一个重要支撑部分,是人们有效的进行数据存储,共享和处理的工具。
尤其是计算机应用到各项管理工作中,从某种意义上讲,管理的过程就是信息的流动和加工的过程。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
一直以来人们使用传统人工的方式管理仓库库存,这种管理方式存在着许多缺点,如:
效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
仓库管理系统是社会上大多数政企单位不可缺少的部分,它的内容对于企业单位的决策者和管理者来说都至关重要,所以仓库管理系统应该能够为用户提供充足的信息和快捷的查询手段,修改仓库内出库入库的物资情况。
计算机功能齐全强大,整好可以用来开发一套仓库管理系统,这比起人手记录好处多很多很多。
例如:
存储量大、保密性好等等。
本论文的作品是一个仓库管理系统,讲述了如何开发仓库系统,介绍设计的过程,介绍了使用ACCESS建立窗以及对其中的控件、程序的使用。
关键词:
仓库管理系统Access数据库
第一章需求分析及功能模块分析
1.1需求分析
仓库管理系统对企业加强设备管理有着极其重要的作用。
由于各个公司都在持续扩大规模,设备的数量日益庞大,传统的手工管理不仅工作量大,而且容易
出现问题。
另外,设备的信息要用到仓库管理的各个方面,所以一旦设备信息管理出现了错误,后果往往是非常严重的。
所以要设计一个系统,可以做到信息的规范管理和快速查询,实现了学生管理的系统化、规范化和自动化。
按照软件实现的功能,可以把软件分为下面几个模块:
数据录入模块,设备信息查询模块,密码维护模块,还有退出模块。
在数据录入模块中主要是实现对设备的入库、出库、还库、需求、采购信息的录入;在设备信息查询模块中主要实现对设备信息的查询、设备出库的查询还有设备还库的查询;在密码维护模块中主要实现对用户密码的修改;退出模块实现关闭窗体。
这就是该数据库的大体结构
1.2数据流程图设计
首先将数据录入到各个数据表中,具体数据流程如图1.1所示。
如图1.1
1.3E-R图的设计
设备信息E-R图,设备有五个属性,如下图所示(1.2)
如图1.2
如图1.2
设备入库信息模块它含有七个属性,分别是设备号、入库时间、供应商、供应商电话、入库数量、价格、采购员如图1.3
如图1.3
设备出库信息模块它含有八个属性,分别是设备号、使用部门、出库时间、出库状况、经手人、出库数量、领取人、用途如图1.4
如图1.4
设备还库信息模块它含有五个属性,分别是设备号、还库时间、仓库管理员、归还数量、归还人如图1.5
如图1.5
设备需求信息模块它含有五个属性,分别是设备号、部门名称、需要数量、需求开始时间、需求结束时间如图1.6
如图1.6
设备出采购信息模块它含有八个属性,分别是设备号、现有库存、总库存、最大库存、购买数量、供应商、价格、计划采购时间如图1.7
如图1.7
设备号模块包括俩个属性,一个是设备号,另一个是设备名称。
如图1.7.1所示
如图1.7.1
总的E-R图,如下图1.7.2所示
如图1.7.2
第二章概要设计
在此软件后端的数据库设计主要使用ACCESS。
根据对软件的需求分析和功能分析,在仓库管理系统中,需要的信息主要包括设备名称信息、设备的基本信息、入库信息、出库、还库、需求、采购和用户密码信息。
2.1基本表的说明
开发要合乎用户的需求,具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输入和输出。
收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。
针对一般仓库货物管理系统的需求,通过对仓库货物调配过程的内容和数据流程分析,设计如下面所示的数据项和数据结构:
(1)用户管理:
数据项有:
用户ID、用户名与密码。
(2)设备信息:
数据项有:
设备号、现有库存、最大库存、最少库存、总数。
(3)还库信息:
数据项有:
设备号、还库时间、仓库管理员、归还数量、归还人。
(4)入库信息:
数据项有:
设备号、入库时间、供应商、供应商电话、入库数量、价格、采购员。
(5)出库信息:
数据项有:
设备号、使用部门、出库时间、出库状况、经手人、出库数量、领取人、用途。
(6)需求信息:
数据项有:
设备号、部门名称、需要数量、需求开始时间、需求结束时间。
(7)采购信息:
数据项有:
设备号、现有库存、总库存、最大库存、购买数量、供应商、价格、计划采购时间。
以下是相应的数据字典:
(8)设备名称信息:
数据项有:
设备号,设备名称。
2.2基本表的设计
名称:
用户管理
1.系统管理数据库表包括用户ID、用户名、密码
名称
类型
可否为空
字段
主键
用户ID
自动编号
No
50
是
用户名
文本
No
20
密码
文本
No
20
名称:
设备信息
2.设备信息数据库表包括设备号、现有库存、最大库存、最少库存、总数五个字段。
名称
类型
可否为空
字段
主键
设备号
文本
No
50
是
现有库存
数字
No
50
最大库存
数字
No
50
最少库存
数字
No
50
总数
数字
No
50
名称:
入库信息
入库信息数据库表包括设备号、入库时间、供应商、供应商电话、入库数量、价格、采购员。
3.七个字段。
名称
类型
可否为空
字段
主键
设备号
文本
No
50
是
入库时间
日期/时间
No
50
供应商
文本
No
50
供应商电话
文本
No
50
入库数量
数字
No
50
价格
货币
No
50
采购员
文本
No
50
名称:
出库信息
4.出库信息数据库表包括:
设备号、使用部门、出库时间、出库状况、经手人、出库数量、领取人、用途八个字段。
名称
类型
可否为空
字段
主键
设备号
文本
No
50
是
使用部门
文本
No
50
出库时间
日期/时间
No
50
出库状况
文本
No
50
经手人
文本
No
50
出库数量
数字
No
50
领取人
文本
No
50
用途
文本
No
50
名称:
需求信息
5.需求信息数据库表包括:
设备号、部门名称、需要数量、需求开始时间、需求结束时间五个字段。
名称
类型
可否为空
字段
主键
设备号
文本
No
50
是
部门名称
文本
No
50
需求数量
数字
No
50
需求开始时间
日期/时间
No
50
需求结束时间
日期/时间
No
50
名称:
采购信息
6.采购信息数据库表包括:
设备号、现有库存、总库存、最大库存、购买数量、供应商、价格、计划采购时间八个字段。
名称
类型
可否为空
字段
主键
设备号
文本
No
50
是
现有库存
数字
No
50
供应商
文本
No
50
总库存
数字
No
50
最大库存
数字
No
50
价格
数字
No
50
购买数量
数字
No
50
计划采购时间
文本
No
50
名称:
还库信息
7.还库信息数据库表包括:
设备号、还库时间、仓库管理员、归还数量、归还人五个字段。
名称
类型
可否为空
字段
主键
设备号
文本
No
50
是
还库时间
日期/时间
No
50
仓库管理员
文本
No
50
归还数量
数字
No
50
归还人
文本
No
50
名称:
设备名称信息
8.设备名称信息数据库表包括:
设备号、设备名称两个字段。
名称
类型
可否为空
字段
主键
设备号
文本
No
50
是
设备名称
文本
No
20
第三章仓库系统的详细设计以及功能的实现
当对数据表的设计完成后,即要对软件的功能进行设计,即开始软件的编程。
在本次设计中,主要通过ACCESS来编写程序,完成软件的功能和界面设计。
3.1总体设计方案
对于本次软件的设计将按照功能模块及分析中所划分的功能模块进行必要的设计,主要实现学生信息查询模块、课程信息查询模块、系统登录模块,查询和管理模块主要是使用查询语句,利用SQL语句编程。
对于软件窗体的设计,将遵循美观简洁的指导方针和一致性及完整性的原则,在实现软件功能的同时方便于用户的使用。
3.2窗体的设计及功能实现
3.2.1登陆窗体的设计及其功能实现
登陆窗体界面见图3.1所示。
该界面包括两部分:
用户登录窗体与登陆背景窗体。
如图3.1
用户登录模块的设计与实现
本模块界面如图3.1所示,输入用户名管理员,密码123,则可以进仓库系统主界面,如输入密码不正确,系统会自动给出密码不正确的提示。
若点击取消,则退出数据库。
如图3.2
3.2.2切换窗体的设计及其功能实现
进入主界面,就可以进行按照操作对数据录入、查询数据、密码维护、打印报表、退出系统的操作。
当前窗体可显示当前用户名,今日日期,现在时刻。
当点击数据录入时进入数据录入界面,点击查询数据时进入数据查询界面,点击密码维护时进入系密码维护界面,点击退出系统时立即退出数据库。
具体操作如图3.2
如图3.2
当前登录用户的名的代码实现如下:
PrivateSubForm_Open(CancelAsInteger)
DimmynameAsString
myname=Forms!
登录窗体!
Combo用户名'获得登录用户名
Me.load_username=myname
DoCmd.CloseacForm,"登录窗体"'关闭登录窗体
EndSub
今日日期与现在时刻的具体实现如图3.3所示
如图3.3
3.2.3数据录入窗体的设计及其功能实现
数据录入功能:
设备入库\设备出库\设备还库\设备需求\设备采购\关闭窗体
进入数据录入界面就可以进行下面操作如图3.4
如图3.4
1.进入设备入库界面,如图3.5
如图3.5
如图3.6
如图3.7
如图3.8
如图3.9
如图3.10
如图3.11
设备入库窗体的代码实现如下:
OptionCompareDatabase
OptionExplicit
PrivateSubcmdAdd_Click()
'************************************
'功能:
添加记录
'************************************
OnErrorGoToErr_cmdAdd_Click
'DoCmd.GoToRecord,,acFirst
DoCmd.GoToRecord,,acNewRec
cmdMod.Enabled=True
cmdMod.SetFocus
cmdAdd.Enabled=False
Exit_cmdAdd_Click:
ExitSub
Err_cmdAdd_Click:
MsgBoxErr.Description
ResumeExit_cmdAdd_Click
EndSub
PrivateSubcmdMod_Click()
DimcurdbAsDatabase
DimcurRSAsRecordset
DimdeviceCntAsInteger
Setcurdb=CurrentDb
SetcurRS=curdb.OpenRecordset("select*from设备表where设备号='"&设备号.Value&"'")
IfNotcurRS.EOFThen
deviceCnt=curRS.Fields("现有库存")
deviceCnt=deviceCnt+CInt(入库数量.Value)
IfdeviceCnt<=curRS.Fields("最大库存")Then
curdb.Execute"update设备表set现有库存="&deviceCnt&_
",总数="&curRS.Fields("总数").Value+CInt(入库数量.Value)&_
"where设备号='"&设备号.Value&"'"
MsgBox("库存更改完毕!
")
Else
MsgBox("入库数量大于该设备的最大库存量,因此不能入库!
")
入库数量.SetFocus
EndIf
Else
WithcurRS
.AddNew
.Fields("设备号")=设备号.Value
.Fields("现有库存")=CInt(入库数量.Value)
.Fields("最大库存")=CInt(入库数量.Value)+10
.Fields("最少库存")=CInt(入库数量.Value)-10
.Fields("总数")=CInt(入库数量.Value)
.Update
MsgBox("新产品已添加到设备表中!
")
EndWith
EndIf
EndSub
PrivateSubCommand18_Click()
OnErrorGoToErr_Command18_Click
Screen.PreviousControl.SetFocus
DoCmd.DoMenuItemacFormBar,acEditMenu,10,,acMenuVer70
Exit_Command18_Click:
ExitSub
Err_Command18_Click:
MsgBoxErr.Description
ResumeExit_Command18_Click
EndSub(代码完毕)
2.接下来是设备出库窗体(如图3.12),它比入库多出一个按钮“当前时间”,当点击它时,文本框中会出现系统时间,以便与设备出库时间形成对比。
添加记录与查找记录与入库无异,但是修改库存时,当出库数量大于现存数量时,系统会出现如图3.13,若正常出库,则会出现出库成功信息,如图3.14
如图3.12
如图3.13如图3.14
其部分代码实现:
PrivateSubcmdMod_Click()
'**********************************
'功能:
修改库存
'**********************************
DimcurdbAsDatabase
DimcurRSAsRecordset
DimdeviceCntAsInteger
Setcurdb=CurrentDb
SetcurRS=curdb.OpenRecordset("select*from设备表where设备号='"&设备号.Value&"'")
IfNotcurRS.EOFThen
deviceCnt=curRS.Fields("现有库存")
deviceCnt=deviceCnt-CInt(出库数量.Value)
IfdeviceCnt>=0Then
curdb.Execute"update设备表set现有库存="&deviceCnt&_
"where设备号='"&设备号.Value&"'"
MsgBox("库存更改完毕!
")
cmdAdd.Enabled=True
cmdAdd.SetFocus
cmdMod.Enabled=False
Else
MsgBox"库存不足,不能出库!
"
出库数量.SetFocus
EndIf
Else
MsgBox"没有该设备,不能出库!
请核对!
"
设备号.SetFocus
EndIf
EndSub
PrivateSubcmdTime_Click()
'************************
'将当前时间插入到文本框中
'************************
出库时间.SetFocus
出库时间.text=CStr(Date)&""&CStr(Time)
EndSub
3.到了设备还库窗体,如图3.15所示,
如图3.15
如图3.16
部分功能的代码实现:
PrivateSubcmdMod_Click()
'**********************************
'功能:
修改库存
'**********************************
DimcurdbAsDatabase
DimcurRSAsRecordset
DimdeviceCntAsInteger
Setcurdb=CurrentDb
SetcurRS=curdb.OpenRecordset("select*from设备表where设备号='"&设备号.Value&"'")
IfNotcurRS.EOFThen
deviceCnt=curRS.Fields("现有库存")
deviceCnt=deviceCnt+CInt(归还数量.Value)
curdb.Execute"update设备表set现有库存="&deviceCnt&_
"where设备号='"&设备号.Value&"'"
MsgBox"库存更改完毕!
"
cmdAdd.Enabled=True
cmdAdd.SetFocus
cmdMod.Enabled=False
Else
MsgBox"没有该设备!
请核对!
"
设备号.SetFocus
EndIf
EndSub
4.设备需求窗体与前面的没有很大的区别,就是少了一个“修改库存”按钮
其界面如图3.17所示,
如图3.17
5.设备采购窗体与设备需求的功能几乎相同,如图3.18所示
如图3.18
6.关闭窗体按钮,顾名思义,退出数据库录入界面。
3.2.4查询数据窗体的设计及其功能实现
查询数据功能:
设备信息\设备的查询\设备的统计\关闭窗体
进入查询数据界面就可以进行下面操作如图3.19
如图3.19
1.设备信息的查询
点击按钮,进入设备信息的查询界面,如图3.20所示
如图3.20
很明显,共有七个个按钮,一个是按现有库存查询设备信息,一个是按还库时间查询设备还库信息,一个是按设备号查询设备入库信息,一个是按设备名称查询采购信息,一个是按出库时间查询信息,一个是按需要数量查询信息,最后一个自然是关闭当前窗体。
其第一个的功能如图所示,在文本框中输入参数m的值,点击确定后,出现下侧结果。
如图3.21
如图3.21
第二个功能正如图示,点击后,将弹出系统提示信息,并选择“确定”,将出现如下图,输入参数,如果输入不合规定格式,出现错误信息,重新输入,完成后,选择“确定”,完成查询工作。
如图所示3.22
如图3.22
2.设备的查询
进入如图3.23所示界面
如图3.23
由图可知,对设备的查询大体包括五类,分别是设备的入库,出库,采购,还库,还有需求。
(1)对于设备入库来说,它的运行查询是按供应商与入库时间进行的,如图3.24所示。
如图3.24
(2)对于设备的出库,其运行查询是按出库数量与使用部门的。
如图3.25
如图3.25
(3)对于设备的采购它是按供应商与计划采购时间进行查询信息的,如图3.26所示
如图3.26
(4)在设备的还库中,查询时按仓库管理,归还人运行的,如图3.27所示
如图3.27
(5)设备的需求查询包括按设备名称的选择查询,按部门名称的删除查询以及部门名称与需求数量设备需求表_交叉表查询,如图3.28
如图3.28
3.设备的统计
点击按钮,它被分成六大模块,如图3.28.1所示,
如图3.28.1
统计功能利
用交叉表来实现的,如图3.28.2所示
如图3.28.2
3.2.5密码维护窗体的设计及其功能实现
窗体的功能:
修改密码
进入系统后,,出现下面所示的窗体(图3.29)。
当输入完用户名,初始密码,确认密码时,可以单击“确定”以进入下一个窗体,或者直接按“取消”以退出系统。
当输入完旧密码与新密码时,确认密码时,可以单击“确定”以修改当前用户的密码。
正确输入后,系统弹出“密码更改成功,欢迎使用本系统!
”,否则,会出现“操作有误,请重新输入!
”如图3.30
如图3.29
如图3.30
部分功能的代码实现:
PrivateSub取消_Click()
OnErrorGoToExit_Err
DoCmd.CloseacForm,"密码维护窗体"
Forms!
登录.Visible=True
Exit_Err:
ExitSub
EndSub
PrivateSub确认_Click()
DimstsqlAsString
If旧密码=DLookup("密码","用户密码表","用户名='"&username&"'")Then
DoCmd.SetWarningsFalse'屏蔽系统错误
DoCmd.RunSQL"update用户密码表SET密码