基于WEB的库存管理系统Word文件下载.docx
《基于WEB的库存管理系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于WEB的库存管理系统Word文件下载.docx(27页珍藏版)》请在冰点文库上搜索。
基于web的库存管理系统具有对仓库信息、货物信息及所涉及到的员工信息进行管理及维护的功能,也具有对每一次仓库货物变动情况进行记录以及自动生成订货报表的功能。
其目标是提高仓库的存储效率,减少仓库管理漏洞。
2用户对系统的需求
该系统主要面向三类用户:
仓库主管、分仓库管理员和采购员。
不同的用户对系统的需求不同。
具体所列如下:
2.2。
1仓库总管对功能的需求
(1)员工信息管理
●浏览所有员工信息
●按员工号查找某位员工的具体信息
●对员工信息进行录入、修改及删除
(2)仓库信息管理
●浏览所有仓库的基本信息
●按仓库编号查找某个仓库的具体信息
●对仓库信息进行录入、修改及删除
(3)货物信息管理
●浏览所有仓库中的货物信息
●按货物编号查找某项货物的具体信息
●对货物信息进行录入、修改及删除
(4)存储规则管理
存储规则是用来管理仓库的货物存放规则信息,包括最大存量、最低警戒线等。
●浏览所有货物存放规则信息
●按存储规则编号查找某项货物存放规则信息
●录入、修改及删除货物存放规则信息。
(5)对所有货物的进出信息进行浏览
2分仓库管理员对功能的需求
录入仓库货物的变动信息,内容主要包括货物名称,当前货物存量,最大存储量,最低警戒线以及实际操作的进货/出货数量,负责人等。
变动包括进货和出货两类,分仓库管理员要根据货物的存放规则合理进出货,即进货时不能超过最大库存量,出货时不能大于当前的货物存储值等.
2.2。
3采购员对功能的需求
根据库存情况,系统生成采购信息的浏览.并根据货物需求的紧急程度进行采购。
采购信息内容主要包括货物名称、所需仓库、仓库地址、仓库描述、货物描述、所需数量、当前价格、供应商和紧急程度等。
2.3系统功能模块划分
仓库管理信息系统所需要实现的功能可以细分为几个模块:
员工管理、仓库管理、货物管理、存储规则管理、货物进出记录、货物进出控制及仓库需求生成。
2.3。
1系统登录模块
该模块是针对用户登录的用户管理模块。
用户先选择自己的员工类型,然后输入自己的员工号及密码,经系统验证后,便可以使用该系统与其权限相对应的功能.
另外,当用户需要离开系统或切换用户时,该模块还提供了注销功能。
3。
2员工管理模块
该模块负责管理所有参与仓库管理运作的员工信息,包括添加、删除、修改和查找员工信息.系统各功能操作按照员工的工作类别区别给予,系统分为3种权限:
仓库总管、分仓库管理员和采购员.
其中,仓库总管可以管理所有员工信息,而分仓库管理员及采购员只能对自己的信息进行修改和维护。
2.3.3仓库管理模块
该模块负责管理本系统所涉及的所有仓库信息,包括添加、删除、修改和查找仓库信息.只有仓库总管才具有对仓库信息进行维护的权利。
4货物管理模块
该模块负责管理所有在仓库中存放的货物的详细信息,包括添加、删除、修改和查找货物信息。
只有仓库总管有权对货物信息进行维护。
5存储规则管理模块
该模块负责管理仓库的货物存放规则信息,包括添加、删除、修改存储规则信息.由仓库总管决定各种货物对应的存放规则,何种物品存放在何仓库,限量多少,最低警戒线多少等。
存储规则作为一种关系存在,联系仓库与货物这两个孤立的信息。
只有仓库主管才具有对存储规则进行维护的权利.
6货物进出控制模块
货物进出控制就是对进仓、出仓的货物进行登记管理,分仓库管理员将担负起这个职责,当有货物进出仓库是,分仓库管理员调用这个模块,按照预先设定好的存储规则对合法货物进行进出控制.
3.7仓库需求生成模块
我们对仓库进行管理的最终目的是及时发现当前仓库的需求,当前需求主要是提供给采购部门信息的浏览,它不提供给任何人删除以及修改的权利,仓库需求中系统将会根据目前仓库的存储情况,赋予每一个订单一个量化的紧急程度值,供采购部门安排采购时确定采购顺序。
8货物进出记录模块
每一笔货物的进出显然要做到有据可查,查阅的内容包括货物名称,仓库信息,进出库数量,进出库产生日期,负责人,经手人等。
以上信息我们都会在对货物进出进行控制时产生,但是货物进出记录一旦生成就不可修改、删除,这也提供了仓库管理信息系统的可靠性.
只有仓库管理员才具有对所有货物的进出信息进行浏览的权利。
2.4系统流程分析
为了更清楚地说明系统框架,以便更好地设计该系统的解决方案,画出该系统流程图,如图2-1所示.系统流程图展示了该系统所有功能模块之间的逻辑关系,其中的各个功能模块基本上都代表了一个或多个独立的页面,并将在下面的系统设计阶段得到体现[7].
图2-1系统流程图
由流程图可以看出,用户验证通过后,系统会根据该用户的账户信息进行授权.其中,当有货物进或出仓时,各分仓库管理员可以通过货物进出控制模块进行控制,同时受到存储规则的约束,比如,进仓的货物数量不能大于存储规则中所设定的最大存储量等。
当货物出库后,如果货物在仓库中的数量低于存储规则所设定的存放底线时,系统会通过仓库需求生成模块自动生成需求清单,以指导采购员对货物进行采购。
第三部分系统设计
3.1数据库设计:
(1)鲜花信息表
该表用于存放仓库管理信息系统中所有参与人员的信息,其结构如表3。
1所示:
表3.1用户信息表
编号
列名
数据结构
说明
1
员工号
Char(10)
该表的主键,前4位-年,第5位-员工类型,6—性别,7—10位-流水号
2
姓名
Varchar(50)
3
性别
Bit
0—男,1-女
4
地址
5
电话
6
电子邮箱
7
用户类型
Int(4)
1—仓库总管2—分仓库管理员3—采购员
8
密码
6-20位之间
9
所属仓库号
外码,参照表为仓库信息表
其中,该表中的每一项都不能为空。
(2)仓库信息表
该表用于存放当前公司所有涉及到的仓库信息,其结构如表3.2所示:
表3.2仓库信息表
说明
仓库编号
主键,4—建库日期,5—7所在城市,后3位流水号
仓库名称
仓库所在地
仓库大小
Float(8)
单位为:
平方米
仓库描述
对该仓库所存货物的简单描述
在该表中,除了仓库描述字段可以为空外,其余各字段均不能为空。
(3)供应商表
该表描述了供应商的基本信息,其结构如表3.3所示:
表3。
3供应商表
供应商号
Char(4)
主键,流水号
供应商名
供应所在地
联系电话
Char(11)
供应商表中各项均不能为空。
(4)货物信息表
该表记录当前仓库存储的货物信息,其结构如表3.4所示:
4货物信息表
货物编号
主键,4—入库日期,后几位为流水号
货物名称
当前价格
元
外码,参照表为:
供应商表
货物描述
对该该货物的简单描述
在该表中,除了货物描述字段可以为空外,其余各字段均不能为空。
(5)存放规则信息表:
该表用来存放货物的存储规则,其结构如表3。
5所示:
表3.5存放规则信息表
存储规则号
主键,4-入库日期,后几位为流水号
外码,与货物表中的货物号相关联
外码,与仓库表中的仓库号相关联
最高存储量
最低警戒线
当前货物量
在该表中,各项均不能为空。
其中,该表与货物信息表、仓库信息表都是多对一的关系。
(6)货物进出库记录表
货物进出记录表用来存储每次商品的进仓、出仓记录,其结构如表3。
6所示:
表3.6货物进出库记录表
货物进出号
外码,与仓库表中的仓库号相关联
出入库数量
该项要参照存储规则
是否入库
1-入库,2-出库
管理员编号
登陆该系统的分仓库管理员编号
经手人
不能为空
3.2关系图设计:
3.3建表完成后,得到如下图3-1所示的关系图:
图3-1数据库各表关系图
3整体功能模块图
该系统的整体功能模块图如图3—2所示:
3.4某些模块功能图
4.1员工管理模块
第四部分详细设计
在了解了上述功能模块之后,开始进行详细设计。
本章主要对用户登陆模块、仓库信息管理模块及货物进出模块进行详细分析。
4.1用户登陆模块
用户登陆模块主要由登陆页面(Login。
aspx)实现,该页面设计比较简单,主要由两个文本框组成,用户在上述文本框中输入自己的员工号及密码,若员工号和密码存在且匹配,则根据其员工类型,转入到不同的主界面;
若员工号或密码输入错误,则显示错误信息,清空文本框中的内容,要求用户重新进行输入。
由此画出本模块的流程图如图4-1所示:
画出流程图之后,我们就可以开始对此模块进行编码了,由于该模块需要判断用户名和密码是否正确,因此需要先与数据库进行连接。
连接的语句如下所示:
publicSqlConnectioncon;
con=newSqlConnection(”server=SONY-PC;
database=库存管理系统;
uid=sa;
pwd="
);
con。
Open();
为了判断用户输入的员工号和密码是否正确,在数据库中建立存储过程Pr_loginUser并在login.aspx.cx中进行调用。
调用语句如下:
SqlCommandmyCommand=newSqlCommand("
Pr_loginUser”,con);
myCommand.CommandType=CommandType。
StoredProcedure;
//从TextBox1中获得值,并将其传入存储过程Pr_loginUser的UserID参数中:
SqlParameterparameterUserName=newSqlParameter(”@UserID”,SqlDbType。
Char);
parameterUserName.Value=TextBox1。
Text。
ToString();
myCommand.Parameters。
Add(parameterUserName);
//从TextBox2中获得值,并将其传入存储过程Pr_loginUser的参数pwd中:
SqlParameterparameterpwd=newSqlParameter("
@pwd”,SqlDbType。
VarChar);
parameterpwd。
Value=TextBox2.Text。
myCommand.Parameters.Add(parameterpwd);
上述语句向存储过程中传入用户输入的员工号和密码,存储过程根据这两个参数,通过查找员工信息表,判断是否存在相应的员工记录。
若存在,则将其员工号及密码保存在相应的session值中,并根据其员工类型转入相应的主界面;
若不存在这样的记录,则显示错误信息。
该部分所对应的语句如下所示:
SqlDataReaderdr=null;
try
{dr=myCommand.ExecuteReader();
}//执行存储过程
catch(Exceptionex)
{Response。
Write(”〈script〉alert(\”执行存储过程失败!
\"
)<
/script〉”);
}
StringuserId="
”;
Stringpwd=”"
;
introle=0;
if(dr.Read())//存储过程正确执行时,返回值为true
{Session[”userId”]=dr["
员工号"
].ToString();
Session["
pwd”]=dr[”密码”]。
role=Convert。
ToInt32(dr["
用户类型"
]。
ToString());
}
if((Session["
pwd"
]==null))//若没有匹配的员工记录
Write("
〈script>
alert(\”您的用户名或密码错误,请重新输入!
)〈/script>
”);
TextBox1。
Text=null;
TextBox2.Text=null;
//清空文本框中的记录}
Else//若匹配,则根据角色转入到相应的界面{if(role==1)
Response。
Redirect(”main1.aspx"
);
elseif(role==2)
Response.Redirect("
main2。
aspx”);
elseif(role==3)
Response.Redirect(”main3.aspx”);
}}
至此,商品列表模块就设计好了。
保存在session集合中的员工号和密码值,可在个人密码修改时使用,即当用户点击个人密码修改界面(PasswordModify。
aspx,如图4—2所示)时,先从session中取出该用户的员工号和及密码值,用户只需填写两次正确的新密码值,即可。
接下来为大家介绍仓库信息管理模块。
图4-2密码修改设计界面
4。
2仓库信息管理模块
仓库信息管理模块主要由仓库管理页面(GoodsManage。
aspx)实现,此页面只有仓库主管有权对其进行仓库管理,即添加、编辑、删除和查询某项仓库信息,该模块的流程图如图4—3所示:
该仓库管理的设计界面如下图4—4所示:
图4-4仓库管理设计页面
由上图可以看出,此页面右下方采用一个GridView控件与DataSet数据集的绑定来显示所有仓库的具体信息。
在进行数据绑定时,首先先配置数据源,即在“配置数据源窗口中”选择数据库文件,设置来源数据表“仓库”,并单击“测试查询”。
其次,创建GridView控件,选择刚才建立的数据源,再设置相关的选项,如在上图中,该控件的第一列及第二列均设为EditCommandColumn列,分别定义了“编辑”(更新、取消)按钮,及“删除”按钮,分别用于实现仓库信息的编辑及删除功能,并选用了启用分页等功能[8]。
再看该页面右上方,有一个添加新仓库信息的链接,该链接连接到GoodsAdd.aspx页面,如下图4-5所示,该页面主要通过填写表单来增添商品信息,由一些简单的label控件和textbox控件来实现,具体代码就不再介绍。
图4—5添加新的仓库信息
点击上述页面中的“返回"
,则链接到仓库管理主页面。
在此页面右上方的另一个链接按钮,用于完成对某项仓库进行查询的功能,该页面通过调用存储过程Pr_Goodsno,判断用户输入的仓库号是否存在,若存在,则显示出该仓库的详细信息;
若不存在,则显示错误信息。
下图4—6为查询仓库号不存在的界面。
图4-6查询设计界面及错误提示信息
4.3货物进出库模块
货物进出库模块主要由货物进出页面(GoodsReserve。
aspx)实现,此页面只有分仓库管理员有权对其进行操作,即对进仓、出仓的货物进行登记管理,该模块的流程图如图4-7所示:
在下图4—8中,分仓库管理员先根据需要,输入要进货/出货的货物名称,点击“提交”按钮,在该按钮的事件voidButton1_Click(objectsender,EventArgse)中,建立与数据库的连接,调用存储过程Pr_GoodsReserve,查看该货物的当前库存量,最高存储值及最低警戒线。
并根据上述值计算得当前该货物的最大出货量maxout及最大进货量maxin,并将填入到页面相对应的文本框之中。
然后,用户根据需要选择“进货”或者“出货”,按存储规则填写数量之后,提交,分别调用存储过程Pr_in,Pr_out,即完成对数据库的修改。
图4-8货物进出登记设计界面
其中,连接数据库及调用存储过程的语句与4.1.1中所述相似,故不再赘述。
存储过程Pr_in的内容如下所示:
CREATEPROCEDURE[Pr_in](@gnameVarchar(50),@man1Varchar(50),@isFloat)AS
DECLARE@gnCHAR(10)DECLARE@wnCHAR(10)
createtable#LS(goodsnochar(10),waresnochar(10))-——创建临时表
insertinto#LS(goodsno,waresno)-——将记录插入到临时表中
Select货物。
货物编号,仓库编号From货物,存放规则
Where货物名称=@gnameand货物.货物编号=存放规则.货物编号
select@gn=goodsno,@wn=waresnofrom#LS
Update存放规则———更改表“存放规则”中该货物的信息
Set存放规则.当前货物存量=存放规则.当前货物存量+@is
Where存放规则.货物编号=@gn
Insert---在表“货物进出记录"
中新增一条记录[9]
into货物进出库(货物编号,仓库编号,出入货物数量,是否入库,仓库管理员编号,经手人,日期)
values(@gn,@wn,@is,1,’2010220001’,@man1,getdate())GO
至此,用户登录、货物管理及货物进出库模块就介绍完成了,由于篇幅的关系,其他几个模块就不在这里介绍了,具体请查看源代码。
第五部分运行界面
下面我们就来看看本库存管理系统的运行界面。
首先,在网页浏览器中第一次进入本系统,所看到的是如图5-1所示的首页,在该页面中主要包括一个系统Logo及登录。
图5-1登录页面
用户输入员工号后,若正确,则根据其用户类型转入到相应的界面.若该用户为仓库主管,则转入如图5—2所示的页面:
图5-2仓库主管界面
用户可以点击界面左侧的链接,转入相应的界面,并对信息进行维护。
其中,仓库信息维护及仓库的添加,删除和查询等界面以在详细设计中5。
2所示,故此不再赘述。
若点击链接文字“货物进出记录”,则出现如图5—3所示的界面。
图5—3货物进出记录页面
点击“注销”后,返回登录界面。
以分仓库管理员的身份进入,则转入如图5—4所示界面:
图5-4分仓库管理员页面
其中,货物进出登记页面及个人密码修改界面,分别入上图4-8及4-2所示。
点击“注销”,以采购员的身份进入,则转入到下图5-5所示界面:
图5—5采购员界面
采购员点击“货物需求列表"
,根据下图5—6所示信息,按照紧急程度,决定采购的顺序及数量.
图5-6货物需求列表界面
第六部分所遇难点及待改进方面
6。
1所遇难点
6.1。
1存储过程的调用
由于存储过程的使用给系统带来了优化,因此,系统将最大程度地对其进行使用。
但是,在设计之初,不知道在asp。
net中如何调用存储过程、如何向存储过程中传递参数及使用其返回的参数值,一度减缓了毕业设计的进展。
后来通过老师及同学的帮助,上网查询相关资料,并对查询到的语句进行测试,从而实现了对存储过程的正确