您好,欢迎来到步遥情感网。
搜索
您的当前位置:首页基于WEB的库存管理系统

基于WEB的库存管理系统

来源:步遥情感网


课程: 信息系统工程与实践

基于WEB的库存管理系统

系 电子系 专业 计算机科学与技术 班级 文计0912 姓名 徐荣 学号 200990514243 任课教师 贺秉庚

第一部分 课题可行性分析

本部分主要介绍开发基于web的库存管理系统的意义及对开发该系统所需工具进行了简要的描述。

1.1 选题背景

现代企业的最大特点是信息处理量比较大,所管理的物资设备、原材料及零部件种类繁多,而且由于入库单、出库单等单据发生量特别大,关联信息多,查询和统计的方式各不相同,因此在管理上实现起来有一定的困难。动态变化的制造环境对库存管理系统提出了新的要求,所以很有必要设计出一套系统来管理企业的库存运作,而传统的库存管理系统操作复杂,效率低。

因此,本文根据现代制造企业库存管理的特点和要求,讨论了基于web的库存管理系统的体系结构,通过实现用户界面、应用程序与数据的相互,提高库存管理的敏捷性、可维护性和数据完整性。

1.2 开发工具简介

本系统主要应用Microsoft Visual Web Developer 2005中的Asp.Net辅以Microsoft SQL Server2000实现。

1.2.1 Microsoft Visual Web Developer 2005简介

Visual Web Developer 2005 速成版是 Microsoft Visual Studio 2005 系列产品的一

部分,该环境提供一个同类最佳的 HTML 源代码编辑器、一个改进的可视化页设计器、 一个新的项目系统、对数据操作的更好的支持以及对 XHTML 标准的完全支持。此外,它还集成了许多ASP.NET开发应用的组件,用户可以直接应用这些组件创建ASP.NET应用程序,极大地方便了用户编程。

[3]

1.2.2 ASP.NET简介

Asp.Net是目前最流行的Web开发技术之一,是微软公司用于创建功能强大的网站的工

具,该技术基于.NET环境开发,具有简易性、自定义性、扩展性、安全性、可管理性、可缩

放性等优点,而且支持多种语言,包括:Visual Basic.Net、C#、Jscript等,本系统主要利用C#语言进行编写。

[4]

1.2.3 SQL Server2000简介

SQL Server2000是微软公司于2000年推出的一款面向高端的数据库管理系统,支持关系数据库的结构化查询语言SQL,具有动态自动管理和优化功能。它还支持大型web站点,对

[5]

数据的操作和管理都有很好的支持,深受客户的喜爱,使用非常广泛。

第二部分 需求分析

需求分析是系统开发的第一步也是最重要的一步。开发一个仓库管理信息系统之前,开发者首先要了解和澄清用户的需求。开发者只有和客户充分理解了需求之后才能开始设计系统;否则,对需求定义的任何改进,设计上都必须大量的返工。

[6]

2.1 任务概述

基于web的库存管理系统具有对仓库信息、货物信息及所涉及到的员工信息进行管理及

维护的功能,也具有对每一次仓库货物变动情况进行记录以及自动生成订货报表的功能。其目标是提高仓库的存储效率,减少仓库管理漏洞。

2.2 用户对系统的需求

该系统主要面向三类用户:仓库主管、分仓库管理员和采购员。不同的用户对系统的需求不同。具体所列如下:

2.2.1 仓库总管对功能的需求 (1)员工信息管理

 浏览所有员工信息

 按员工号查找某位员工的具体信息  对员工信息进行录入、修改及删除

(2)仓库信息管理

 浏览所有仓库的基本信息

 按仓库编号查找某个仓库的具体信息  对仓库信息进行录入、修改及删除

(3)货物信息管理

 浏览所有仓库中的货物信息  按货物编号查找某项货物的具体信息  对货物信息进行录入、修改及删除

(4)存储规则管理

存储规则是用来管理仓库的货物存放规则信息,包括最大存量、最低警戒线等。

 浏览所有货物存放规则信息

 按存储规则编号查找某项货物存放规则信息  录入、修改及删除货物存放规则信息。

(5)对所有货物的进出信息进行浏览

2.2.2 分仓库管理员对功能的需求

录入仓库货物的变动信息,内容主要包括货物名称,当前货物存量,最大存储量,最低警戒线以及实际操作的进货/出货数量,负责人等。变动包括进货和出货两类,分仓库管理员要根据货物的存放规则合理进出货,即进货时不能超过最大库存量,出货时不能大于当前的货物存储值等。

2.2.3 采购员对功能的需求

根据库存情况,系统生成采购信息的浏览。并根据货物需求的紧急程度进行采购。采购信息内容主要包括货物名称、所需仓库、仓库地址、仓库描述、货物描述、所需数量、当前价格、供应商和紧急程度等。

2.3 系统功能模块划分

仓库管理信息系统所需要实现的功能可以细分为几个模块:员工管理、仓库管理、货物管理、存储规则管理、货物进出记录、货物进出控制及仓库需求生成。

2.3.1 系统登录模块

该模块是针对用户登录的用户管理模块。用户先选择自己的员工类型,然后输入自己的员工号及密码,经系统验证后,便可以使用该系统与其权限相对应的功能。

另外,当用户需要离开系统或切换用户时,该模块还提供了注销功能。

2.3.2 员工管理模块

该模块负责管理所有参与仓库管理运作的员工信息,包括添加、删除、修改和查找员工信息。系统各功能操作按照员工的工作类别区别给予,系统分为3种权限:仓库总管、分仓库管理员和采购员。

其中,仓库总管可以管理所有员工信息,而分仓库管理员及采购员只能对自己的信息进行修改和维护。

2.3.3 仓库管理模块

该模块负责管理本系统所涉及的所有仓库信息,包括添加、删除、修改和查找仓库信息。只有仓库总管才具有对仓库信息进行维护的权利。

2.3.4 货物管理模块

该模块负责管理所有在仓库中存放的货物的详细信息,包括添加、删除、修改和查找货物信息。只有仓库总管有权对货物信息进行维护。

2.3.5 存储规则管理模块

该模块负责管理仓库的货物存放规则信息,包括添加、删除、修改存储规则信息。由仓库总管决定各种货物对应的存放规则,何种物品存放在何仓库,限量多少,最低警戒线多少等。存储规则作为一种关系存在,联系仓库与货物这两个孤立的信息。

只有仓库主管才具有对存储规则进行维护的权利。

2.3.6 货物进出控制模块

货物进出控制就是对进仓、出仓的货物进行登记管理,分仓库管理员将担负起这个职责,

当有货物进出仓库是,分仓库管理员调用这个模块,按照预先设定好的存储规则对合法货物进行进出控制。

2.3.7 仓库需求生成模块

我们对仓库进行管理的最终目的是及时发现当前仓库的需求,当前需求主要是提供给采购部门信息的浏览,它不提供给任何人删除以及修改的权利,仓库需求中系统将会根据目前仓库的存储情况,赋予每一个订单一个量化的紧急程度值,供采购部门安排采购时确定采购顺序。

2.3.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 4 5 6 7 8 性别 地址 电话 电子邮箱 用户类型 密码 Bit Varchar(50) Varchar(50) Varchar(50) Int(4) Varchar(50) 0-男,1-女 1-仓库总管2-分仓库管理员3-采购员 6—20位之间 9 所属仓库号 Char(10) 外码,参照表为仓库信息表 其中,该表中的每一项都不能为空。 (2) 仓库信息表

该表用于存放当前公司所有涉及到的仓库信息,其结构如表3.2所示:

表3.2 仓库信息表

编 号 1 列 名 仓库编号 数 据 结 构 Char(10) 说 明 主键,4-建库日期,5-7所在城市,后3位流水号 2 3 4 5 仓库名称 Varchar(50) 单位为:平方米 对该仓库所存货物的简单描述 仓库所在地 Varchar(50) 仓库大小 仓库描述 Float(8) Varchar(50) 在该表中,除了仓库描述字段可以为空外,其余各字段均不能为空。 (3) 供应商表

该表描述了供应商的基本信息,其结构如表3.3所示:

表3.3 供应商表

编 号 1 2 3 4 列 名 供应商号 供应商名 数 据 结 构 Char(4) Varchar(50) 说 明 主键,流水号 供应所在地 Varchar(50) 联系电话 Char(11) 供应商表中各项均不能为空。

(4) 货物信息表

该表记录当前仓库存储的货物信息,其结构如表3.4所示:

表3.4 货物信息表

编 号 1 2 3 4 5 列 名 货物编号 货物名称 当前价格 供应商号 货物描述 数 据 结 构 Char(10) Varchar(50) Float(8) Char(4) Varchar(50) 说 明 主键,4-入库日期,后几位为流水号 单位为:元 外码,参照表为:供应商表 对该该货物的简单描述 在该表中,除了货物描述字段可以为空外,其余各字段均不能为空。

(5) 存放规则信息表:

该表用来存放货物的存储规则,其结构如表3.5所示:

表3.5 存放规则信息表

编 号 1 2 3 4 5 6 列 名 数 据 结 构 说 明 主键,4-入库日期,后几位为流水号 外码,与货物表中的货物号相关联 外码,与仓库表中的仓库号相关联 存储规则号 Char(10) 货物编号 仓库编号 Varchar(50) Float(8) 最高存储量 Float(8) 最低警戒线 Float(8) 当前货物量 Float(8) 在该表中,各项均不能为空。其中,该表与货物信息表、仓库信息表都是多对一的关系。

(6) 货物进出库记录表

货物进出记录表用来存储每次商品的进仓、出仓记录,其结构如表3.6所示:

表3.6 货物进出库记录表

编 号 1 2 3 4 5 6 7 列 名 数 据 结 构 说 明 主键,流水号 外码,与货物表中的货物号相关联 外码,与仓库表中的仓库号相关联 该项要参照存储规则 1-入库,2-出库 登陆该系统的分仓库管理员编号 不能为空 货物进出号 Int(4) 货物编号 仓库编号 Char(10) Char(10) 出入库数量 Float(8) 是否入库 Bit 管理员编号 Char(10) 经手人 Varchar(50) 3.2 关系图设计:

3.3 建表完成后,得到如下图3-1所示的关系图:

图3-1 数据库各表关系图

3.3 整体功能模块图

该系统的整体功能模块图如图3-2所示:

3.4 某些模块功能图

基于web的库存管理系统 用员货仓存仓户工物库储库登管管管规需陆理理理则求模模模模管生块 块 块 块 理成模模块 块 图3-2 整体功能模块图 3.4.1 员工管理模块 员工管理模块

查添删修 找加除改员员员员 工工工工 信信信信息息 息 息 图3-3 员工管理模块功能图

货货物物进进出出控记制录模模块 块 第四部分 详细设计

在了解了上述功能模块之后,开始进行详细设计。本章主要对用户登陆模块、仓库信息管理模块及货物进出模块进行详细分析。

4.1 用户登陆模块

用户登陆模块主要由登陆页面(Login.aspx)实现,该页面设计比较简单,主要由两个文本框组成,用户在上述文本框中输入自己的员工号及密码,若员工号和密码存在且匹配,则根据其员工类型,转入到不同的主界面;若员工号或密码输入错误,则显示错误信息,清空文本框中的内容,要求用户重新进行输入。由此画出本模块的流程图如图4-1所示:

图4-1 用户登陆模块流程图 按其用户类型转到相应的界面 由存储过程的返回值,得用户类型 显示错误信息,并清空文本输入框中的内容 是 是否正确 否 输入员工号和密码 进入用户登陆页面

画出流程图之后,我们就可以开始对此模块进行编码了,由于该模块需要判断用户名和密码是否正确,因此需要先与数据库进行连接。连接的语句如下所示:

public SqlConnection con;

con = new SqlConnection(\"server=SONY-PC;database=库存管理系统;uid=sa;pwd=\"); con.Open();

为了判断用户输入的员工号和密码是否正确,在数据库中建立存储过程Pr_loginUser并在login.aspx.cx中进行调用。调用语句如下:

SqlCommand myCommand = new SqlCommand(\"Pr_loginUser\myCommand.CommandType = CommandType.StoredProcedure;

//从TextBox1中获得值,并将其传入存储过程Pr_loginUser的UserID参数中: SqlParameter parameterUserName = new SqlParameter(\"@UserID\parameterUserName.Value =TextBox1.Text.ToString(); myCommand.Parameters.Add(parameterUserName);

//从TextBox2中获得值,并将其传入存储过程Pr_loginUser的参数pwd中: SqlParameter parameterpwd = new SqlParameter(\"@pwd\parameterpwd.Value = TextBox2.Text.ToString(); myCommand.Parameters.Add(parameterpwd);

上述语句向存储过程中传入用户输入的员工号和密码,存储过程根据这两个参数,通过查找员工信息表,判断是否存在相应的员工记录。若存在,则将其员工号及密码保存在相应的session值中,并根据其员工类型转入相应的主界面;若不存在这样的记录,则显示错误信息。该部分所对应的语句如下所示:

SqlDataReader dr = null; try

{ dr= myCommand.ExecuteReader(); } //执行存储过程 catch (Exception ex)

{ Response.Write(\"\"); } String userId=\"\"; String pwd=\"\"; int role = 0;

if(dr.Read() ) //存储过程正确执行时,返回值为true { Session[\"userId\"] = dr[\"员工号\"].ToString();

Session[\"pwd\"] = dr[\"密码\"].ToString();

role = Convert.ToInt32(dr[\"用户类型\"].ToString()); }

if ((Session[\"pwd\"] == null)) //若没有匹配的员工记录 { Response.Write(\"\");

TextBox1.Text=null; TextBox2.Text = null; //清空文本框中的记录} Else //若匹配,则根据角色转入到相应的界面 { if (role == 1)

Response.Redirect(\"main1.aspx\"); else if (role == 2)

Response.Redirect(\"main2.aspx\"); else if (role == 3)

Response.Redirect(\"main3.aspx\"); } }

至此,商品列表模块就设计好了。保存在session集合中的员工号和密码值,可在个人密码修改时使用,即当用户点击个人密码修改界面(PasswordModify.aspx,如图4-2所示)时,先从session中取出该用户的员工号和及密码值,用户只需填写两次正确的新密码值,即可。接下来为大家介绍仓库信息管理模块。

图4-2 密码修改设计界面

进入仓库信息管理界面 A 浏览所有仓库的信息 点击“删除”or“编辑”or“添加” 点击“查询”,并输入所要查询的仓库编号 填写相应的信息,并执行对应的操作 是否正确 否 是 显示该仓库的详细信若操作执行成功 显示错误信息 返回至仓库管理界面 A 图4-3 仓库信息管理模块流程图 4.2 仓库信息管理模块

仓库信息管理模块主要由仓库管理页面(GoodsManage.aspx)实现,此页面只有仓库主管有权对其进行仓库管理,即添加、编辑、删除和查询某项仓库信息,该模块的流程图如图4-3所示:

该仓库管理的设计界面如下图4-4所示:

图4-4 仓库管理设计页面

由上图可以看出,此页面右下方采用一个GridView控件与DataSet数据集的绑定来显示所有仓库的具体信息。在进行数据绑定时,首先先配置数据源,即在“配置数据源窗口中”选择数据库文件,设置来源数据表“仓库”,并单击“测试查询”。其次,创建GridView控件,选择刚才建立的数据源,再设置相关的选项,如在上图中,该控件的第一列及第二列均设为EditCommandColumn列,分别定义了“编辑”(更新、取消)按钮,及 “删除”按钮,分别用于实现仓库信息的编辑及删除功能,并选用了启用分页等功能。

再看该页面右上方,有一个添加新仓库信息的链接,该链接连接到GoodsAdd.aspx页面,如下图4-5所示,该页面主要通过填写表单来增添商品信息,由一些简单的label控件和textbox控件来实现,具体代码就不再介绍。

[8]

图4-5 添加新的仓库信息

点击上述页面中的“返回”,则链接到仓库管理主页面。在此页面右上方的另一个链接按钮,用于完成对某项仓库进行查询的功能,该页面通过调用存储过程Pr_Goodsno,判断用户输入的仓库号是否存在,若存在,则显示出该仓库的详细信息;若不存在,则显示错误信息。下图4-6为查询仓库号不存在的界面。

图4-6 查询设计界面及错误提示信息

4. 3 货物进出库模块

货物进出库模块主要由货物进出页面(GoodsReserve.aspx)实现,此页面只有分仓库管理员有权对其进行操作,即对进仓、出仓的货物进行登记管理,该模块的流程图如图4-7所示:

调用存储过程Pr_in,并修改数据提示错误信息 是 选择进出货 否 给出该货物的信息:当前货物存量、最大是 进货值、最大出货量等 输入进/出货的货物名称进入货物进出库页面 进货数量是否合理? 是 否 否 出货数量是否合理? 是 调用存储过程Pr_out,并修改数据库 图4-7 货物进出模块流程图

在下图4-8中,分仓库管理员先根据需要,输入要进货/出货的货物名称,点击“提交”按钮,在该按钮的事件void Button1_Click(object sender, EventArgs e)中,建立与数据库的连接,调用存储过程Pr_ GoodsReserve,查看该货物的当前库存量,最高存储值及最低警戒线。并根据上述值计算得当前该货物的最大出货量maxout及最大进货量maxin,并将填入到页面相对应的文本框之中。

然后,用户根据需要选择“进货”或者“出货”,按存储规则填写数量之后,提交,分别调用存储过程Pr_in,Pr_out,即完成对数据库的修改。

图4-8 货物进出登记设计界面

其中,连接数据库及调用存储过程的语句与4.1.1中所述相似,故不再赘述。存储过程Pr_in的内容如下所示:

CREATE PROCEDURE [Pr_in] (@gname Varchar(50),@man1 Varchar(50),@is Float) AS

DECLARE @gn CHAR(10) DECLARE @wn CHAR(10)

create table #LS(goodsno char(10), waresno char(10)) ---创建临时表 insert into #LS(goodsno,waresno) ---将记录插入到临时表中 Select 货物. 货物编号,仓库编号 From 货物,存放规则 Where 货物名称=@gname and 货物.货物编号=存放规则.货物编号 select @gn =goodsno,@wn =waresno from #LS

Update 存放规则 ---更改表“存放规则”中该货物的信息 Set 存放规则.当前货物存量=存放规则.当前货物存量+@is Where 存放规则.货物编号=@gn

Insert ---在表“货物进出记录”中新增一条记录 into 货物进出库(货物编号,仓库编号,出入货物数量,是否入库,仓库管理员编号,经手人,日期)

values (@gn,@wn,@is,1,'2010220001',@man1,getdate()) GO 至此,用户登录、货物管理及货物进出库模块就介绍完成了,由于篇幅的关系,其他几个模块就不在这里介绍了,具体请查看源代码。

[9]

第五部分 运行界面

下面我们就来看看本库存管理系统的运行界面。首先,在网页浏览器中第一次进入本系统,所看到的是如图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中如何调用存储过程、如何向存储过程中传递参数及使用其返回的参数值,一度减缓了毕业设计的进展。后来通过老师及同学的帮助,上网查询相关资料,并对查询到的语句进行测试,从而实现了对存储过程的正确使用。

6.1.2 数据绑定的方法

在该系统中,需要把数据从数据存储的地方检索出来,呈现给用户,并可供用户对其

进行添加、删除和修改。数据绑定可以轻松实现上述功能,它是将cs文件中的变量、对象等数据显示在aspx文件中的某个控件上

[10]

。若绑定正确并且则可显示数据,且当数据更改其值

时,绑定到数据的元素会自动反映更改,大大减少了编码的数量,并提高了程序的准确程度。

为学习数据绑定的方法,我在图书馆借阅了相关书籍,通过不断地练习及实践,学会了对其熟练使用,具体绑定过程如章节4.2所示。

6.2 待改进之处

6.2.1 功能方面

该系统理想中还应在登录页面中添加随机验证码,以及若有浏览者直接在浏览器的地

址栏输入本网页名称打开网页时,除了禁止其进入管理系统外,还应显示信息告知应先登录才能进入管理系统。由于时间和精力的有限,上述功能没有实现。

6.2.2 界面方面

由于本人技术水平有限,我只完成了基本的操作页面,没有对页面做特别的装饰,理想中应该给页面添加好背景,再添加一些Flash动画等使界面更加美观。

在日后的学习生活中,我会尽量来完善这些功能和界面。

第七部分 总结

通过近一个月的努力,我完成了web作业,可以说,过程让我受益匪浅。首先,我对数据库的使用有了进一步的认识,基本掌握了如何使用Asp.net2.0制作网页及用C#编写程序,完成了数据库与界面的连接,实现了对数据进行查询及修改等功能。其次,我意识到了软件设计的重要性,使我了解到需求分析是系统开发的第一步也是最重要的一步。开发者只有和客户充分理解了需求之后才能开始设计系统;否则,对需求定义的任何改进,设计上都必须大量的返工。最后就是调试方法的重要性,系统的调试过程要比开发过程繁琐的多。

除此之外,通过这次设计,使我对软件的开发过程有了更加清晰的认识,为我以后学习和工作奠定了良好的基础。同时我也认识到个人的水平有限,实践经验不足,很多方面仍需要提高,在以后的学习和工作中,我会不断学习,逐渐提高自己的能力。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- obuygou.com 版权所有 赣ICP备2024042798号-5

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务