物资管理系统详细设计说明书.docx
《物资管理系统详细设计说明书.docx》由会员分享,可在线阅读,更多相关《物资管理系统详细设计说明书.docx(18页珍藏版)》请在冰豆网上搜索。
物资管理系统详细设计说明书
详细设计
1.引言
编写目的
物资管理系统的总目标是:
在数据库和先进的开发平台上,利用现有资源,开发一个体系结构完善的、易扩充的、易维护的、具有良好人机交互界面的物资管理系统,实现物资的计算机管理,提供完善的功能,为物资管理人员提供便利的工作方式。
需求分析的目的是对问题进行分析,以及根据对所选择的开发工具的了解,分析系统的总体需求,较好地完成任务。
项目背景
为了适应日趋激烈的市场竞争,不论是企业还是其他具有物资储备的公司都需要对自身的储备状况有充分的了解,并通过有效的管理不断提高效率。
因此,对物资的管理也成为提高生产效率的一个重要途径。
本物资管理系统是针对物资的基本信息管理和出入库登记和查询统计等方面工作而开发的管理软件,是一个实用的管理信息系统,针对企业的实际需要,分析了物资管理系统的功能,并以入库管理和出库管理为重点,描述了两子系统的模块结构设计及实施过程中的技术要点,实现物资的基本信息管理、出入库管理、查询管理及用户管理等功能。
同时,还对代码维护及库存余额管理等做了设计。
用户可以通过相应的模块,对物资基本情况进行更新、删除和查询,对物资出库和入库进行管理,对出入库明细进行查询,对出库,入库,和材料的库存余额进行报表生成,对使用该系统的用户进行更新、删除和查询,对库存数量进行查询,还有操作员管理,权限设置,密码修改,数据备份与系统恢复等其他系统管理功能。
定义
物资管理系统
参考资料
VisualC#编程技术与实例
软件工程
2.总体设计
需求概述
1.物资供应管理软件的最终目标是在保证企业生产经营管理正常进行的前提下,最大限度地简化日常事务,降低原材料成本和运营成本,降低库存和占用资金,增加企业的流动资金,减少财务收支差错或延误,使物资管理人员把更多的精力集中在诸如供应商选择、合同谈判和效益分析等战略性决策任务上。
2.用计算机管理物资不能照搬照抄人工管理模式,变成人工管理的翻版,而是要根据物资管理的目标对人工管理的业务流程进行优化、合理化、科学化,要超越当前的业务,抽象出业务中的管理思想和规律。
3.要让物流、资金流、数据流、控制流畅通并形成一个完整的闭环反馈系统。
整个物资供应管理系统要以计划和控制为主线,充分体现物流、资金流、信息流、控制流有机集成的管理思想。
同时,物资的管理效率就体现在对信息的采集、传递、处理加工过程中,信息流是物资供应管理过程的影象。
4.要有丰富的监控、考核、管理功能,做到事先有计划,事中有控制,事后有核算,要求每一个业务过程都要为领导(综合管理)提供丰富的决策信息和考核数据。
实现功能
需要实现的功能如下:
有关物资基本信息的输入。
物资基本信息的查询与修改。
入库物资信息的输入。
入库物资信息的查询与修改。
出库物资信息的输入。
出库物资信息的查询与修改。
物资余额信息的查询。
物资余额信息的浏览。
3.主要界面设计
物资管理系统首页
物资信息维护页面
添加物资基本信息页面
仓库信息维护页面
物资信息修改页面
存放规则维护页面
修改密码页面
人员信息维护页面
修改员工信息页面
余额查询页面
添加仓库信息页面
添加员工信息页面
物资进出记录页面
4.功能模块设计与代码实现分析
物资管理系统首页
物资管理系统首页具有自动导航的功能,不同用户登录,根据其不同的身份,将进入不同的系统功能页,系统分3类用户:
系统管理员、仓库管理员、采购员。
在用户身份验证通过后,系统由Session变量记录其用户号、用户身份,伴随用户对系统进行操作的整个生命周期。
以下给出物资管理系统首页()的后台支持类的主要代码。
前台脚本代码可以通过.NET集成开发环境,依照所给界面设计方案可以完成。
主要代码如下:
privatevoidbtn_login_Click(objectsender,e)
{
oString();
Session["Ugrade"]=dr["权限"].ToString();
="欢迎您!
"+Session["uid"];
if(Session["Ugrade"].ToString()=="1")
{oString()=="2")
{oString()=="3")
{dd("@GID",);
alue=[1].Text.ToString());
();
=-1;
BindGrid();
}
catch
{
("删除物资基本信息错误!
请先把该物资其他相关信息删除!
");
();
}
}
publicvoidDataGrid_Page(Objectsender,DataGridPageChangedEventArgsE)
{
=;
BindGrid();
}
privatevoidbtn_search_Click(objectsender,e)
{
try
{
intvargid=.ToString());
("gid="+vargid);
}
catch
{
("输入的物资编号不正确!
");
();
}
}
添加物资基本信息页面
物资信息添加页面主要负责往数据库中添加数据,后台使用btn-submit-Click函数进行处理,负责当用户单击“添加”按钮后的数据库添加操作。
以后是物资信息添加页面的后台支持类()的主要相关代码。
privatevoidbtn_submit_Click(objectsender,e)
{
if)
{oString()=="")Vargid=1;oString())+1;lose();
dd("@Gid",);
.Add("@Gname",;
.Add("@Gguige",;
.Add("@Gkind",);
.Add("@Gdanwei",);
.Add("@Gprice",);
["@Gid"].Value=Vargid;
["@Gname"].Value=["@Gguige"].Value=.ToString();
["@Gkind"].Value=.ToString();
["@Gdanwei"].Value=.ToString();
["@Gprice"].Value=.ToString());
.Open();
();
}
catch
{
("对不起输入信息中存在不合要求信息,请重输!
");
();
}
仓库信息维护页面
仓库信息维护页面是物资管理系统中的一个部分,主要负责所有仓库信息的浏览、编辑、更新以及删除,用户也可以通过链接来添加新仓库信息,即跳转到页面。
物资信息维护页面后台支持类()主要代码如下:
publicvoidDataGrid_Update(Objectsender,DataGridCommandEventArgsE)
{dd("@WID",);
.Add("@WName",;
.Add("@WArea",);
.Add("@WAddress",;
alue=.ToString());
["@WName"].Value=((TextBox)[0]).Text.ToString();
["@WArea"].Value=(((TextBox)[0]).Text.ToString());
["@WAddress"].Value=((TextBox)[0]).Text.ToString();
dd("@WID",);
alue=[0].Text.ToString());
();
=-1;
BindGrid();
}
catch
{
("删除仓库基本信息错误!
请先把该仓库其他相关信息删除!
");
();
}
}
物资信息修改页面
本页面增加了支持这两个空间的数据库操作代码,由于这是一个信息修改界面,系统必须提供原始数据记录,在Page_Load函数里,添加了实现各个文本框初始数据绑定的程序代码。
以下是物资信息修改页的后台支持类()的主要相关代码:
privatevoidPage_Load(objectsender,e)
{
toredProcedure;
.Add("@Gid",);
["@Gid"].Value=["gid"].ToString());
SqlDataReaderdr=();
if())oString();
=dr["物资名称"].ToString();
=dr["规格型号"].ToString();
=dr["种类"].ToString();
=dr["计量单位"].ToString();
=dr["单价"].ToString();
}
else
{
("对不起,没有该产品信息");
();
}
}
}
privatevoidbtn_modify_Click(objectsender,e)
{
if)
{dd("@Gid",);
.Add("@Gname",;
.Add("@Gguige",;
.Add("@Gkind",);
.Add("@Gdanwei",);
.Add("@Gprice",);
["@Gid"].Value=.ToString());
["@Gname"].Value=["@Gguige"].Value=.ToString();
["@Gkind"].Value=.ToString();
["@Gdanwei"].Value=.ToString();
["@Gprice"].Value=.ToString());
();
dd("@GID",);
alue=(lbl_id.Text.ToString());
();
temIndex;
BindGrid();
}
publicvoidDataGrid_Cancel(Objectsender,DataGridCommandEventArgsE)
{
=-1;
BindGrid();
}
publicvoidDataGrid_Update(Objectsender,DataGridCommandEventArgsE)
{
stringstrconn=["dsn"];
SqlConnectioncn=newSqlConnection(strconn);
();
SqlCommandcm=newSqlCommand("gzmodify",cn);
dd("@ID",);
.Add("@MAX",);
.Add("@MIN",);
alue=.ToString();
["@MAX"].Value=(((TextBox)[0]).Text.ToString());
["@MIN"].Value=(((TextBox)[0]).Text.ToString());
toredProcedure;
.Add("@UID",);
.Add("@UPassword",);
["@UID"].Value=.ToString();
["@UPassword"].Value=.ToString();
();
();
="密码修改成功,请返回后验证新密码";
}
else
{
="对不起,您输入的原密码不正确,请重新输入";
}
人员信息维护页面
人员信息维护页面是物资管理系统中的一个部分,主要负责所有人员信息的浏览,还可以根据用户编号来查找用户详细情况,还可以通过链接添加新的人员信息。
人员信息维护页面的后来支持类()主要代码如下:
privatevoidbtn_submit_Click(objectsender,e)
{
if)
{dd("@UID",;
.Add("@UPassword",;
.Add("@UName",;
.Add("@UTel",;
.Add("@UPower",);
alue=.ToString();
["@UPassword"].Value=.ToString();
["@UName"].Value=.ToString();
["@UTel"].Value=.ToString();
["@UPower"].Value=.Value;
();
toredProcedure;
.Add("@UID",);
["@UID"].Value=["uid"].ToString();
SqlDataReaderdr=();
if())oString();
=dr["名字"].ToString();
=dr["电话"].ToString();
"权限"].ToString());
}
else
{
("对不起,没有该用户信息");
();
}
}
privatevoidbtn_modify_Click(objectsender,e)
{
if)
{dd("@UID",;
.Add("@UName",;
.Add("@UTel",;
.Add("@UPower",);
alue=().Trim();
["@UName"].Value=.ToString();
["@UTel"].Value=.ToString();
["@UPower"].Value=.Value;
();
dd("@UID",);
alue=lbl_uid.Text.ToString();
();
oString());
stringstrconn=["dsn"];
oString());
="余额合计:
"+dr["sum"].ToString();
stringmysqll="select*from余额详单where物资编号='"+vargid+"'";
();
SqlDataAdapterdaa=newSqlDataAdapter(mysqll,cn);
oString()=="")Varwid=1;oString())+1;
lose();
dd("@WID",);
.Add("@WName",;
.Add("@WArea",);
.Add("@WAddress",;
["@WID"].Value=Varwid;
["@WName"].Value=.ToString();
["@WArea"].Value=.ToString());
["@WAddress"].Value=.ToString();
.Open();
();
dd("@UID",;
.Add("@UPassword",;
.Add("@UName",;
.Add("@UTel",;
.Add("@UPower",);
alue=.ToString();
["@UPassword"].Value=.ToString();
["@UName"].Value=.ToString();
["@UTel"].Value=.ToString();
["@UPower"].Value=.Value;
();
oString();
stringstrconn=["dsn"];
//连接本地计算机的物资管理数据库
SqlConnectioncn=newSqlConnection(strconn);
();
stringmysqll;
if)
{
mysqll="select*from入库记录where批号='"+vargid+"'";
}
else
{
mysqll="select*from出库记录where批号='"+vargid+"'";
}
SqlDataAdapterdaa=newSqlDataAdapter(mysqll,cn);
//创建并填充DataSet
DataSetdss=newDataSet();
(dss);
=false;
=dss;
();
();
}