1、销售管理系统课程设计报告2 系统分析 32.1需求分析 32.2可行性分析 33 系统设计 43.1系统功能模块图 43.2设计思想 43.3模块功能设计 54 数据库设计 64.1数据库的建立 64.2系统E-R图 64.3各个数据表的创建 74.4触发器设计 104.5存储过程设计 115 系统实现 125.1系统实现工具与支持平台 125.2系统设置模块设计 12 5.3产品信息模块设计.14 5.4订购管理模块设计.18 5.5销售管理模块设计.19 5.6系统主界面设计.286总结与展望 296.1收获与体会 29参考文献 30致 谢 31课程设计检查表 321绪论1.1课题背景随着
2、中国电子商务、互联网业务的迅猛发展,国内许多企业已跨入电脑网络管理时代,并因此提高了管理效率和市场竞争力。但目前仍有部分企业还停留在原始计账管理阶段。而随着全球经济信息化的进程和WTO的成功实现,企业面临着前所未有的机遇和挑战,在如此激变的社会形势和激烈的市场竞争下,愈来愈多的企业管理者意识到效率管理和科学管理的重要性,以及增强市场竞争力的迫切性,因此建立科学、规范、高效的管理制度和秉承富有竞争力的经营理念是每一个企业管理者的渴望,企业采用电脑管理进货、库存、销售等诸多环节也已成为趋势及必然。许多从事商业活动的企业都需要采购商品、销售商品以及将商品暂时存储在仓库中,对这一工作流程进行有效地管理
3、和控制,对这些企业来说是非常重要。在进货、库存、销售环节中,由于商品种类繁多、业务量大、库存管理复杂,使用手工操作的工作量很大,在操作过程中也很容易出现各种错误。而采用计算机管理则可以大大提高日常工作的效率,不仅将原来由手工操作的进货、出货及销售这一整套流程用计算机进行全程管理,而且消除了手工操作中可能存在的不确定因素,达到进销存管理流程清晰,从而能够比较彻底地贯彻经营者的管理模式。1.2系统开发相关技术介绍本系统相关开发的技术有两种,利用专门的数据库编程工具: Oracel;另一种方法是:利用常规的程序语言编写:VB。Visual Basic 6.0作为一种面向对象的可视化开发工具,易于使用
4、并能够带来高效的开发,它与Oracle之间的通信有许多的工具集,因而使用Visual Basic 6.0来开发数据库被越来越多的企业采用。在连接Oracle 10g数据库上,利用ADO对象模型,创建几个简单的对象和数据来源进行连接,然后从中取得所需要的数据,进行数据访问操作后保存。ADO (ActiveX Data Objects)对象模型主要由三个对象成员:Connection、Command与Record set对象;以及三个集合对象:Errors、Parameters与Fields对象所组成。ADO对象模型与DAO、RDO另一个较大的差异,在于某些ADO对象可以直接创建而不需依据上下层按
5、顺序产生,比如我们可以直接创建一个Command对象而不需要先行创建该对象的上层Connection对象,ADO会在该Command对象产生时自动创建上层Connection对象。对象和集合的功能描述:Connection对象 连接数据来源Command对象 从数据来源取得所需的数据Record set对象 针对取出的数据进行处理Errors集合对象 返回错误信息和其他信息Parameters集合对象 执行SQL查询Fields集合对象 获取和处理字段数据下面给出ADO对象间的关系(如下图1.1):2系统分析2.1需求分析通过调查研究,要求系统满足以下功能:由于操作人员的计算机知识水平有限,因
6、此要求系统具有良好的人机界面。 如果系统的使用对象较多,则要求有较好的权限管理。 方便的数据查询功能,并支持多条件查询。 在各种单据中根据输入的基础数据自动计算金额,尽量减少人工干预。 对客户或供应商的往来账目进行有效管理。 通过计算机,能够直接“透视”仓库存储情况。2.2可行性分析 通过计算机网络系统对企业进行全面的管理,满足了企业的现代化管理的要求。 经济性 当前许多中小型企业都使用人工管理方式(即纸和笔)来管理企业的进销存,这样的管理方式既困难又浪费时间和成本,并且容易出现漏账、差账的情况,因此中小企业应该向大型企业那样采用先进的管理方式,提高企业效率、降低企业运营成本。 技术性 企业进
7、销存管理系统从中小企业的实际出发,可有效地管理企业的进销存情况,并降低企业运营成本、及时调整营销策略、提高库房的利用率。3系统设计3.1系统功能模块图根据对销售管理系统进行可行性分析和结构化程序设计的要求,得到系统总体功能模块,如图3.1所示:图3.1 销售管理系统功能结构图3.2设计思想(1)系统分成前台和后台几个相对独立的模块,这些模块都进行集中式管理。(2)分层的模块化程序设计思想,整个系统采用模块化结构设计。作为应用程序有较强的可操作性和扩展性。(3)合理的数据流设计,在应用系统设计中,相对独立的模块间以数据流相互连接,使各模块间的耦合性较低,方便系统运行,提高系统安全性。3.3模块功
8、能设计销售管理系统作为一种信息管理软件,既可以帮助快速有效地完成各种信息录入、查询和修改的计算机管理,又可以对信息进行简单地分析。销售管理系统的主要任务是实现订购和销售的管理。主要功能模块包括:1. 基本信息管理功能: 客户信息的录入、修改和删除。 仓库信息的录入、修改和删除。 用户信息的录入、修改和删除。2. 产品信息管理功能: 产品类目的添加、修改和删除。 产品信息的管理。3. 商品订购管理功能: 订购单的添加、修改和删除。 订购退货单管理。4. 商品销售管理功能: 销售单的添加、修改和删除。 销售退货管理。5. 库存管理功能: 入库管理。 出库管理。 库存管理。4数据库设计4.1数据库的
9、建立 数据库的设计尽量的实现与应用程序做到最低等级的耦合,按照三层模式两级联系的方式设计数据库,把数据库设计成层次清晰的,高效的,实用数据库。在该系统的数据库设计方面,把数据库的设计分为四层:基本表,视图,包,存储过程。其中视图作为联系存储过程与基本表的桥梁必须进行认真的设计,在最外层,包中包含存储过程要用到的一些信息,也可以认为包和存储过程是处于相同的层次,不将存储过程放置在包中,是考虑到对进行数据库基本表、视图以及功能型的存储过程扩展的时候应尽量避免和减少对系统的层次模型的影响。以降低产生错误的可能。但在数据库设计已经相对稳定的情况下,可以将存储过程置于包中,由于这是第一次使用ORACLE
10、开发系统,兼顾上面的原因,而采用了包与存储过程分离的方式。因为该系统是采用三层架构设计的,可通过应用服务器的扩展来实现新功能的添加。而在该课程设计的内容定义方面,保证了数据的独立性,该系统对数据记录的操作也因为其课程设计中定义的数据操作方式和操作内容而注定不会产生脏数据及数据读写的不一致性,故在数据库设计方面未采用触发器。我们认为在扩展应用服务器至多种功能后,将应用服务器分为控制部分和客户应用部分,此时在控制部分添加触发器来防止数据读写的不一致性,这已经超出了本次课程设计所涉及的范围,在此不做过多的陈述。4.2系统E-R图销售管理系统数据库E-R模型,如图4.1所示:图4.1销售管理系统数据库
11、E-R图模型4.3各个数据表的创建由数据模型利用Oracle10g进行数据库的详细设计,其基本表的设计如下:根据主体流程图,基本表设计情况如下:表3.1 用户信息表(Users)列名数据类型长度说明UserNameVarchar2 50用户名PwdVarchar250密码UserTypeNumber1用户类型EmpNameVarchar250员工姓名表3.2 仓库信息表(Storehouse)列名数据类型长度说明StoreIdNumber1仓库编号StoreNameVarchar250仓库名称DescribeVarchar250仓库说明表3.3商品类目表(ProType)列名数据类型长度说明T
12、ypeIdNumber1商品类目编号TypeNameVarchar250商品类目名称UpperIdNumber1上级商品类目表3.4商品信息表(Product)列名数据类型长度说明ProIdNumber1商品编号ProNameVarchar250商品名称TypeIdNumber1商品类型编号ProStyleVarchar250商品规格ProUnitVarchar210计量单位ProLowNumber5商品数量下限ProHighNumber10商品数量上限表3.5订购信息表(Orders)列名数据类型长度说明OrderIdNumber2订购单号OrderTypeVarchar220订购类型Pro
13、IdNumber3订购商品编号ProPriceNumber15订购商品单价ProNumNumber10订购商品数量ProAmountNumber15订购商品总金额OptDateChar10订购日期EmpNameVarchar250经办人StoredNumber1出/入库标记表3.6销售信息表(Sales)列名数据类型长度说明SaleIdNumber1销售单号SaleTypeVarchar220销售类型ProIdNumber3销售商品编号ProPriceNumber15销售商品单价ProNumNumber5销售商品数量ProAmountNumber15销售商品总金额ClientIdNumber1
14、客户编号OptDateChar10订购日期EmpNameVarchar250经办人StoredNumber1出/入库标记表3.7入库操作信息表(StoreIn)列名数据类型长度说明StoreinIdNumber1入库编号StoreinTypeVarchar220入库类型StoreIdNumber1仓库编号EmpNameVarchar250经办人OptDateChar10入库日期表3.8出库操作信息表(TakeOut)列名数据类型长度说明TakeoutIdNumber1出库编号TakeoutTypeVarchar220出库类型StoreIdNumber1仓库编号EmpNameVarchar250
15、经办人OptDateChar10入库日期表3.9库存商品信息表(ProInStore)列名数据类型长度说明StoreProIdNumber1商品存储编号ProIdNumber1商品编号ProPriceNumber15商品入库单价ProNumNumber10商品数量StoreIdNumber1仓库编号表3.10客户信息表(Client)列名数据类型长度说明ClientIdNumber1客户编号ClientNameVarchar250客户名称ClientTypeNumber1客户类型BankVarchar250开户银行BankAccountVarchar250银行帐号ContactVarchar2
16、30联系人AddressVarchar250通信地址PostcodeVarchar210邮政编码PhoneVarchar230联系电话FaxVarchar230传真电话DescribeVarchar2100客户描述4.4 触发器设计create or replace trigger product_del after delete on protype delete from product where prduct.typeid=:old.typeid;end order_del;删除protype表中的数据时把product表中相关的数据也删除。4.5 存储过程设计create or re
17、place procedure product_add( tproid in product.proid%type, tproname in product.proname%type , ttypeid in product.typeid%type , tprostyle in product.prostyle %type, tprounit in product.prounit%type , tprolow in product.prolow%type , tprohigh in product.prohigh%type,) begininsert into income(proid,pro
18、name,typeid,prostyle,prounit,prolow,prohigh) values(tproid,tproname,ttypeid,tprostyle,tprounit,tprolow,tprohigh);end product_add;添加商品信息。5系统实现5.1系统实现工具与支持平台(1)用户界面本系统所采用的语言是Visual Basic。,用户交互界面采用的是基于Windows的窗口界面。(2)硬件接口运行本系统的硬件基本要求如下:CPU:奔腾3处理器及以上;内存:128MB及以上;硬盘:10GB及以上。数据库服务器:Oracle10g。5.2系统设置模块设计系统
19、设置模块可以实现以下功能:(1) 客户信息管理,包括客户信息的添加、修改、删除和查看等。(2) 仓库信息管理,包括客户信息的添加、修改、删除和查看等。(3) 用户信息管理,包括客户信息的添加、修改、删除和查看等。图5.2用户信息管理窗口图5.3添加用户信息窗口当用户单击“确定”按钮时,对应的代码如下:Private Sub Cmd_OK_Click() 检查用户录入数据的有效性 If Trim(txtUserName) = Then MsgBox 请输入用户名 txtUserName.SetFocus Exit Sub End If If txtPass txtPass2 Then MsgBo
20、x 密码和确认密码不相同,请重新确认 txtPass2.SetFocus txtPass2.SelStart = 0 txtPass2.SelLength = Len(txtPass2) Exit Sub End If If txtEname = Then MsgBox 请输入员工姓名 txtEname.SetFocus Exit Sub End If 判断用户名是否已经存在 With MyUser If Modify = False Or OriUser Trim(txtUserName) Then If .In_DB(MakeStr(txtUserName) = True Then Msg
21、Box 用户名已经存在,请重新输入 txtUserName.SetFocus txtUserName.SelStart = 0 txtUserName.SelLength = Len(txtUserName) Exit Sub End If End If 把用户录入的数据赋值到MyUser对象中 .EmpName = MakeStr(txtEname) .UserName = MakeStr(txtUserName) .Pwd = MakeStr(txtPass) .UserType = ComboType.ListIndex + 1 根据变量Modify的值,决定是插入新数据,还是修改已有的
22、数据 If Modify = False Then .Insert Else .Update (OriUser) 如果修改自身用户名,则更新CurUser对象 If OriUser = CurUser.UserName And Trim(txtUserName) OriUser Then CurUser.UserName = Trim(txtUserName) CurUser.GetInfo (CurUser.UserName) End If End If End With 关闭窗体 Unload MeEnd Sub5.3产品信息管理模块设计产品信息管理模块可以实现以下功能:(1) 产品类别管
23、理,包括添加、修改、删除和查看产品类别信息等功能。(2) 产品信息管理,包括添加、修改、删除和查看产品信息等功能。图5.4产品类目管理窗口Cmd_Add_Click过程:当用户单击“添加”按钮时,对应的代码如下:Private Sub Cmd_Add_Click() 如果当前选择添加二级产品类目,则判断是否选择了一级类目 If Option1.Value = False And List1.ListIndex 0 Then MsgBox 请选择上级类目 Exit Sub End If 选择添加一级产品类目 If Option1.Value = True Then 上级产品类目编号为0 FrmP
24、roTypeEdit.OriUpper = 0 上级产品类目名称为空 FrmProTypeEdit.lblUpper = 选择添加二级产品类目 Else 设置上级产品类目编号 FrmProTypeEdit.OriUpper = Id1 设置上级产品类目名称 FrmProTypeEdit.lblUpper = List1.Text End If 设置修改标记 FrmProTypeEdit.Modify = False 启动产品类目编辑窗体 FrmProTypeEdit.Show 1 重新装入产品类目信息 Load_Type1 Load_Type2End SubCmd_Modi_Click过程:P
25、rivate Sub Cmd_Modi_Click() 如果选择要修改一级产品类目,则判断List1列表框中是否有项目被选中 如果选择要修改二级产品类目,则判断List2列表框中是否有项目被选中 If (Option1.Value = True And List1.ListIndex 0) _ Or (Option2.Value = True And List2.ListIndex 0) Then MsgBox 请选择要修改类目 Exit Sub End If 选择修改一级产品类目 If Option1.Value = True Then 设置上级产品类目编号为0 FrmProTypeEdit
26、.OriUpper = 0 设置当前编辑的产品类目编号 FrmProTypeEdit.OriId = Id1 设置当前编辑的产品类目名称 FrmProTypeEdit.OriName = List1.Text FrmProTypeEdit.txtTypeName = List1.Text 设置上级产品类目名称为空 FrmProTypeEdit.lblUpper = 选择修改二级产品类目 Else 设置上级产品类目编号 FrmProTypeEdit.OriUpper = Id1 设置当前编辑的产品类目编号 FrmProTypeEdit.OriId = Id2 设置当前编辑的产品类目名称 FrmP
27、roTypeEdit.OriName = List2.Text FrmProTypeEdit.txtTypeName = List2.Text 设置上级产品类目名称 FrmProTypeEdit.lblUpper = List1.Text End If 设置修改标记 FrmProTypeEdit.Modify = True 启动产品类目编辑窗体 FrmProTypeEdit.Show 1 重新装入产品类目信息 Load_Type1 Load_Type2End SubCmd_Del_Click过程:Private Sub Cmd_Del_Click() Dim TmpId As Long 如果选
28、择要删除一级产品类目,则判断List1列表框中是否有项目被选中 如果选择要删除二级产品类目,则判断List2列表框中是否有项目被选中 If (Option1.Value = True And List1.ListIndex 0) _ Or (Option2.Value = True And List2.ListIndex 0) Then MsgBox 请选择要修改类目 Exit Sub End If 判断一级类目是否包含子类目 If Option1.Value = True Then If MyProType.HaveSon(TmpId) = True Then MsgBox 此类目包含子类目,不能删除 Exit Sub End If End If 判断类目中是否包含产品 If MyPro.HaveType(TmpId) = True Or _
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1