库存管理系统.docx
《库存管理系统.docx》由会员分享,可在线阅读,更多相关《库存管理系统.docx(25页珍藏版)》请在冰豆网上搜索。
![库存管理系统.docx](https://file1.bdocx.com/fileroot1/2022-11/21/e7076547-463b-4b8a-92f4-65a012bf1cce/e7076547-463b-4b8a-92f4-65a012bf1cce1.gif)
库存管理系统
摘要
随着现代工业的发展,计算机信息管理系统越来越受到企业重视,而库存管理信息系统就是一个典型的信息管理系统(MIS),库存管理系统能够极大地提高人事劳资管理的效率,也是企业的科学化、正规化管理与世界接轨的重要条件。
基于此本人开发了一个库存管理系统,该系统实现了商品基本信息、类别信息、仓库信息等基本信息的管理,实现了商品入库、商品出库、入库管理、出库管理、出入库统计等库存管理,系统还实现了库存查询、用户管理、系统管理等功能。
系统的核心是库存管理,企业使用库存管理系统,可以摆脱传统的手动填写单据工作模式,节省了大量的人力、物力和财力,使得管理员从繁琐的工作中解放出来。
本系统开发平台是VS2005,开发语言是C#,数据库为SQLServer2005。
系统采用三层架构模式,三层架构模式可实现代码的分散关注、松散耦合、逻辑复用、标准定义,并使得代码具有高度的可扩展性、安全性、易移植性和易维护性。
系统还采用了javascript技术,使得页面富有动态感。
关键词:
库存管理,数据库,信息管理系统(MIS)
第一章系统分析
1.1系统需求分析
1.1.1系统功能要求
本人设计了一个基于Microsoft.NETFramework的B/S库存管理系统,系统包括了以下库存管理的常见功能:
(1)基本信息管理。
包括添加商品类别的添加、商品类别管理、商品信息、商品信息管理、客户信息的添加、客户信息管理、仓库信息添加、仓库信息管理。
(2)库存管理。
包括新增入库单、入库管理、新增出库单、出库管理、库存报警、入库统计、出库统计、查看库存信息。
(3)库存信息查询。
包括入库单查询、出库单查询。
(4)用户管理。
包括增加用户、更改密码、更改权限。
(5)系统管理。
包括数据库备份、数据恢复、数据库压缩、分离数据库、附加数据库、数据导入、数据导出。
1.1.2系统性能要求
库存管理系统为了满足人们的需求应具有以下性能:
(1)系统具有易操作性;
(2)系统具有通用性、灵活性;
(3)系统具有易维护性;
(4)系统具有可开放性;
(5)系统具用易移植性。
1.2.2系统用例描述
表1-1系统用例描述表
编号
用例名称
用例描述
输入
系统响应
输出
1
登录
检查用户是否存在
用户名和密码
在数据库中查询用户信息
提示:
“用户登录成功!
“
2
添加商品信息
对商品信息进行添加
商品信息
存储商品信息
提示:
“添加成功!
”
3
管理商品信息
对商品信息进行修改、删除
选择要修改和删除的信息
修改/删除商品信息
提示:
“修改成功/删除成功”
4
商品入库
对商品信息进行入库
要入库的商品信息
存储入库商品信息
提示:
“添加成功”
5
入库信息管理
对入库商品进行修改、删除
选择要修改/删除的商品信息
修改/删除商品信息
提示:
“修改成功/删除成功”
6
商品出库
对商品信息进行出库
要出库的商品
存储商品信息
提示:
“添加成功”
7
出库管理
对出库商品进行修改、删除
选择要修改/删除的商品信息
修改/删除商品信息
提示:
“修改成功/删除成功”
8
数据备份
对数据进行备份
选择要备份的数据
备份数据
提示:
“备份成功”
1.2.3系统主要流程图
管理员登录成功后进入系统主页面流程图,管理员登录成功后,管理员进入系统主页面,对系统主要功能进行操作,登录失败后,重新登录。
系统主要流程图如图1-2所示。
图1-2系统流程图
第二章系统设计
2.1功能模块设计
库存管理系统主要有基本信息管理、库存管理等五大功能模块,系统的五大功能模块如图3-1所示。
图2-1系统功能模块
库存管理包括商品的基本信息等八个部分,其具体描述如图2-2所示。
图2-2库存管理模块
基本信息管理包括管理客户信息等八个部分,具体描述如图2-3所示。
图2-3基本信息管理模块
系统管理包括备份数据库等7个部分,具体描述如图2-4所示。
图2-4系统管理模块
2.2数据库设计
2.2.1数据库对象
库存管理系统数据库对象主要包括用户表、客户信息表、商品信息表、入库操作信息表、出库信息操作表、库存表、商品类别表、仓库信息表,系统的表设计如表2-1所示。
表2-1数据库对象
名称
类型
说明
Users
基本表
存储用户的基本信息
Customers
基本表
存储客户的基本信息
StoreIn
基本表
存储入库商品基本信息
StoreOut
基本表
存储出库商品基本信息
Products
基本表
存储商品的基本信息
ProductTypes
基本表
存储商品类别基本信息
ProStore
基本表
存储库存商品基本信息
StoreHouses
基本表
存储仓库的基本信息
Suppiler
基本表
存储供应商的基本信息
3.2.2数据表
(1)客户信息表。
保存了客户的基本的信息,如客户编号、客户名称、客户类型等,主键是c_ID。
客户信息表的详细设计如表3-2所示。
表2-2Customers表
字段列名
字段类型
字段大小
必填字段
说明
c_ID
int
是
客户编号
c_Name
varchar
50
否
客户名称
c_Type
varchar
20
否
客户类型
c_Ontact
varchar
30
否
联系人
c_Address
varchar
50
否
联系地址
c_Postcode
varchar
10
否
邮政编码
c_Phone
varchar
30
否
联系电话
c_Fax
varchar
30
否
传真号码
c_Email
varchar
30
否
邮箱
c_Memo
varchar
1000
否
备注
(2)用户信息表。
保存了用户的基本信息,如用户编号、用户密码等,主键是userName用户信息表的详细设计如表2-3所示。
表2-3Users表
字段列名
字段类型
字段大小
必填字段
说明
uerName
varchar
50
是
用户名
pwd
varchar
50
是
用户密码
popedom
varchar
10
是
权限
(3)商品类别表。
保存了商品类别的基本的信息,如类别编号、类别名称、商品级别,主键是typeID,商品类别表的详细设计如表2-4所示。
表2-4ProductTypes表
字段列名
字段类型
字段大小
必填字段
说明
typeID
int
是
商品类ID
typeName
varchar
50
是
商品名称
upperID
varchar
10
是
商品级别
(4)商品信息表。
保存了商品信息的基本的信息,如商品编号、商品名称、供应商等,主键是p_ID,商品信息表的详细设计如表2-5所示。
表2-5Products表
字段列名
字段类型
字段大小
必填字段
说明
p_ID
int
是
商品类别ID
p_Name
varchar
50
是
商品类别名称
TypeID
int
是
商品级别
sp_Name
varchar
100
是
供应商
p_Style
varchar
50
是
商品规格
p_Unit
varchar
10
是
计量单位
p_Price
float
是
单价
p_MakeDate
datetime
是
商品生产日期
p_Low
int
是
商品数量上限
p_High
int
是
商品数量下限
p_Valid
int
是
有限期
p_AlarmDays
int
是
在到达有效期期前几天发出警告
(5)供应商表。
保存了供应商的基本的信息,如供应商编号、供应商名称等,主键是sp_ID,供应商品表的详细设计如表2-6所示。
表2-6Suppiler表
字段列名
字段类型
字段大小
必填字段
说明
sp_ID
varchar
20
是
供应商编号
sp_Name
varchar
100
是
供应商名称
sp_Telphone
varchar
20
是
联系方式
sp_Address
varchar
100
是
地址
(6)入库操作信息表。
保存了入库商品的基本的信息,如入库单编号、入库操作类型、入库商品编号等,主键是i_ID,入库操作信息表的详细设计如表3-7所示。
表2-7StoreIn表
字段列名
字段类型
字段大小
必填字段
说明
i_ID
varchar
20
是
入库单ID
i_Type
varchar
50
是
入库操作型
p_ID
varchar
是
入库商品号
p_MakeDate
datetime
100
是
生产日期
p_Price
float
50
是
入库商品价
p_num
int
是
入库商品量
p_Price
float
是
单价
p_SumPrice
foat
是
总额
c_ID
int
是
客户编号
p_Uint
varchar
10
是
计量单位
empName
varchar
50
是
经办人
s_Name
varchar
50
是
仓库名称
OptDate
datetime
是
入库日期
(7)出库操作信息表。
保存了出库商品的基本的信息,如出库单编号、出库操作类型、出库商品编号等,主键是o_ID,出库操作信息表的详细设计如表2-8所示。
表2-8StoreOut表
字段列名
字段类型
字段大小
必填字段
说明
o_ID
varchar
20
是
入库单编号
o_Type
varchar
20
是
入库操作类型
p_ID
varchar
20
是
商品编号
p_Prices
float
是
价格
p_Number
int
是
数量
p_SumPrice
float
是
总价格
c_ID
int
是
客户编号
s_Name
varchar
50
是
仓库名称
empName
varchar
50
是
经办人
optDate
datetime
是
出库日期
p_Uint
varchar
10
是
单位
(8)库存信息表。
保存了库存商品的基本的信息,如库存编号、商品名称、商品数量等,主键是s_pID,库存信息表的详细设计如表2-9所示。
表2-9ProStore表
字段列名
字段类型
字段大小
必填字段
说明
s_pID
int
是
商品存贮编号
p_ID
varchar
20
是
商品编号
p_Price
float
是
商品入库单价
Pnum
int
是
商品库存数量
p_MakeDate
datetime
是
生产日期
s_Name
varchar
50
是
仓库名称
(9)仓库信息表。
保存了仓库的基本的信息,如仓库编号、仓库名称、仓库说明等,主键是s_ID,出库信息表的详细设计如表3-10所示。
表2-10StoreHouses表
字段列名
字段类型
字段大小
必填字段
说明
s_ID
int
是
仓库编号
s_Name
varchar
50
是
仓库名称
s_Memo
varchar
1000
是
仓库说明
第三章系统实现与说明
3.1用户登录
管理员输入正确用户名、密码和验证码,单击登录,进入系统主页面,系统登录页面如图3-1所示。
3.2系统主界面
成功登录后,进入库存管理系统的主界面。
在主界面可以浏览库存管理系统的基本信息,系统主界面如图3-2所示。
3.3库存管理
库存管理是库存管理系统中的主要模块,通过商品入库和出库管理,实现商品的运转。
3.3.1商品入库
单击左侧商品入库命令,进入商品入库界面,选择入库操作类型,选择商品编号、选择生产日期、输入经办人等,点击确定,完成商品入库。
商品入库界面如图3-3所示。
3.3.2商品入库管理
从左侧菜单栏单击入库管理命令,可以进入商品入库管理界面,可以对入库商品信息进行删除和编辑操作,选中要删除入库商品信息记录,直接可以单击删除命令,可以删除选中的记录,单击编辑操作命令可以链接到相应的编辑页面,用户可以进行入库商品信息编辑,商品入库管理界面如图3-4所示。
3.3.3商品出库
从左侧菜单栏单击商品出库命令,可进入商品出库界面,选择出库操作类型、录入商品编号、录入经办人等,单击确定按钮,实现商品出库。
商品出库界面如图3-5所示。
3.3.4商品出库管理
从左侧菜单栏单击出库管理命令,进入出库管理页面,对出库商品信息进行删除和编辑操作,选中要删除的出库商品记录,单击删除命令,可删除选中的记录,单击编辑操作可以链接到相应的编辑页面,用户可以进行出库商品信息编辑,商品出库管理界面如图3-6所示。
3.3.5入库商品信息查询
单击左侧菜单栏的入库查询命令,进入入库商品信息查询界面,入库查询包括按入库商品编号查询、按入库类型查询、按仓库名称查询、按入库日期查询。
输入入库商品编号,单击确定按钮,可以查询到相应的入库商品信息,其它的查询方式与入库商品编号的查询方式一样。
入库商品查询界面如图4-7所示。
3.3.6出库商品信息查询
单击菜单栏的出库查询命令,进入出库商品信息查询界面,出库查询分为按出库商品编号查询,按出库类型查询,按仓库名称查询,按出库日期查询。
单击按库存名称查询命令,选择要查询的仓库名称,可以查询要相应的出库商品信息。
出库商品信息查询界面如图3-8所示。
3.3.7数据备份
单击菜单栏数据库备份命令,选择要备份的数据库,输入备份数据的路径,单击确定按钮,完成备份操作,数据备份界面如图4-9所示。
第四章程序代码
4.1数据库连接
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
usingSystem.Data.SqlClient;
publicclassSqlHelper
{
publicSqlHelper()
{
}
privateSqlConnectioncon;
privatevoidOpen()
{
con=newSqlConnection(ConfigurationManager.ConnectionStrings["li"].ConnectionString);
con.Open();
}
publicintExcuteProcedure(stringprocName,SqlParameter[]prams)
{
Open();
SqlCommandmyCommand=newSqlCommand();
myCommand.Connection=con;
myCommand.CommandType=CommandType.StoredProcedure;
myCommand.CommandText=procName;
if(prams!
=null)
{
foreach(SqlParameterparameterinprams)
{
myCommand.Parameters.Add(parameter);
}
}
intn=myCommand.ExecuteNonQuery();
con.Close();
returnn;
}
publicSqlDataReaderExcuteProcedure_Dr(stringprocName,SqlParameter[]prams)
{
Open();
SqlCommandmyCommand=newSqlCommand();
myCommand.Connection=con;
myCommand.CommandType=CommandType.StoredProcedure;
myCommand.CommandText=procName;
if(prams!
=null)
{
foreach(SqlParameterparameterinprams)
{
myCommand.Parameters.Add(parameter);
}
}
inti=myCommand.ExecuteNonQuery();
SqlDataReaderdr=myCommand.ExecuteReader();
returndr;
}
publicDataSetExcuteProcedure_Ds(stringprocName,SqlParameter[]prams)
{
Open();
SqlCommandmyCommand=newSqlCommand();
myCommand.Connection=con;
myCommand.CommandType=CommandType.StoredProcedure;
myCommand.CommandText=procName;
if(prams!
=null)
{
foreach(SqlParameterparameterinprams)
{
myCommand.Parameters.Add(parameter);
}
}
SqlDataAdapterda=newSqlDataAdapter();
DataSetds=newDataSet();
da.SelectCommand=myCommand;
da.Fill(ds,"tables");
returnds;
}
publicDataSetExcuteProcedure_Ds(stringprocName)
{
Open();
SqlCommandmyCommand=newSqlCommand();
myCommand.Connection=con;
myCommand.CommandType=CommandType.StoredProcedure;
myCommand.CommandText=procName;
SqlDataAdapterda=newSqlDataAdapter();
DataSetds=newDataSet();
da.SelectCommand=myCommand;
da.Fill(ds);
returnds;
}
publicDataSetExcutemyDs(stringmyDs)
{
Open();
SqlCommandmyCommand=newSqlCommand();
myCommand.Connection=con;
myCommand.CommandText=myDs;
SqlDataAdaptermyDataAdapter=newSqlDataAdapter();
myDataAdapter.SelectCommand=myCommand;
DataSetmyDataSet=newDataSet();
myDataAdapter.Fill(myDataSet);
returnmyDataSet;
}
publicSqlDataReaderGetDataReader(stringSQL)
{
Open();
SqlCommandmyCommand=newSqlCommand();
myCommand.CommandText=SQL;
myCommand.Connection=con;
SqlDataReadermyDataReader=myCommand.ExecuteReader();
returnmyDataReader;
}
}
4.2业务逻辑层(主要代码)
privatestringo_ID;
privatestringo_Type;
privatestringp_ID;
privatefloatp_Price;
privateintp_Number;
privatefloatp_SumPrice;
privateintc_ID;
privatestrings_Name;
privatestringempName;
privateDateTimeoptDate;
privateDateTimeoptDate1;
privatestringp_Uint;
publicstringO_ID
{
get{returno_ID;}
set{o_ID=value;}
}
publicstringO_Type
{
get{returno_Type;}
set{o_Type=value;}
}
publicstringP_ID
{
get{returnp_ID;}
set{p_ID=value;}
}
publicfloatP_Price
{
get{returnp_Price;}
set{p_Price=value;}
}
publicintP_Number
{
get{returnp_Number;}
set{p_Number=value;}
}
publicfloatP_SumPrice
{
get{returnp_SumPrice;}
set{p_SumPrice=value;}
}
publicintC_ID
{
get{ret