1、 本科毕业论文(设计)企业进销存管理系统学 院: 信息学院 专 业:计算机科学与技术班 级: 计算机 学 号: 学生姓名: &n
2、bsp; 指导教师: 摘要【摘要】中小企业在我国经济发展中具有重要地位,目前我国的中小企业数量多,地区分布广泛,行业分布跨度大。随着全球经济一体化的发展和电子商务的兴起,中小企业之间的竞争将越来越激烈。网络及电子商务的迅猛发展突破了时间、空间的局限性,给中小企业带来了更多的发展机会,同时也增大了企业之间的竞争强度。这就要求中小企业必须改变企业的经营管理模式,提高企业的运营效率。目前,我国中小企业的信息化水平还很低,相比国外企业,还只处于刚开始始用的阶段。随着技术发展,电脑操作及管理日趋简化,电脑知识日趋普及,同
3、时市场经济快速多变,竞争激烈,企业采用电脑管理进货、库存、销售等诸多环节也已成为趋势及必然。【关键词】进销存管理系统、商品销售、商品管理第 页 目录摘要 .10 引言 .11 系统分析 .21.1 需求分析 .21.2 可行性分析 .22 总体设计 .22.1 项目规划 .22.2 系统功能结构图 .33 系统设计 .33.1 设计目标 .33.2 开发及运行环境 .43.3 编码设计 .43.4 逻辑结构设计 .44 网站总体架构 .55 用户登录模块设计 .76 网站首页设计 .107 基础信息主要功能模块详细设计 .127.1 商品信息管理设计 .127.2 商品信息查询设计
4、 .148 采购管理主要功能模块详细设计 .178.1 商品采购管理设计 .178.2 采购查询设计 .199 系统设置主要功能模块详细设计 .269.1 删除操作员设计 .27附录 A 参考文献 .附录 B 数据表 附录 C 文件架构图 0 引言经济大环境的变化使得规模经济的优势不再突出。固定的硬设备、人员数量、大量资金等资源投入占企业效益的比重变少,而软投入如管理、人力资源价值、服务、品牌附加值、渠道等要素资源的投入却能增加企业的效益。 “速度冲击规模”的速度经济概念已经向企业提出。 那么对于日益发展壮大的企业集团,怎样才能找到一套功能强大可任意拓展、低运行成本、安全可靠的管理解决方案,来
5、跟上企业的发展,跟上时代的发展呢? 我们认为最好的办法是利用 Internet 这个工具,架构自己的供需链管理平台,使无处不在的互联网为你所用,实现无处不在的管理目标。让 Internet 像电一样融入到企业的管理之中,提高企业在新经济时代的核心竞争力,通过对 Internet 的高效率使用,在激烈的市场竞争中,首先打赢第一仗“信息战” 。正是基于对 Internet的这种深刻认识,针对中国企业特点提出了基于 Internet 的网络商务管理解决方案企业进销存管理系统。 1 系统分析1.1 需求分析通过调查,要求系统需要具有以下功能: 由于操作人员的计算机知识普遍较差,要求有良好的人机界面。
6、由于该系统的使用对象多,要求有较好的权限管理。 方便的数据查询,支持多条件查询。 基础信息管理与查询(包括商品信息、客户信息、供应商信息) 。 通过计算机,能够直接“透视”仓库存储情况。 完善的商品采购信息、商品销售信息进行管理。 方便、健全的结账功能。 图表分析年销售状况。 商品销售排行统计。 当外界环境(停电、网络病毒)干扰本系统时,系统可以自动保护原始数据的安全。 数据计算自动完成,尽量减少人工干预。 系统退出。1.2 可行性分析通过计算机网络系统对企业进行全面的管理,满足了企业的现代化管理的要求。 经济性企业营运过程中信息的系统化管理,权威的数据统计,为企业的经营决策提供了大量的、权威
7、的科学依据(数据) ;强大的账单结功能,简化了员工的日常工作,提高了工作效率,避免了人工管理过程中数据易错所带来的一系列的连锁反映,提高企业的经济效益。 技术性实际情况下,在高系统配置、高网络带宽服务,各个级别管理员很容易通过网站对其操作范围内的系统内容信息进行操作管理,完全满足日常经营、管理的要求。2 总体设计2.1 项目规划企业进销存管理系统是一个典型的数据库开发应用程序,由基础信息模块、采第 3 页购管理模块、库存管理模块、商品销售模块、查询统计模块、往来管理模块、系统设置模块等部分组成,规划系统功能模块如下: 基础信息模块该模块主要管理商品信息录入、客户信息录入、供应商信息录入、商品信
8、息查询、客户信息查询、供应商信息查询。 采购管理模块该模块的主要管理商品采购信息录入和商品采购信息查询。 库存管理模块该块主要管理商品入库信息、商品入库退货、商品库存查询和库存商品价格调整。 商品销售模块该模块主要管理商品销售信息录入和商品销售退货信息录入。 查询统计模块该模块主要管理销售信息查询、销售退货查询、商品入库查询、入库退货查询、商品销售排行和年销售额分析。 往来管理模块该模块主要管理商品销售结账、入库退货结账、销售结账查询、商品入库结账、销售退货结账和入库结账查询。 系统设置模块该模块主要管理添加操作员、更改操作员密码、删除操作员。2.2 系统功能结构图企业进销存管理系统功能结构如
9、图 1 所示。图 1 系统功能结构图3 系统设计3.1 设计目标本系统是针对中小型企业运营进销存过程所进行设计的,主要实现如下目标: 系统采用人机对话方式,界面美观友好、信息查询灵活、方便、快捷、准确、数据存储安全可靠。 键盘操作,快速响应。 强大的销售结账功能。 全面的账单查询功能。 功能强大的年销售额分析图、商品销售排行统计。 实现各种查询,如多条件查询、模糊查询等。 操作员可以随时修改自己的口令。 管理员可以设置操作员的权限 对用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误。 数据保密性强,为每个用户设置权限级别。 系统最大限度地实现了易安装性、易维护性和易操作性。 系统运
10、行稳定、安全可靠。3.2 开发及运行环境硬件平台: CPU:P41.8GHz。 内存:256MB 以上。软件平台: 操作系统:Windows XP/ Windows 2000。 数据库:SQL Server 2000 。 浏览器:IE5.0,推荐使用 IE6.0。 Web 服务器:IIS5.0。 分辨率:最佳效果 1024768 像素。3.3 编码设计编码设计是数据库系统开发的前提条件,是系统不可缺少的重要内容。编码是指与原来名称对应的编号、符号或记号。它是进行信息交换、处理、传输和实现信息资源共享的关键。编码也用于指定数据的处理方法、区别数据类型,并指定计算机处理的内容等。本系统内部信息编码
11、采用了统一的编码方式情况。第 5 页(1)采购编号为字母“cg” 、系统当前日期的年限和 5 位数字编号的组合。例如,cg200610005 。(2)入库单据编号为字母“RK” 、系统当前日期和 3 位数字编号的组合。例如,RK20060110001。(3)入库退货单据编号为字母“RT ”、系统当前日期和 3 位数字编号的组合。例如,RT20060112002。(4)销售单据编号为字母“XS” 、系统当前日期和 3 位数字编号的组合。例如,XS20060112003。3.4 逻辑结构设计本系统数据库采用 SQL Server 2000 数据库,系统数据库名称为 sell。数据库sell 中包含
12、 24 张表。1数据表概要说明为了对本系统后台的数据库中数据表有一个更清晰的认识,下面设计了一个数据表树型结构图(如图 2 所示) ,该数据表树型结构图包含系统所有数据表。图 2 数据表树型结构图2数据表的结构关于数据库中的数据表请参见附录 B。第 7 页4 网站总体架构1模块功能介绍网站首页主要包括以下功能模块: 基础信息:实现对客户、商品、供应商基础信息的管理及信息检索功能。主要包括客户信息管理、商品信息管理、供应商信息管理、客户信息查询、商品信息查询和供应商信息查询 6 部分。 采购管理:实现对商品采购信息进行管理及采购信息检索功能。主要包括商品采购和采购查询两部分。 库存管理:实现对商
13、品入库、退货、库存查询及价格调整等信息的综合管理。主要包括商品入库、商品入库退货、库存查询和价格调整 4 部分。 商品销售:实现对商品销售信息及退货信息进行管理的功能。主要包括商品销售和商品销售退货两部分。 查询统计:实现对进、销商品信息的查询汇总,并实现按销售商品进行排行和对年销售额进行分析等功能。主要包括销售信息查询、销售退货查询、商品入库查询、入库退货查询、商品销售排行和年销售额分析 6 部分。 往来管理:实现在线的个人与企业、企业与企业之间的进、销商品往来结账的综合管理。主要包括商品销售结账、入库退货结账、销售结账查询、商品入库结账、销售退货结账和入库结账查询 6 部分。 系统设置:实
14、现对操作员信息进行维护。主要包括添加操作员、更改操作员密码和删除操作员 3 部分。2首页运行结果企业进销存管理系统网站首页的运行结果如图 3 所示。图 3 网站首页的运行结果首页的各部分说明以列表形式给出,如表 1 所示。表 1 首页解析区域 名称 说明 对应文件1 网站主导航区 主要用于显示网站的旗帜广告条及为用户提供网站的功能导航 Top.asp2 网站子导航区 主要用于管理功能导航 Top.asp3 功能操作区 主要用于完成各种管理功能 Main.asp4 退出登录 主要用于退
15、出企业进销存管理系统 Main.asp4创建数据库连接在进行动态网站开发时,一个很重要的步骤就是建立数据库的连接,即访问数据库。访问数据库可以用 DSN 和非 DSN 两种方法。应用 DSN 访问数据库需要配置 ODBC 数据源(即系统 DSN) ,该方法的优点是比较安全;而应用非 DSN 访问数据库不需要配置 ODBC 数据源,比较方便。创建数据库连接主要分两步进行:一是创建数据库连接文件 Conn.asp,二是在需要与数据库连接的页面包含该文件() 。下面1342第 9 页进行详细介绍。本网站数据库配置文件为 conn.asp,下面两条代码在所有对数据库的操作中都是必不可少的。由于这段代码
16、几乎在后面的每个对数据库操作页面都要使用,所以将其保存一个单独的文件夹中,文件名为 Conn.asp,在所有与数据库连接的页面中只要包含该文件,就可以连接和打开数据库。通过 Application 对象进行事件处理,相关代码放在虚目录的 Global.asa 文件中,代码如下:sub application_onstartend subsub session_onstartapplication(“dsn“)=“driver=sql server;server=(local);uid=sa;pwd=;database=sell“end subsub session_onendend subsu
17、b application_onendend sub5 用户登录模块设计用户登录页面比较简单,为防止用户的错误操作,应设置错误处理页面。在登录操作中,一般发生的错误有:用户输入了错误的用户名或密码;或用户直接单击了【登录】按钮。对上述情况的判断,我们就要通过 ASP 文件来实现。用户登录页面的设计效果如图 4 所示。图 4 用户登录页面的设计效果用户登录页面中涉及的 HTML 表单元素如表 2 所示。表 2 用户登录页面中涉及的 HTML 表单元素名称 类型 含义 重要属性myform form 表单 actio
18、n=“checklogin.asp“ method=“post“username text 用户名 id=“username2“PWD password 密码 style=“ font-family:Wingdings; width:129;“ oncopy=“return false“ oncut=“return false“ onpaste=“return false“Submit3 button 【确定】按钮 onClick=“check(myform)“reset1 reset 【取消】按钮 class=“btn_grey“ value=“取消“利用 JavaScript 编写检测用户
19、输入信息是否合法的函数,并通过单击【确定】按钮调用该函数,判断用户名或密码是否为空,如果为空,系统将给予提示。当用户输入合法信息后,提交该表单,完整代码如下:function check(myform)if (myform.username.value=“) /判断用户名是否为空,并弹出提示对话框alert(“请输入用户名!“);myform.username.focus();return;if(myform.PWD.value=“) /判断密码是否为空,并弹出提示对话框alert(“请输入密码!“);myform.PWD.fo
20、cus();return;myform.submit();第 11 页在登录页面时,当用户提交了登录资料后,就由表单 action 属性指定的 ASP 文件在服务器端对这些资料进行验证。它的工作主要是判断用户的登录的用户名和密码是否正确。完成这些工作,就必须从连接储存用户数据库中取出相关的信息记录。如果记录验证无误,就通过 ASP 的 Response 对象的 redirect 方法,将用户登录的页面传到客户端的浏览器上;如果用户输入了错误的用户名或密码,就通过 ASP 的Response 对象的 Write 方法弹出错误提示。在开始编写程序之前,首先使用 Session 来存储用户的相关信息
21、,并与客户端保持联系。本页使用 session(“ulogin“)以存储在数据库中的标识符作为信息记载,并以判断这个值是否为空来判断用户是否登录。表单提交到处理页后会验证用户登录的身份,完整代码如下:alert('请输入正确的用户名和密码');window.location.href='login.asp'“)'弹出提示对话框,并转向指定页面elsesession(“id“)=rs(“id“)session(“name“)=rs(“name“)session(“quan“)=rs(“quan“)session(“ulogin“)=“yes“respons
22、e.redirect “default.asp“ '跳转到管理页面end if %在理解了 Session 的基础上,我们知道上述代码首先是把存储用户信息并与客户端保持关联的 Session(“ulogin“)初始化,赋予空值。在接收数据库后,打开数据库,取出标识符,把它赋给 Session(“ulogin“)。如果不存在该用户,则弹出错误提示,并跳回到登录页面。用户登录页面的运行结果如图 5 所示。图 5 用户登录页面的运行结果6 网站首页设计网站首页采用框架技术将菜单导航区和主体控制区分装在两个框架里,以便在同一个页面中管理多个页。菜单导航区顾名思义,主
23、要用于实现网站首页管理功能的导航;主体控制区主要用于显示每个管理模块的内容。网站首页主要包括以下功能模块: 菜单主导航区:主要用于显示网站的旗帜广告条及为用户提供网站的功能导航。 菜单子导航区:主要用于管理功能导航。 主体操作区:主要用于完成各种管理功能。 退出登录:主要用于退出企业进销存管理系统。第 13 页菜单主导航区的完整代码如下:企业进销存管理系统 菜单子导航区的关键代码如下:“yes“ then '判断是否登录response.write(“parent.location.href='login.asp'“) &nbs
24、p;'重新定向页面response.End() end if%基础信息|采购管理|库存管理|商品销售 |查询统计|往来管理|系统设置 var today=new Date();var month=today.getMonth()+1if (today.getDay()=1)document.write(“+today.getYear()+“年“+month+“月“+today.getDate()+“日 星期一“);if (today.getDay()=2) document.write(“+today.
25、getYear()+“年“+month+“月“+today.getDate()+“日 星期二“);if (today.getDay()=3) document.write(“+today.getYear()+“年“+month+“月“+today.getDate()+“日 星期三“);if (today.getDay()=4)document.write(“+today.getYear()+“年“+month+“月“+today.getDate()+“日 星期四“);if (today.getDay()=5)document.write(“+today.getYear()+“年“+month+
26、“月“+today.getDate()+“日 星期五“);if (today.getDay()=6)document.write(“+today.getYear()+“年“+month+“月“+today.getDate()+“日 星期六“); if (today.getDay()=0) document.write(“+today.getYear()+“年“+month+“月“+today.getDate()+“日 星期日“); function Fsubmenu(value)switch (value)case “基础“:submenu.innerHTML=“客户信息管理|商品信息管理|供
27、应商信息管理|客户信息查询 |商品信息查询|供应商信息查询“;break;case “采购“: /类型为采购时,进入相应的处理页面submenu.innerHTML=“商品采购|采购查询“;break;case “库存“: /类型为库存时,进入相应的处理页面submenu.innerHTML=“商品入库|商品入库退货|库存查询|价格调整“;break;第 15 页case “销售“: /类型为销售时,进入相应的处理页面submenu.innerHTML=“商品销售| 商品销售退货 |“;break;case “查询“
28、: /类型为查询时,进入相应的处理页面submenu.innerHTML=“销售信息查询|销售退货查询 |商品入库查询|入库退货查询 |商品销售排行|年销售额分析 “;break;case “往来“: /类型为往来时,进入相应的处理页面submenu.innerHTML=“商品销售结账|入库退货结账|销售结账查询|商品入库结账|销售退货结账 |入库结账查询“;break;case “系统“: /类型为系统时,进入相应的处理页面submenu.innerHTML=“添加操作员|更改操作员密码|删除操作员“;break
29、;退出导航区的完整代码如下:parent.location.href='login.asp'“) '父窗口重新定向到登录页面%7 基础信息主要功能模块详细设计7.1 商品信息管理设计用户可以通过单击菜单主导航“基础信息”/“商品信息管理”超链接,进入商品信息管理页面。该页面主要完成商品信息的添加。商品信息管理页面设计效果如图 6 所示。图 6 商品信息管理页面设计效果商品信息管理页面中涉及的 HTML 表单元素如表 3 所示。表 3 商品信息管理页面中涉及的 HTML 表单元
30、素名称 类型 含义 重要属性form1 form 表单 action=“checkspinfo.asp“ method=“post“sel select 供应商全称memo text 备注 onkeyup=“if (event.keyCode=13)send()“subb button 【保存信息】按钮 onclick=“send()“Res reset 【清除重写】按钮 onclick=“res()“利用 JavaScript 编写检测用户输入信息是否合法的函数,并通过单击【保存信息】按钮调用该函数,当用户输入合法信息后,提交该表单。关键代码如下:商品信息添加时的数据处理页主要是将用户提交的
31、表单信息保存到数据库中,数据处理页的程序代码如下:alert(“商品信息添加成功!“); /弹出对话框window.location.href=“spinfo.asp“; /重新定向指定页面商品信息管理页面的运行结果如图 7 所示。图 7 商品信息管理页面的运行结果7.2 商品信息查询设计用户可以通过单击菜单主导航“基础信息”/“商品信息查询”超链接,进入商品信息查询页面。该页面主要完成商品信息的检索。商品信息查询页面设计效果如图 8 所示。图 8 商品信息查询页面设计效果商品信息查询页面中涉及的 HTML 表单元素如表 4 所
32、示。第 19 页表 4 商品信息查询页面中涉及的 HTML 表单元素名称 类型 含义 重要属性myform form 表单 action=“checkspindex.asp“ method=“post“ target=“mainF“sel select 选择查询字段商品名称 规格tsel select 选择条件运算符等于LIKEqname text 输入查询关键字 id=“qname“ onkeyup=“ti()“Submit button 【查询】按钮 onclick=“send()“but button 【显示全部数据】
33、按钮 id=“but“ onclick=“list()“用户可以在商品信息查询页面中的查询部分,输入一定的条件进行商品信息的查询。利用 JavaScript 编写检测用户输入信息是否为空的函数,并通过单击【查询】按钮调用该函数,当用户输入合法信息后,提交该表单。关键代码如下:function send()if (myform.qname.value=“)alert(“请输入查询内容“);myform.qname.focus();return false /弹出提示对话框,并把焦点停留在指定位置myform.submit()应用 JavaScript 动态向 select 中添加一个
34、新的选项“all” ,并将该选项设置为被选择的项,通过单击【显示全部数据】按钮调用该函数。关键代码如下:function list()myform.tptsel.optionsmyform.tptsel.length=new Option(“all“,“all“);myform.tptselmyform.tptsel.length-1.selected=true;myform.submit()商品信息展示页面检索数据库的程序代码如下:“ then tj=request(“tptsel“)lname=request(“qname“)jname=request(“sel“)session(“tj“
35、)=tjsession(“lname“)=lnamesession(“jname“)=jnameend if'查询if session(“tj“)=“=“ then '精确查询sql=“select * from tab_spinfo where “ '弹出提示对话框window.location.href=“spcg.asp“; '重新定向页面商品采购页面的运行结果如图 12 所示。图 12 商品采购页面的运行结果8.2 采购查询设计采购查询是为采购员提供的对采购信息进行查询的功能,以便跟踪采
36、购信息的执行情况,为企业的采购决策提供依据。第 25 页用户可以通过单击菜单主导航“采购管理”/“采购查询”超链接,进入采购查询页面。该页面主要完成采购信息的检索。采购查询页面设计效果如图 13 所示。图 13 采购查询页面设计效果采购查询页面中涉及的 HTML 表单元素如表 6 所示。表 6 采购查询页面中涉及的 HTML 表单元素名称 类型 含义 重要属性myform from 表单 action=“checkcgindex.asp“ method=“post“flag checkbox 复选框 class=“nobord
37、er“ id=“flag“ value=“1“ checkedsel select 选择查询字段商品名称 厂商tj select 选择条件运算符等于LIKEqname text 输入查询关键字 id=“qname“subb button 【查询】按钮 onClick=“send()“flag checkbox 复选框 class=“noborder“ id=“flag“ value=“2“sdate text 起始日期 value=“edate text 截止日期 value=“but button 【显示全部数据】按钮 onClick=“window.location.href='c
38、heckcgindex.asp?type=all'“用户可以在采购查询页面中的查询部分,输入一定的查询条件,单击【查询】按钮后,用户添加查询条件将被提交给本页,本页则将根据用户提交的表单对数据库进行检索,并将查询结果集通过信息展示部分输出到浏览器中,数据处理页的程序代码如下:“ thenif instr(flag,“1“)0 then '当有一个条件时进行相应的处理sel=request.Form(“sel“)tj=request.Form(“tj“)qname=request.Form(“qname“)i=1flag_deal=“in
39、IF“end ifif instr(flag,“2“)0 then '当有两个条件时进行相应的处理sdate=request.Form(“sdate“)edate=request.Form(“edate“)i=i+1flag_deal=“inDate“end ifif i1 then flag_deal=“double“end ifsession(“flag“)=flag_deal '创建Session变量session(“sel“)=selsession(“tj“)
40、=tjsession(“qname“)=qnamesession(“sdate“)=sdatesession(“edate“)=edateend if'查询条件判断select case session(“flag“)case “inIF“if session(“tj“)=“=“ then '精确查询sql=“select * from tab_cgdan where “&session(“sel“)&“ = '“&session(“qname“)&“' “ else '模糊查询sql=“select * from tab_cgdan where “&session(“sel“)&“ like '%“&session(“qname“)&“%'“end if