《企业库存管理系统的设计与实现论文.docx》由会员分享,可在线阅读,更多相关《企业库存管理系统的设计与实现论文.docx(38页珍藏版)》请在三一办公上搜索。
1、企业库存管理系统的开发与实现企业库存管理系统的开发与实现综述当今时代,世界经济正在从工业经济向知识经济转变。我们说知识经济的两个重要特征就是信息化和全球化,要实现信息化和全球化,就必须依靠完善的网络和完善的数据库。在这样一个飞速发展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛应用于管理信息系统的环境。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系
2、统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好企业的库存信息而设计的。关键词:库存管理、出库、入库、C#目录引言2第1章 概述31.1 库存管理系统概述3第2章 开发环境42.1 硬件要求42.2 软件要求4第3章 系统分析53.1 可行性分析53.1.1系统实现后对组织机构、管理模式的影响53.1.2、可行性研究53.2 需求分析63.2.1 系统功能需求分析63.2.2 系统设计结构分析63.2.3 系统功能流程图设计9第4章 系统设计104.1 系统设计要求、目标及命名规则104.1.1 要求104.1.2 目标104.1.3 命名规则104.2 系统功能设计104.
3、2.1 系统具体功能104.3 数据库设计154.3.1 数据库概要结构设计154.3.2 数据库逻辑结构设计15第5章 系统的具体实施185.1 母版页185.1.1 母版页的优点185.1.2 母版页的使用185.1.3 本系统的母版页图5-1所示。195.2 各个模块的实现195.2.1管理员注册与登录模块195.2.2权限模块215.2.3 基本信息管理模块245.2.4库存管理模块285.2.5库存查询模块345.2.6用户模块375.2.7密码重置模块415.2.8安全退出系统模块43第6章 遇到的问题及解决办法44第7章 总结49致 谢49参考文献49引言当今时代,世界经济正在从
4、工业经济向知识经济转变。我们说知识经济的两个重要特征就是信息化和全球化,要实现信息化和全球化,就必须依靠完善的网络和完善的数据库。在这样一个飞速发展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛应用于管理信息系统的环境。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好企业的库存信息而设
5、计的。随着WTO的加入和我国工业的迅猛发展,为了抓住机遇,在竞争中占得先机,作为生产企业的一个必不可少的重要环节库存管理的信息化、计算机化也就迫在眉捷了。开发库存管理信息系统即有宏观上的意义,那就是顺应时代信息化、现代化潮流,提高效益,促进国民经济结构优化;也有微观上的意义,那就是可以提高管理的现代化程序,加强管理的信息化手段,提高工作效率,增加单位效益。 第1章 概述1.1库存管理系统概述(1) 描述库存管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立资料一致性和完整性强、资料安全性好的库。而对于后者则要求应用程序功能完备,易
6、使用等特点。随着科学技术的不断提高,计算机科学日渐成熟,强大的功能已为人们深刻认识,库存管理系统的开发的环境及条件越来越优越,同时功能也变得越来越强大。企业使用进销存管理系统即有宏观上的意义,那就是顺应时代信息化、现代化潮流,提高效益;也有微观上的意义,那就是可以提高管理的现代化程序,加强管理的信息化手段,提高工作效率。(2) 目的随着社会的进步和计算机的不断普及,各行各业的管理、控制都越来越离不开计算机的辅助。“库存管理系统”的开发就是为了辅助大多数企业的基本管理,实现信息管理的系统化、规范化和自动化。(3) 意义简化人们日常工作中的大量机械重复的操作,使一些过程繁琐且数据量大的工作得已高效
7、的进行,库存管理系统还可以通过对数据的有效控制,实现对工作流层的控制、协调,从而提高企业的竞争力。第2章 开发环境2.1最低硬件要求CPU: Intel Pentium() 2.0GHZ HDD:40GRAM:256M2.2软件要求操作系统:Windows XP/ Windows NT / Windows Vista /Windows 7。数据库:SQL Server 2000。开发工具:Microsoft Visaul Studio 2005。辅助开发工具:Photoshop CS2、Macromedia Dreamweaver 8。浏览器:IE8.0,推荐使用IE8.0。Web服务器:II
8、S6.0。分辨率:最佳效果1440900像素,最小分辨率:1024768像素。第3章 系统分析3.1 可行性分析3.1.1系统实现后对组织机构、管理模式的影响库存管理系统是基于先进的软件和高速、大容量的硬件基础上的新的库存管理模式,通过集中式的信息数据库,将企业的出库、入库等企业的经营业务有机的结合起来中,达到数据共享、降低成本、提高效率、改进服务等目的。同时还可以从以下几个方面来提高管理水平:提高管理效率降低人工成本降低采购成本及时调整营销策略减少仓储面积,提高房产综合利用降低储备资金占用加快资金周转实现的经济效益强化财务控制实现的经济效益商业数据智能分析高效决策3.1.2、可行性研究1开发
9、系统的必要性随着网络的普及和流行,通过互联网络进行经济活动不仅方便快速,而且经济实惠,还可以吸引更多的顾客,这也是商家看好的地方。从这一点足可以说明开发系统的必要性。2开发系统的技术可行性通过对公司业务流程各个环节的分析,确定出系统的管理结构。我开发小组人员利用现有的开发工具和开发技术完全可以在规定的时间内实现新系统的全部功能。3开发系统的法律可行性开发本系统是为了实现公司的高效管理,并实现对决策的支持。在开发的过程中完全自主开发,不会出现侵权问题。另外也会使用正版的软件来开发系统和运行系统。4组织管理上的可行性系统会使公司的管理更加科学化,也会更方便、高效,更人性化。同时也可以优化组织结构,
10、提高企业的竞争力。5社会条件上的可行性网络的普及,网络也越来越受到人们的喜爱,这也为系统实现后的运行提供了一个大的环境。3.2 需求分析3.2.1 系统功能需求分析库存管理系统是一个典型的数据库开发应用程序,由新用户注册及登录模块、基本信息管理模块、库存管理模块、库存查询模块等部分组成,规划系统功能模块如下:(1)新用户注册及登录模块该模块主要包括新用户注册、用户的登入与登出。(2)基本信息管理模块该模块主要包括商品类别管理、商品信息管理、客户信息管理、仓库信息管理。(3)库存管理模块该块主要包括入库单管理、出库单管理、库存预警模块。(4)库存查询模块该模块主要包括入库信息查询、出库信息查询、
11、出入库信息报表。(5)用户管理模块该模块主要包括添加新管理员帐号、审核已注册的管理员帐号、现有管理员帐号的编辑与删除。(4)密码重置模块已登录的管理员在此模块中可以修改账户密码。(4)安全登出模块该模清除已登录帐号的账户信息,确保系统安全。3.2.2 系统设计结构分析库存管理系统采用的是浏览器/服务器系统(Browser/Server简称B/S)结构。(1)B/S介绍BS结构,即BrowserServer(浏览器服务器)结构,就是只安装维护一个服务器(Server),而客户端采用浏览器(Browse)运行软件。它是随着Internet技术的兴起,对CS结构的一种变化和改进。主要利用了不断成熟的
12、WWW浏览器技术,结合多种Script语言(VBScript、JavaScript)和ActiveX技术,是一种全新的软件系统构造技术。BS三层体系结构采用三层浏览器服务器结构,在数据管理层(Server)和用户界面层(Client)增加了一层结构,称为中间件(Middleware),使整个体系结构成为三层。三层结构是伴随着中间件技术的成熟而兴起的,核心概念是利用中间件,将应用分为表示层、业务逻辑层和数据存储层三个不同的处理层次,如图2所示。三个层次的划分是从逻辑上分的,具体的物理分法可以有多种组合。中间件作为构造三层结构应用系统的基础平台,提供了以下主要功能:负责客户机与服务器、服务器与服务
13、器间的连接和通信;实现应用与数据库的高效连接;提供一个三层结构应用的开发、运行、部署和管理的平台。这种三层结构在层与层之间相互独立,任何一层的改变不会影响其它层的功能。图4-1 B/S三层体系结构在BS体系结构系统中,用户通过浏览器向分布在网络上的许多服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。而其余如数据请求、加工、结果返回以及动态网页生成、对数据库的访问和应用程序的执行等工作全部由Web Server完成。随着Windows将浏览器技术植入操作系统内部,这种结构已成为当今应用软件的首选体系结构。显然BS结构应用程序相对于传统的CS结构应用程序是一个非常大的进步
14、。采用该结构软件的优势在于:l 无须开发客户端软件,维护和升级方便;l 可跨平台操作,任何一台机器只要装有WWW浏览器软件,均可作为客户机来访问系统;l 具有良好的开放性和可扩充性;l 可采用防火墙技术来保证系统的安全性,有效地适应了当前用户对管理信息系统的新需求。因此该结构在管理信息系统开发领域中获得飞速发展,成为应用软件研制中一种流行的体系结构。(2)B/S相对于C/S的优势由于传统的客户服务器两层结构存在灵活性差、升级困难、维护工作量大等缺陷,已较难适应当前信息技术与网络技术发展的需要。而Browse/Server(简称B/S)结构已成为取代Client/Server(简称C/S)结构的
15、一种全新技术。它的主要优势有:a.维护和升级方式简单。比如说很多人每天上“新浪”网,只要安装了浏览器就可以了,并不需要了解“新浪”的服务器用的是什么操作系统,而事实上大部分网站确实没有使用windows操作系统,但用户的电脑本身安装的大部分是windows操作系统。c.应用服务器运行数据负荷较重。由于B/S架构管理软件只安装在服务器端(Server)上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。但是,应用服务器运行数据负荷较重,一
16、旦发生服务器“崩溃”等问题,后果不堪设想。因此,许多单位都备有数据库存储服务器,以防万一。(3)客户/服务器体系结构的综合特点BS结构的主要特点是分布性强、维护方便、开发简单且共享性强、总体拥有成本低。但数据安全性问题、对服务器要求过高、数据传输速度慢、软件的个性化特点明显降低,这些缺点是有目共睹的,难以实现传统模式下的特殊功能要求。例如通过浏览器进行大量的数据输入或进行报表的应答、专用性打印输出都比较困难和不便。此外,实现复杂的应用构造有较大的困难。虽然可以用ActiveX、Java等技术开发较为复杂的应用,但是相对于发展已非常成熟CS的一系列应用工具来说,这些技术的开发复杂,并没有完全成熟
17、的技术工具供使用。3.2.3 系统功能流程图设计根据上述系统功能的需求分析,按照结构化程序设计的要求,得到如下所示的系统功能模块图,如图3-1企业库存管理系统 库存管理库存查询用户管理修改密码基本信息管理安全退出注册与登录模块 图3-1 系统功能结构图第4章 系统设计4.1 系统设计要求、目标及命名规则4.1.1 要求(1)由于操作人员的计算机知识普遍较差,要求有良好的人机界面。(2)由于该系统的使用对象多,要求有较好的权限管理。(3)方便的数据查询。(4)基础信息管理(包括商品信息、客户信息、仓库信息等)。(5)通过计算机,能够直接“透视”仓库存储情况。(6)数据计算自动完成,尽量减少人工干
18、预。(7)系统退出。4.1.2 目标(1)系统采用人机对话方式,界面美观友好、信息查询灵活、方便、快捷、准确、数据存储安全可靠。(2)键盘操作,快速响应。(3)实现模糊查询等。(4)管理员等级不同权限不同。(5)对用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误。(6)系统最大限度地实现了易安装性、易维护性和易操作性。(7)系统运行稳定、安全可靠。4.1.3 命名规则 (1)数据库命名规则数据库中表命名规则是表名称各个英文单词前加前缀“X_”,表中字段命名与表相同。4.2 系统功能设计4.2.1 系统具体功能(1)注册及登录模块图4-1(1)所示:注册模块图4-1(1)登录模块及注
19、册入口图4-1(2) (2)超级管理员登录后界面:图4-2所示:图4-2 (3) 普通管理员登陆后界面:结构图4-3所示:图4-3(4) 基本信息管理图4-4所示:图4-4商品类别管理:添加新的商品类别名称,修改删除已添加的商品类别;商品信息管理:添加新的商品信息,修改删除已添加的商品信息;客户信息管理:添加新的客户信息,修改删除已添加的客户信息;仓库信息管理:添加新的仓库信息,修改删除已添加的仓库信息; (5) 库存管理图4-5所示:图4-5入库单管理:添加新的入库单,编辑删除已有的入库单;出库单管理:添加新的出库单,编辑删除已有的出库单;库存报警:输出数量少于警戒线的商品;(6) 库存查询
20、图4-6所示:图4-6(6) 用户管理图4-7所示:图4-7(7) 修改密码图4-8所示:图4-84.3 数据库设计本系统数据库采用SQL Server 2000数据库,系统数据库名称为zd_kucun。数据库zd_kucun中包含27张表,其中系统自动生成表20张,自定义表7张。4.3.1 数据库概要结构设计(1)管理员表,包括的数据项有:编号、帐号、密码、状态、权限。(2)仓库信息表,包括的数据项有:编号、仓库名称。(3)商品信息表,包括的数据项有:编号、商品名称、商品类别编号、销售价、成本价。(4)商品类别信息表,包括的数据项有:编号、类别名称。(5)客户信息表,包括的数据项有:编号、客
21、户名称、性别、固话、手机、地址。(6)出入库单据表,包括的数据项有:编号、负责人、办理日期、仓库编号、单据类型。(7)出入库商品表,包括的数据项有:编号、商品名称、销售价、成本价、数量、商品类别。4.3.2 数据库逻辑结构设计根据上述数据库的需求分析和概念结构设计,设计了名称为zd_kucun的数据库。数据库zd_kucun由下面多个表格组成,各个表的命名及字段命名都是以相应名称的拼音首字母组合而成,各个表格的设计结果如下表格所示,每个表格表示在数据库中相对应的一个表。图4-8 客户信息表图4-9 仓库信息表图4-10 商品信息表图4-11 出入库商品信息表图4-12商品类别信息表图4-13出
22、入库单据信息表图4-14管理员信息表第5章 系统的具体实施5.1 母版页5.1.1 母版页的优点母版页系统易于供设计人员使用,因为它基于 ASP.NET 的熟悉的用户控件模型。尽管最终加入了近乎完整的可视化,却不需要编写任何代码。另一方面,母版页的功能强大,因为它们支持多区域、默认内容、嵌套模板、和设备筛选器(用于浏览器依赖性)。母版页也是完全编译的,从而具有最佳性能,同时提供一种强类型编程模型(其中包括母版属性的设计时 IntelliSense),尽管在最后发行之前可能会作一些折衷,以便更好地支持动态母版。5.1.2 母版页的使用.模板页扩展名为Master,内容页引用模板页的方法: .动态
23、改变内容页所引用的模板页通常在Init事件下改变:protected void Page_PreInit(object sender,EventArgs e)this.MasterPageFile=/ABC.master;.在内容页中使用模板页中的控件Master:内容页:Label lb = (Label)Master.FindControl(LabDemo);/直接在Master中找LabDemoif (lb != null) Response.Write(alert( + lb.Text.ToString() + ); 当控件在Master中的ContentPlaceHolder里的话则
24、需要:ContentPlaceHoldera= (ContentPlaceHolder)Master.FindControl(Content2);/先找到ContentPlaceHolder的ID if(a!= null) TextBox Txt=(TextBox)a.FindControl(TxtDemo); if(Txt != null) Response.write(Txt.text.ToString(); .在内容页中使用模板页中的变量,属性,方法首先在内容页加上:模板页中的变量必须为:Public string WebTitle=welocome to .; /并放在模板页类下定义并
25、初始化.就可以在内容页中:Master.WebTitle进行引用.但如果此变量在网页加载的时候改变了,引用的值还为定义时初始化的值.因为加加载模板页到内容页的事件先后为:(1)母版页-Init(2)内容页-Init(3)内容页-Load(4)母版页-Load(5)内容页-PreRender(6)母版页-PreRender所以,要改变变量的值应放在:母版页中的Init事件中,放在Load事件中是不行的。例: protected void Page_Init(object sender, EventArgs e) if (!IsPostBack) WebConfigSelect();/此方法对变量
26、进行了初始化或者改变! 5.1.3 本系统的母版页提供统一的登录安全验证。代码如下:public partial class System_MasterPage : System.Web.UI.MasterPage protected void Page_Load(object sender, EventArgs e) if (Request.Cookiesxzfkucun = null) Response.Redirect(ManagerThisWay.aspx); 5.2 各个模块的实现5.2.1管理员注册与登录模块进入系统前首先进入登录这个界面,当用户登录成功后,方可以进行相应操作,流程
27、图5-1,截图5-2所示。登录的主要代码: protected void ImageButton1_Click(object sender, ImageClickEventArgs e) string user = Common.UrnHtml(txt_user.Text.Trim(); string pwd = FormsAuthentication.HashPasswordForStoringInConfigFile(txt_pwd.Text, SHA1); string sql = select * from X_Manager where X_Manager_User= + user
28、+ and X_Manager_Pwd= + pwd + ; SqlDataReader dr = DB.getDataReader(sql); if (AuthCode1.IsMatch) if (dr.Read() if (drX_Manager_State.ToString() = 正常) HttpCookie cookies; cookies = new HttpCookie(xzfkucun); cookies.Values.Add(Manager, HttpUtility.UrlEncode(this.txt_user.Text.Trim(); cookies.Values.Add
29、(X_Power, HttpUtility.UrlEncode(drX_Manager_Power.ToString(); cookies.Expires = DateTime.Now.AddHours(24);/1天有效24小时 Response.Cookies.Set(cookies);/存储! dr.Close(); dr.Dispose(); Response.Redirect(MainFrame.aspx); else dr.Close(); dr.Dispose(); Common.ShowMessage(Page, 您的帐号还未开通,或已禁用!, ); else dr.Close
30、(); dr.Dispose(); Common.ShowMessage(Page, 登陆失败,请检查用户名及密码是否正确!, ); else dr.Close(); dr.Dispose(); Common.ShowMessage(Page, 验证码错误, ); 登录流程图5-1图5-2 登录(ManagerThisWay.aspx)5.2.2权限模块主界面可以依据不同的权限进入相应的界面进行相关操作,主界面图5-3所示。主界面涉及权限的部分代码: #region 初始化页面 public string py = ; protected void Page_Load(object sende
31、r, EventArgs e) if (!IsPostBack) if (Request.Cookiesxzfkucun != null) if (Request.CookiesxzfkucunManager != null) Label1.Text = HttpUtility.UrlEncode(Request.CookiesxzfkucunManager.ToString(); if (Request.CookiesxzfkucunX_Power.ToString() = Administrator) py = ; else py = none; else Response.Redirec
32、t(managerthisway.aspx); else Response.Redirect(managerthisway.aspx); #endregion超级管理员登录后进入 图5-3普通管理员登录后进入 图5-45.2.3 基本信息管理模块进入这个界面后,可以在左侧的导航栏点击相应栏目进行相关操作;部分代码与截图: public static string sqltxt = select * from X_Goods_Sort order by X_Goods_Sort_ID desc; public static string cmdtxt2 = select count(*) fro
33、m X_Goods_Sort; protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) Get_Pager_Data();/绑定列表数据 void Get_Pager_Data() SqlConnection cn = DB.OpenConnection(); SqlCommand cmd0 = new SqlCommand(cmdtxt2, cn); AspNetPager1.AlwaysShow = true; AspNetPager1.PageSize = 14; AspNetPager1.RecordC
34、ount = (int)cmd0.ExecuteScalar(); cn.Close(); Get_Data(); protected void AspNetPager1_PageChanging(object src, Wuqi.Webdiyer.PageChangingEventArgs e) AspNetPager1.CurrentPageIndex = e.NewPageIndex; Get_Data(); void Get_Data()/绑定数据 SqlConnection cn=DB.OpenConnection(); SqlCommand cmd=new SqlCommand (
35、sqltxt,cn); SqlDataAdapter da = new SqlDataAdapter(cmd); DataSet ds = new DataSet(); da.Fill(ds, AspNetPager1.PageSize * (AspNetPager1.CurrentPageIndex - 1), AspNetPager1.PageSize, X_Goods_Sort); DataView dv = ds.TablesX_Goods_Sort.DefaultView; this.Repeater1.DataSource = dv; this.Repeater1.DataBind
36、(); protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e) if (e.CommandName = del) if (DB.ExecuteSql(delete from X_Goods where X_Goods_Sort_ID= + e.CommandArgument.ToString() = 0 & DB.ExecuteSql(delete from X_Goods_Sort where X_Goods_Sort_ID= + e.CommandArgument.ToString()
37、= 0) Get_Pager_Data(); Common.ShowMessage(Page, 删除成功!, ); else Common.ShowMessage(Page, 删除失败!, ); protected void CheckBox1_CheckedChanged(object sender, EventArgs e)/全选操作 if (CheckBox1.Checked) for (int i = 0; i Repeater1.Items.Count; i+) CheckBox chk = (CheckBox)Repeater1.Itemsi.FindControl(CheckBox2); if (chk != null)