当前位置:文档之家› 商场进销存管理系统设计

商场进销存管理系统设计

目录一、引言 (1)二、系统分析 (1)(一)需求分析 (1)(二)系统功能分析 (2)(三)注意业务流程分析 (3)三、系统设计 (4)(一)系统总体结构设计 (4)(二)数据库设计 (6)(三)系统架构设计 (12)四、系统实现 (13)(一)进销存管理模块设计 (13)(二)系统管理模块设计 (18)五、总结 (23)参考文献 (24)基于的商场进销存管理系统设计摘要:商场进销存管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。

对于前者要求建立起数据一致性和完整性强、数据安全性好的库。

而对于后者则要求应用程序功能完备,易使用等特点。

在这个软件中我们使用Microsoft Visual Studio 2008开发工具,利用其提供的各种面向对象的开发工具来建立系统。

本系统主要完成对商场进销存的管理,包括进货管理,销售管理,库存管理和基础管理四个方面。

系统可以完成对各类信息的浏览、查询、添加、删除、修改等功能。

此论文主要介绍了本课题的开发背景,所要完成的功能和开发的过程,重点的说明了系统设计的思想以及主要功能。

关键词:进销存管理系统;进货;销售;库存一、引言经济大环境的变化使得规模经济的优势不再突出。

固定的硬设备、人员数量、大量资金等资源投入占企业效益的比重变少,而软投入如管理、人力资源价值、服务、品牌附加值、渠道却能增加企业的效益。

“速度冲击规模”的速度经济概念已经向企业提出。

那么对于日益发展壮大的企业集团,怎样才能找到一套功能强大、可任意拓展、低运行成本、安全可靠的管理解决方案,来跟上企业的发展,跟上时代的发展呢?我们认为最好的办法是利用Internet这个工具,架构自己的供需链管理平台,使无处不在的互联网为你所用,实现无处不在的管理目标。

让Internet像电一样融入到企业的管理之中,提高企业在新经济时代的核心竞争力,通过对Internet的高效率使用,在激烈的市场竞争中,首先打赢第一仗“信息战”。

正是基于对Internet的这种深刻认识,针对中国企业特点提出了基于Internet的网络商务管理解决方案——进销存管理系统。

总之,本网站将以VS2008和SQL2008技术为基础,商场管理的进货、销货、存货、用户管理、商场后台管理等一系列的功能,力争成为进销存的理想软件。

二、系统分析(一)需求分析1.需求分析随着科学技术的不断提高,计算机科学日渐成熟, 信息技术与应用环境分离已不再可能,利用计算机实现商场进销存管理已经越来越广泛。

商场使用进销存管理系统即有宏观上的意义,那就是顺应时代信息化、现代化潮流,提高效益;也有微观上的意义,那就是可以提高管理的现代化程序,加强管理的信息化手段,提高工作效率,从简单的数据统计、收集、汇总等重要繁琐的事务中解脱出来。

一个企业要生存要发展,具备一套与自身实际情况相适应的管理系统是必要的,本系统正是通过对某商场实际需求进行分析,采用.NET语言作为开发工具而开发出来的单机版的商场管理系统。

根据市场的需求,要求系统具有以下功能:(1)系统操作简单,界面友好。

(2)规范、完善的基础信息设置。

支持多人操作,要求有较好的权限分配功能。

(3)能够查看商场内部管理的基本信息并可添加、修改以及删除信息。

(4)能够实现对进货、存货、销货的管理。

2.可行性分析商场人员只要使用一台可以访问Internet的电脑就可以登录到系统中进行操作,无需客户端软件支持。

本网上书店采用.NET技术为基础进行设计开发。

首先,由于.NET技术的平台无关性,决定了本系统的强大的可移植性,这样可以不对操作人员作过多的限制。

鉴于我们已经学过Visual Studio 2008,熟悉其中的一些最基本的功能设计及编写.NET代码的基本操作。

在技术上,.NET作为微软公司的知名产品,经过多年的考验已经非常成熟,使用它作为技术基础对本系统来说没有任何问题。

在应用服务器的选择上,SQL Server 2008 数据库的基本运用我们也已经掌握。

而且反应速度快、运行稳定可靠、使用简单。

此外,它还是一款免费的软件,所以在很大程度上降低了成本。

使用它来部署本系统,是一个理想的选择。

(二)系统功能分析1.系统功能分析基本功能需求此商场进销存管理系统是一个典型的数据库开发应用程序,由基础信息管理模块、进货信息管理模块、销售信息管理模块、库存信息管理模块等部分组成,规划系统功能模块如下:(1)基础信息管理模块:该模块主要包括切换用户、权限信息设置、业务员信息设置、客户信息设置、供应商信息设置、商品信息设置、仓库信息设置、角色信息设置、会员类别信息设置、产品类别信息设置。

(2)进货信息管理模块:该模块主要包括进货信息查询、进货订单录入和修改、进货单录入和修改、订货单打印。

(3)销售信息管理模块:该块主要包括销售信息查询、销售订单录入和修改、销售单录入和修改、销售单打印。

(4)库存信息销售模块:该模块主要包括库存信息查询、库存信息的设置、进货订单的校验、销售订单的校验、库存单打印。

商场进销存系统用例图如图2-1所示:图2-1 系统用例图(三)注意业务流程分析1.业务流程分析根据进销存管理系统基本功能的分析,我们可以将系统分为:基本信息模块、存货管理模块、销售管理模块、进货管理模块等等。

如此要将系统的管理权限分为:管理员与用户。

作为管理员,他们对图书馆管理系统的要求有:(1)适当的分配权限。

(2)能够对用户进行增删改查。

作为用户,他们对系统的要求有:(1)能够对进货、销货、存货数据进行管理,对主要字段进行修改。

(2)能够查询基本信息,并对其进行增删改查。

2.主要业务流程活动图,如图2-2所示:图2-2 活动图三、系统设计(一)系统总体结构设计1.项目规划商场进销存管理系统是一款对商场进行一体化管理的系统。

我们对商场进销存管理系统的系统分析,总结出系统功能包括基础信息管理模块、进货信息管理模块、销售信息管理模块、库存信息销售模块。

其规划功能模块如下:(1)基础信息管理模块该模块主要包括切换用户、权限信息设置、业务员信息设置、客户信息设置、供应商信息设置、商品信息设置、仓库信息设置、角色信息设置、会员类别信息设置、产品类别信息设置。

(2)进货信息管理模块该模块主要包括进货信息查询、进货订单录入和修改、进货单录入和修改。

(3)销售信息管理模块该块主要包括销售信息查询、销售订单录入和修改、销售单录入和修改。

(4)库存信息销售模块该模块主要包括库存信息查询、库存信息的设置、进货订单的校验、销售订单的校验。

2.系统功能结构系统总结构图,如图3-1所示:图3-1 系统总结构图3.系统模块图登录模块:登录者的身份有管理员和用户,如图3-2所示:图3-2 系统模块图系统管理模块:分为管理员与用户;管理员拥有所有系统管理的权限,用户根据拥有其管理功能。

如图3-3、图3-4所示:图3-3 用户系统管理模块图图3-4 管理员系统管理模块图(二)数据库设计1.E-R图概念结构设计E-R图,如图3-5所示:图3-5 程序主体E-R 图2.数据库模型数据库模型图,如图3-6所示:图3-6 数据库模型图3.数据字典本系统采用的是 SQL Server 2008的数据库,系统数据库名为JXC. (1)仓库信息表,表名:ck,如表3-1所示:表3-1仓库信息表(2)商品类别表,表名:cplbb,如表3-2所示:表3-2 商品类别表(3)供应商信息表,表名:gys,如表3-3所示:表3-3 供应商信息表(续上表3-3)(4)会员类别表,表名:hylb,如表3-4所示:表 3-4 会员类别表(5)进货信息表,表名:jhd,如表3-5所示:表3-5 进货信息表(6)进货订单信息表,表名:jhdd,如表3-6所示:表3-6 进货订单信息表(7)角色信息表,表名:js,如表3-7所示:表3-7 角色信息表(8)角色权限信息表,表名:js-qx,如表3-8所示:表3-8 角色权限信息表(9)库存信息表,表名:kc,如表3-9所示:表3-9 库存信息表(10)客户信息表,表名:kh,如表3-10所示:表3-10 客户信息表(11)库存信息表,表名:qx,如表3-11所示:表3-11 库存信息表(12)商品信息表,表名:sp,如表3-12所示:表3-12 商品信息表(13)销售信息表,表名:xsd,如表3-13所示:表3-13 商品信息表(续表3-13)(14)销售订单信息表,表名:xsdd,如表3-14所示:表3-14 销售订单信息表(15)业务员信息表,表名:ywy,如表3-15所示:表3-15 业务员信息表(三)系统架构设计1.系统登陆的设计(1)登陆页面的设计,界面如图3-7所示:图3-7 登陆页面(2)登录情况介绍从列表框里输入用户名,此列表框内的用户直接与数据库里用户表相关联。

再从相应的列表框里输入密码。

判断该密码与工作人员表中定义的密码是否相符。

如果不正确,提示输入错误的信息。

如果正确,用户登录,进入可操作界面。

2.系统主界面设计(1)管理员系统主界面设计,界面如图3-8所示:图3-8 系统主界面(2) 系统主体功能简要介绍采购管理模块:采购信息的增删改查。

销售管理模块:销售信息的增删改查。

仓库管理模块:仓库信息的增删改查。

系统管理模块:基本信息的增删改查、权限的分配等。

四、系统实现本系统有如下主要功能模块设计:(一)进销存管理模块设计1.进货单查询在这个页面可以根据不同的条件查询查找存在的数据,并且可以根据表头进行排序,进货单查询图4-1所示:图4-1 进货单查询进货单查询代码:public static IList<Jhd> getJhdsByCondition(string condition1,string condition2){ IList<Jhd> jhds = new List<Jhd>();try{string sql = "select jhrq,ywy,jhdbh,jhddbh,gysbh,ckbh,spbh,sl,dj,zk,zje,sfjsfk,sfjz,yfje,jhdbz from jhd where 1=1";if (condition1 != "-1" && condition2 != null)sql += " and " + condition1 + " like '%" + condition2 + "%'";using (SqlDataReader reader = DBHelper.GetReader(sql)){while (reader.Read()){Jhd jhd = new Jhd();jhds.Add(jhd);}}}catch (Exception ex){throw new Exception(ex.ToString());}return jhds;}}2.销售订单校验在这个页面可以对销售订单进行校验,随意更改一项、多项或全部状态(销售订单的四种状态的三种,分别是未确认、确认、退货),销售单校验图4-2所示:图4-2 销售单校验销售订单校验的部分代码://绑定销售订单public void xsddDataBind() {gvXsddjy.DataSource = XsddManager.getAllXsdd("","3");gvXsddjy.DataBind();}//修改事件protected void btnxg_Click(object sender, EventArgs e){if(ddlzt.SelectedValue == "-1"){lblmassage.Text = "请选择修改后的状态!";}else{string xsddbhs = string.Empty;for (int i = 0; i < gvXsddjy.Rows.Count;i++ )//遍历所有行{CheckBox ckb = (gvXsddjy.Rows[i].FindControl("ckbzt")) as CheckBox;if(ckb.Checked == true){//如果选中xsddbhs += (gvXsddjy.Rows[i].FindControl("lblxsddbh") as Label).Text + ",";//把选中项的编号累加到字符串中}}if (xsddbhs.Length > 0){xsddbhs = xsddbhs.Substring(0, xsddbhs.Length - 1);//去掉末尾的逗号string zt = ddlzt.SelectedValue;//XsddManager.modifyZtByDdbh(zt, xsddbhs);//xsddDataBind();//lblmassage.Text = "成功修改选中项的状态!";}else {lblmassage.Text = "请选择要修改的项!";}}}3.库存信息设置在这个页面可以对库存信息进行相关操作,库存信息设置如图4-3所示:图4-3 库存信息设置库存信息设置代码:protected void gvJhdd_RowCommand(object sender, GridViewCommandEventArgs e){string jhddbh = Convert.ToString(mandArgument);if(jhddbh!=null && jhddbh!=""){Jhdd jhdd = new Jhdd();jhdd = JhddManager.getJhddByJhddbh(jhddbh);if(jhdd!=null){Kc kc = new Kc();kc = KcManager.existsKcBySpbh(jhdd.Spbh);if(kc.Kcbh!=null){txtbgxrqgx.Text = kc.Gxrq;txtbkcbhgx.Text = Convert.ToString(kc.Kcbh);Kcbh = Convert.ToString(kc.Kcbh);if(kc.Ckbh!=null && kc.Ckbh!=""){ddlckbhgx.SelectedItem.Selected = false;ddlckbhgx.Items.FindByValue(kc.Ckbh).Selected= true;}if(kc.Spbh != 0){ddlspbhgx.SelectedItem.Selected = false;ddlspbhgx.Items.FindByValue(Convert.ToString(kc.Spbh)).Selected = true;}txtbslgx.Text = Convert.ToString(kc.Sl+jhdd.Sl);txtbzjegx.Text = Convert.ToString(kc.Zje+jhdd.Zje);ddlqhjggx.SelectedItem.Selected = false;ddlqhjggx.Items.FindByValue(Convert.ToString(kc.Qhjg)).Selected = true;txtbbzgx.Text = kc.Kcbz;jhdd.Zt = 1;JhddManager.modifyJhdd(jhdd);jhddDataBind();lblmassagegx.Text = "请点击更新!";}else{txtbsltj.Text = Convert.ToString(jhdd.Sl);txtbzjetj.Text = Convert.ToString(jhdd.Zje);ddlspbhtj.SelectedItem.Selected = false;ddlspbhtj.Items.FindByValue(Convert.ToString(jhdd.Spbh)).Selected = true;jhdd.Zt = 1;JhddManager.modifyJhdd(jhdd);jhddDataBind();lblmassagetj.Text = "请点击添加!";}}else{lblmassagegx.Text = "请点击入库!";}}else{lblmassagegx.Text = "请点击入库!";}}}(二)系统管理模块设计1.登陆及切换用户首先进入登录界面,当用户登录成功后,可以利用此界面进行权限切换截,如图4-4所示:图4-4 登陆界面登录的主要代码:public void dlDataBind(){ddlsf.DataSource = JsManager.getAllJs();ddlsf.DataBind();ListItem item = new ListItem("请选择……", "-1", true); ddlsf.Items.Insert(0, item);}protected void btndl_Click1(object sender, EventArgs e){if (ddlsf.SelectedValue == "-1")lblmassage.Text = "请选择身份!";//51aspxelse if(txtbuser.Text == null || txtbuser.Text == "")lblmassage.Text = "请填写用户名!";else if (txtbpwd.Text == null || txtbpwd.Text == "")lblmassage.Text = "请填写密码!";else {lblmassage.Text = "";Ywy ywy = YwyManager.getYwyByCoditions(txtbuser.Text,txtbpwd.Text,Convert.ToInt32(ddlsf.SelectedValue));if(ywy!=null && ywy.Ywymc!=null){Session.Add("ywy", ywy);Response.Redirect("/JXC/Default.aspx", true); }else{lblmassage.Text = "登录失败!";}}2.权限设置进入这个界面后,就可以对权限进行相关操作,权限设置图4-5所示:图4-5 权限设置权限设置部分代码:public int Qxbh{get {if (ViewState["Qxbh"] != null)return (int)ViewState["Qxbh"];elsereturn -1;}set { ViewState["Qxbh"] = value; }}public void qxDataBind() {gvQx.DataSource = QxManager.getAllQx();gvQx.DataBind();}protected void gvQx_RowDataBound(object sender, GridViewRowEventArgs e) {if (e.Row.RowType == DataControlRowType.DataRow)//判断事件行是不是数据行{e.Row.Attributes.Add("onmouseover","currentcolor=this.style.backgroundColor;this.style.backgroundColor='#CCFF99'");e.Row.Attributes.Add("onmouseout","this.style.backgroundColor=currentcolor");LinkButton lbtnDelete = (LinkButton)e.Row.FindControl("lbtnDelete");lbtnDelete.Attributes.Add("onclick", "return confirm('你确定删除吗?')");}}protected void gvQx_PageIndexChanging(object sender, GridViewPageEventArgs e){gvQx.PageIndex = e.NewPageIndex;qxDataBind();}protected void gvQx_RowCommand(object sender, GridViewCommandEventArgs e) {Qxbh = Convert.ToInt32(mandArgument);if(mandName == "De"){QxManager.deleteQxByQxbh(Qxbh);}if(mandName == "Ed"){Qx qx = QxManager.getQxByQxbh(Qxbh);this.txtbqxmcgx.Text = qx.Qxmc;this.txtbqxurlgx.Text = qx.Qxurl;this.txtbbzgx.Text = qx.Qxbz;//lbltjmassage.Text = "eeee"+Qxbh;}qxDataBind();}protected void btngx_Click(object sender, EventArgs e) {Qx qx = new Qx();if (this.Qxbh == -1){lblgxmassage.Text = "请选择编辑项!";}else{qx.Qxbh = this.Qxbh;qx.Qxmc = txtbqxmcgx.Text;qx.Qxurl = txtbqxurlgx.Text;qx.Qxbz = txtbbzgx.Text;lblgxmassage.Text = QxManager.modifyQx(qx);qxDataBind();cleanGX();}}protected void btntj_Click(object sender, EventArgs e){Qx qx = new Qx();if (txtbqxmctj.Text == null || txtbqxmctj.Text == ""){lbltjmassage.Text = "请填写用户名!";}else{qx.Qxmc = txtbqxmctj.Text;qx.Qxurl = txtbqxurltj.Text;qx.Qxbz = txtbbztj.Text;lbltjmassage.Text = QxManager.addQx(qx);qxDataBind();cleanTJ();}五、总结通过对数据库以及的学习,我了解了前台与后台的关联,以及前台与数据库的连接方法,进一步了解了三层架构各层之间的连接关系,同时学会了数据绑定等知识。

相关主题