通用进销存管理系统毕业设计范例(共59页).doc
精选优质文档-倾情为你奉上通用进销存管理系统学 院专 业班 级学 号姓 名指导教师教师职称年月日专心-专注-专业摘要【摘要】随着全球经济一体化,国内经济改革的逐年深化,使得国内中小企业都面临着巨大的挑战,管理体制的不完善、生产技术不能和集团性质的大公司相竞争,成为中小企业发展需要解决的首要问题,而即使企业具有了一定先进的技术,由于管理体制中种种问题的制约,也不能使企业在激烈的竞争中占有一席之地。 计算机技术的全面普及,给中小企业带来新鲜的血液,利用计算机对企业进行管理,不仅解决了传统管理方式中的管理效率低下、管理不全面,数据信息不能得到统计等问题。管理方式的转变,提高整个企业的工作效率,在某种意义上讲,给中小企业提供了新的有利条件,增强了企业的核心竞争力,成为企业管理的必备工具。本系统的开发适用于多个行业,可以帮助企业快速有效管理进货、销售、库存等各项业务,合理控制进销存各个环节,提高资金利用率,实现管理高效率和实时性。本系统是根据人们在日常生活中的实际需求而开发的,完全能够实现人们对各类药品信息及疑难病症查询的功能,通过本系统可以达到以下目标:l 系统最大限度地实现了易安装性、易维护性和易操作性。l 系统运行稳定,安全可靠。l 操作灵活,界面友好,充分满足各类企业的进销存管理需求l 实施规范的进、销、存一体化业务管理。l 强大的库存预警功能,尽量避免损失。l 图形化数据分析。l 强大的查询分析功能。l 灵活、细分的权限控制功能。l 强大的报表功能,让您随时了解企业经营情况【关键词】 入库 销售 退货 通用进销存管理系统目录0 引言随着全球经济一体化,国内经济改革的逐年深化,使得国内中小企业都面临着巨大的挑战,管理体制的不完善、生产技术不能和集团性质的大公司相竞争,成为中小企业发展需要解决的首要问题,而即使企业具有了一定先进的技术,由于管理体制中种种问题的制约,也不能使企业在激烈的竞争中占有一席之地。 计算机技术的全面普及,给中小企业带来新鲜的血液,利用计算机对企业进行管理,不仅解决了传统管理方式中的管理效率低下、管理不全面,数据信息不能得到统计等问题。管理方式的转变,提高整个企业的工作效率,在某种意义上讲,给中小企业提供了新的有利条件,增强了企业的核心竞争力,成为企业管理的必备工具。本系统的开发适用于多个行业,可以帮助企业快速有效管理进货、销售、库存等各项业务,合理控制进销存各个环节,提高资金利用率,实现管理高效率和实时性。1 需求分析1.1 需求分析根据市场的需求,要求系统具有以下功能:l 系统操作简单,界面友好。l 规范、完善的基础信息设置。l 支持多人操作,要求有较好的权限分配功能。l 为了方便用户,要求系统支持多条件查询。l 支持多种报表打印功能。l 图表分析销售状况l 具有数据备份及数据恢复功能,保证系统数据的安全。1.2 可行性分析随着经济的全球化以及中国经济改革的逐渐深化,中小企业面临着越来越激烈的竞争,改善企业内部以及整个供应链各个环节的管理、调度及资源配置,迅速适应客户的新需求和市场新机遇的能力,是企业赢得竞争胜利的决定性因素,进销存管理系统的开发是提高企业竞争力的最有效的方法之一。进销存管理系统的开发实现了从进货、库存、到销售的一体化管理。提高了管理水平和工作效率,最大限度减少了手工操作带来的错误。2 总体设计2.1 项目规划通用进销存管理系统是一款将进货、销售、库存进行一体化管理的系统。系统由系统管理、销售管理、库存管理、基础信息、往来管理、查询管理、报表管理、决策管理和维护管理等模块组成。特规划功能模块如下:l 系统管理模块系统管理模块:系统管理模块:系统设置、权限设置、操作员管理、更改密码、退出。l 销售管理模块销售管理模块:订货管理、销售管理、销售退货管理。l 库存管理模块库存管理模块:入库管理、入库退货、库存查询、库存盘点、商品有限期查询、库存上下限管理、商品报损报溢管理。l 基础信息基础信息模块:商品信息管理、供应商信息管理、客户信息管理、员工信息管理、银行帐户管理。l 基础信息基础信息模块:商品信息管理、供应商信息管理、客户信息管理、员工信息管理、银行帐户管理。l 往来管理往来管理模块:供应商帐目管理、客户帐目管理、超期应收应付款管理。l 查询管理查询管理模块:商品销售查询、商品入库查询、商品退货查询、商品报损报溢查询。l 报表管理报表管理模块:日销售报表、周销售报表、月销售报表、单商品销售报表。l 决策管理决策管理模块:商品销售排行、商品退货排行、利润分析、决策分析(进销存结转、供应商应收应付款结转、客户应收应付款结转)。l 维护管理初期建帐(往来帐目、库存商品)、系统初始化、数据备份、数据恢复。2.2 系统功能结构本系统共分9大部分、41个完整的功能模块。系统结构图如图1所示。 图1 通用进销存管理系统结构图3 系统设计3.1 设计目标本系统是根据人们在日常生活中的实际需求而开发的,完全能够实现人们对各类药品信息及疑难病症查询的功能,通过本系统可以达到以下目标:l 系统最大限度地实现了易安装性、易维护性和易操作性。l 系统运行稳定,安全可靠。l 操作灵活,界面友好,充分满足各类企业的进销存管理需求l 实施规范的进、销、存一体化业务管理。l 强大的库存预警功能,尽量避免损失。l 图形化数据分析。l 强大的查询分析功能。l 灵活、细分的权限控制功能。l 强大的报表功能,让您随时了解企业经营情况。3.2 开发及运行环境系统开发平台:Microsoft Visual FoxPro 6.0。运行平台:Windows XP/ Windows 2000/ Windows 2003分辨率:最佳效果1024×768像素3.3 数据库设计本系统采用的是Visual FoxPro自带的数据库,系统数据库名为DataBase。由于篇幅所限,关于数据库中的数据表请参见附录B。4 主要功能模块设计4.1 程序主界面的设计程序主界面的设计的好坏往往影响到软件的整体形象,因此首先要处理好程序主界面的设计问题。同时,程序主界面的设计也是程序控制的核心,操作权限、程序功能调用等都要通过主程序调用实现。通用进销存管理系统程序主界面设计的运行结果如图2所示。图2 程序主界面设计的运行结果1创建程序主界面(1)新建一个项目,命名为“通用进销存管理系统”,在该项目中添加一个新表单,命名为“frmmain”,并设置表单的Caption属性为“通用进销存管理系统 v2.0版”,设置Icon属性为“sys(5)+sys(2003)+'graphicsproICO.ico'”,设置KeyPreview属性为.T.,作用是截获表单内控件的KeyPress事件;设置ShowWindow属性为“2-作为顶层表单”;设置WindowState属性为“2-最大化”。(2)在表单的Unload事件下添加如下代码:_screen.visible=.t. &&恢复Visual FoxPro主窗体的位置,退出Visual FoxPro_screen.top=0QUIT在表单的QueryUnload事件下添加如下代码:this.Lockdatebase1.lock(sys(5)+sys(2003)+"dataDataBase.dbc",;"正在加密,请稍后.") &&数据库加密IF file(sys(5)+sys(2003)+'Setup.tmp')=.t.DELE FILE sys(5)+sys(2003)+'Setup.tmp'ENDIF2创建程序菜单“通用进销存管理系统”的菜单是通过10个快捷菜单拼成的,并且具有彩色背景、动态增减菜单项的功能。(1)在表单中增加ToolBar控件,命名为“ToolBarMenu”,ImageList控件,命名为“ImageMenu”,将制作完成的图片添加到ImageMenu中。(2)更改ToolBarMenu控件的属性,如表1所示。表1 更改ToolBarMenu控件属性对象属性值ToolBarMenuAppearance0-FlatToolBarMenuBorderStyle0-NoneToolBarMenuStyle0-standard(3)将ToolBarMenu控件与ImageMenu控件联系起来,在ToolBarMenu控件中添加10个按钮,并将ImageMenu控件中的图片与按钮相对应。在ToolBarMenu控件的Init事件下添加如下代码:this.imagelist=thisform.imagemenuthis.disabledimagelist=thisform.imagemenuthis.hotimagelist=thisform.imagemenuFOR m=1 TO 10mnuname="mnu"+alltrim(str(m)this.buttons.add(,mnuname,'',0,m)ENDFOR(4)在ToolBarMenu控件的ButtonClick事件下添加如下代码:* ActiveX 控件事件 *LPARAMETERS buttonDO CASE CASE button.index=1DO mnus系统管理.mprCASE button.index=2DO mnus销售管理.mprCASE button.index=3DO mnus库存管理.mprCASE button.index=4DO mnus基础信息.mprCASE button.index=5DO mnus配送管理.mprCASE button.index=6DO mnus往来管理.mprCASE button.index=7DO mnus查询管理.mprCASE button.index=8DO mnus报表管理.mprCASE button.index=9DO mnus决策管理.mprCASE button.index=10DO mnus维护管理.mprENDCASE3创建工具栏本程序的工具栏中共有12个按钮,分别是订单管理、销售管理、配送申请、配送开票、配送结款、入库管理、库存查询、商品信息管理、商品销售查询、商品销售排行、日销售报表、数据备份。创建工具栏的方法与创建程序菜单类似,也是通过ToolBar控件与ImageList控件来完成的。(1)在表单中添加一个ToolBar控件,更改其重要属性如表2所示。表2 更改ToolBar控件属性对象属性值ToolBarAppearance0-FlatToolBarBorderStyle0-NoneToolBarStyle0-standard(2)将ToolBar控件与ImageList控件联系起来,在ToolBar控件中添加12个按钮,并将ImageMenu控件中的图片与按钮相对应。代码如下:*增加快捷工具栏按钮thisform.toolbar.imagelist=thisform.imagelistthisform.toolbar.disabledimagelist=thisform.imagelistthisform.toolbar.buttons.add(,'bar1','',3,0)thisform.toolbar.buttons.add(,'DD','',1)thisform.toolbar.buttons.add(,'xs','',2)thisform.toolbar.buttons.add(,'bar2','',3,0)thisform.toolbar.buttons.add(,'sq','',3)thisform.toolbar.buttons.add(,'kp','',4)thisform.toolbar.buttons.add(,'jz','',5)thisform.toolbar.buttons.add(,'bar3','',3,0)thisform.toolbar.buttons.add(,'rk','',6)thisform.toolbar.buttons.add(,'cx','',7)thisform.toolbar.buttons.add(,'bar4','',3,0)thisform.toolbar.buttons.add(,'xx','',8)thisform.toolbar.buttons.add(,'tj','',9)thisform.toolbar.buttons.add(,'bb','',10)thisform.toolbar.buttons.add(,'bar5','',3,0)thisform.toolbar.buttons.add(,'ph','',11)thisform.toolbar.buttons.add(,'bar6','',3,0)thisform.toolbar.buttons.add(,'bf','',12)thisform.toolbar.buttons.add(,'bar7','',3,0)thisform.toolbar.buttons(2).tooltiptext="订单管理"thisform.toolbar.buttons(3).tooltiptext="销售管理"thisform.toolbar.buttons(5).tooltiptext="配送申请"thisform.toolbar.buttons(6).tooltiptext="配送开票"thisform.toolbar.buttons(7).tooltiptext="配送结账"thisform.toolbar.buttons(9).tooltiptext="入库管理"thisform.toolbar.buttons(10).tooltiptext="库存查询"thisform.toolbar.buttons(12).tooltiptext="商品信息管理"thisform.toolbar.buttons(13).tooltiptext="商品销售查询"thisform.toolbar.buttons(14).tooltiptext="商品销售排行"thisform.toolbar.buttons(16).tooltiptext="日销售报表"thisform.toolbar.buttons(18).tooltiptext="数据备份"FOR m=1 TO 18IF empty(thisform.toolbar.buttons(m).tooltiptext)=.f.blName=thisform.rainfunction1.htop(;alltrim(thisform.toolbar.buttons(m).tooltiptext)IF &blname. =.f.thisform.toolbar.buttons(m).enabled=.f.ENDIFENDIFENDFOR(3)调整ToolBar控件的位置,在ToolBar控件下方添加一张图片,作为工具按钮的显示区域。(4)添加一个Container控件,作为设置“超期应收应付款预警功能”的复选按钮区域。在此容器控件中添加一个Shape控件,更改其属性,如表3所示。表3 更改Shape控件属性对象属性值Container.Shape1BorderStyle0-透明Container.Shape1Curvature90(5)在Container容器中添加一个Label控件和一个Check控件,将Check控件的Caption属性更改为“超期应收应付款预警”。(6)在ToolBar控件的ButtonClick事件下添加如下代码:* ActiveX 控件事件 *LPARAMETERS buttonDO CASECASE button.index=2DO FROM formsfrm订单CASE button.index=3DO FROM formsfrm销售管理CASE button.index=5DO FROM formsfrm配送申请CASE button.index=6DO FROM formsfrm配送开票CASE button.index=7DO FROM formsfrm配送结款CASE button.index=9DO FROM formsfrm入库管理CASE button.index=10DO FROM formsfrm库存查询CASE button.index=12DO FROM formsfrm商品信息CASE button.index=13DO FROM formsfrm商品销售查询CASE button.index=14DO FROM formsfrm商品销售排行CASE button.index=16DO FROM formsfrm日报表CASE button.index=18DO FROM formsfrm数据备份ENDCASE4创建状态栏(1)在表单中添加一个StatusBar控件,并在该控件上单击鼠标右键,在弹出的快捷菜单中选择“SBarCtrl properties”菜单项,将打开“SBarCtrl属性”对话框。(2)选择“Panels”页,单击“Insert Panel”按钮,向StatusBar控件中添加一个Panels对象,设置此Panels对象的宽度为“180”,如图3所示。(3)按照上面的方法,再为StatusBar控件添加4个Panels对象,它们的宽度分别为320、100、100、100。图3 SBarCtrl属性对话框4.2 系统登录界面设计为了保证应用程序的安全,通常要设计系统登录表单验证用户是否合法。只有合法的用户才可进入系统。系统登录模块运行结果。如图4所示。图4 系统登录模块运行结果1表单设计(1)新建一个表单,命名为Frm登录。(2)向表单内添加Label控件、ListView控件、ImageList控件、Text控件、Command控件、Container控件、FormIn类控件、LockDateBase类控件。(3)重要控件的属性设置如表4所示。表4 重要控件及属性对象属性值Form1AutoCenter.T.Form1ShowWindows2-作为顶层表单ListView1BackColor2代码设计在表单的 Init 事件下添加如下代码:PUBLIC noSET SAFT OFFno=0SELE 操作员信息表thisform.listview.view=0thisform.listview.icons=thisform.imagelist.objectIF reccount()<>0FOR m=1 TO reccount()SELE 操作员信息表GOTO m=thisform.listview.listitems.add(,操作员信息表.用户名,操作员信息表.头像)ENDFORELSE=thisform.listview.listitems.add(,"超级管理员",rand(-11)*12)ENDIF在表单的Unload事件下添加如下代码:QUIT在“登录”按钮的Click事件下添加如下代码:IF alltrim(thisform.text1.value)="超级管理员"gly="超级管理员"thisform.top=-1100thisform.visible=.f.DO FROM formsfrmmainELSESELECT * FROM 操作员信息表 WHERE 用户名=alltrim(thisform.text3.value) ;INTO CURSOR lsbIF alltrim(lsb.密码)=alltrim(thisform.text2.value)gly=lsb.编号thisform.top=-1100thisform.visible=.f.DO FROM formsfrmmainELSEno=no+1IF no>=3 messagebox("您输入密码不正确!”,16,”系统提示")thisform.Lockdatebase1.lock(sys(5)+sys(2003)+"dataDatabase.dbc","正在加密,请稍后.")_screen.visible=.t._screen.top=0thisform.releaseELSEmessagebox("您输入的密码不正确!请注意大小写!",16,"系统提示")thisform.text2.value=""thisform.listview.setfocusENDIFENDIFENDIF在“密码”文本框的KeyPress事件下添加如下代码:IF nkeycode=13 mand1.clickENDIF在Listview控件的KeyPress事件下添加如下代码:IF keyascii=13this.clickENDIF在ListView控件的Click事件下添加如下代码:thisform.text1.value=thisform.listview.selecteditem.textselect * from 操作员信息表 where 用户名=alltrim(thisform.listview.selecteditem.text) into cursor lsb_czythisform.text3.value=thisform.listview.selecteditem.textthisform.text1.value=lsb_czy.编号thisform.text2.setfocus在“退出”按钮的Click事件下添加如下代码:thisform.Lockdatebase1.lock(sys(5)+sys(2003)+"datadatabase.dbc","正在加密,请稍后.")IF file(sys(5)+sys(2003)+"Setup.tmp")=.t.DELE FILE (sys(5)+sys(2003)+"Setup.tmp")ENDIF_screen.visible=.t._screen.top=0thisform.release为了保证应用程序的安全,通常要设计系统登录表单验证用户是否合法。只有合法的用户才可进入系统。系统登录模块运行结果。如图5所示。图5 系统登录模块运行结果1表单设计(1)新建一个表单,命名为Frm登录。(2)向表单内添加Label控件、ListView控件、ImageList控件、Text控件、Command控件、Container控件、FormIn类控件、LockDateBase类控件。(3)重要控件的属性设置如表5所示。表5 重要控件及属性对象属性值Form1AutoCenter.T.Form1ShowWindows2-作为顶层表单ListView1BackColor2代码设计在表单的 Init 事件下添加如下代码:PUBLIC noSET SAFT OFFno=0SELE 操作员信息表thisform.listview.view=0thisform.listview.icons=thisform.imagelist.objectIF reccount()<>0FOR m=1 TO reccount()SELE 操作员信息表GOTO m=thisform.listview.listitems.add(,操作员信息表.用户名,操作员信息表.头像)ENDFORELSE=thisform.listview.listitems.add(,"超级管理员",rand(-11)*12)ENDIF在表单的Unload事件下添加如下代码:QUIT在“登录”按钮的Click事件下添加如下代码:IF alltrim(thisform.text1.value)="超级管理员"gly="超级管理员"thisform.top=-1100thisform.visible=.f.DO FROM formsfrmmainELSESELECT * FROM 操作员信息表 WHERE 用户名=alltrim(thisform.text3.value) ;INTO CURSOR lsbIF alltrim(lsb.密码)=alltrim(thisform.text2.value)gly=lsb.编号thisform.top=-1100thisform.visible=.f.DO FROM formsfrmmainELSEno=no+1IF no>=3 messagebox("您输入密码不正确!”,16,”系统提示")thisform.Lockdatebase1.lock(sys(5)+sys(2003)+"dataDatabase.dbc","正在加密,请稍后.")_screen.visible=.t._screen.top=0thisform.releaseELSEmessagebox("您输入的密码不正确!请注意大小写!",16,"系统提示")thisform.text2.value=""thisform.listview.setfocusENDIFENDIFENDIF在“密码”文本框的KeyPress事件下添加如下代码:IF nkeycode=13 mand1.clickENDIF在Listview控件的KeyPress事件下添加如下代码:IF keyascii=13this.clickENDIF在ListView控件的Click事件下添加如下代码:thisform.text1.value=thisform.listview.selecteditem.textselect * from 操作员信息表 where 用户名=alltrim(thisform.listview.selecteditem.text) into cursor lsb_czythisform.text3.value=thisform.listview.selecteditem.textthisform.text1.value=lsb_czy.编号thisform.text2.setfocus在“退出”按钮的Click事件下添加如下代码:thisform.Lockdatebase1.lock(sys(5)+sys(2003)+"datadatabase.dbc","正在加密,请稍后.")IF file(sys(5)+sys(2003)+"Setup.tmp")=.t.DELE FILE (sys(5)+sys(2003)+"Setup.tmp")ENDIF_screen.visible=.t._screen.top=0thisform.release4.3 商品信息管理模块设计商品信息管理模块主要用于进行商品基础信息的管理,通过此模块可以对商品进行添加、修改、删除、保存等相关功能的操作。商品信息模块运行结果如图6所示。图6 商品信息模块运行结果1表单设计(1)在“通用进销存管理系统”项目文件中添加一个表单,命名为Frm商品信息。(2)向表单内添加自制类控件Back、Line控件、Label控件、Picture控件、Container控件、Combo控件、OptionGroup控件、Text控件、Spinner控件、LocateButton控件、Grid控件和OftenButton类控件。(3)重要控件的属性设置如表6所示。表6 重要控件及属性对象属性值Form1AutoCenter.T.Form1ShowWindows2-作为顶层表单OftenButtons1RecordSource商品信息表LocateButtons1RecordSource商品信息表Grid1RecordSource商品信息表Spinner1SpecialEffect1-平面OptionGroup1.Option1Style1-图形Form1AutoCenter.T.2代码设计在表单的Resee方法程序下添加如下代码:SELE 商品信息表thisform.text1.value=商品信息表.编号thisform.text2.value=商品信息表.名称thisform.text3.value=商品信息表.简称thisform.text4.value=商品信息表.规格thisform.text5.value=商品信息表.计量单位thisform.text6.value=商品信息表.产地thisform.text7.value=商品信息表.出厂日期thisform.text8.value=商品信息表.保质期thisform.text9.value=商品信息表.进价thisform.text10.value=商品信息表.批发价thisform.text11.value=商品信息表.零售价thisform.text12.value=商品信息表.备注bo1.displayvalue=thisform.rainfunction1.;numbertoname("供应商信息表","全称",商品信息表.供应商编号,1) &&取出供应商名称SELE 商品信息表thisform.label24.caption=padl(alltrim(str(reccount(),5,"0")thisform.spinner1.Spinnerhighvalue=reccount()thisform.spinner1.value=recno()SELE 商品信息表在表单的Init事件中添加如下代码:SET DELE ONthisform.resee在表单的Unload事件中添加如下代码:CLOSE ALL databaseUSE data商品信息表 EXCLPACKUSEUSE data库存信息表 EXCLPACKUSE在“名称”文本框的InterActiveChange事件下添加如下代码:thisform.text3.value=lower(thisform.rainfunction1.htop(this.value)在“名称”文本框的Click事件下添加如下代码:thisform.text3.value=thisform.rainfunction1.htop(this.value)在Locatebuttons1控件的_FirstButtonClick方法程序下添加如下代码:SELE 商品信息表thisform.resee在Locatebuttons1控件的 _LastButtonClick 方法程序下添加如下代码:SELE 商品信息表thisform.resee在Locatebuttons1控件的_NextButtonClick方法程序下添加如下代码:SELE 商品信息表thisform.resee在Locatebuttons1控件的_PreviousButtonClick方法程序下添加如下代码:SELE 商品信息表thisform.resee在Oftenbuttons1控件的_SaveButtonClick方法程序下添加如下代码:DIME txt(13),get(9)*存入信息SELE 商品信息表thisrecno=recno()FOR m=1 TO 6txtname="text"+alltrim(str(m) txt(m)=alltrim(thisform.&txtname.value) &&将字符型数据存入数组ENDFORFOR m=7 TO 11txtname="text"+alltrim(str(m)txt(m)=thisform.&txtname.value &&将数值及日期型数据存入数组ENDFORtxt(12)=alltrim(thisform.text12.value)txt(13)=thisform.rainfunction1.numbertoname("供应商信息表","全称",;alltrim(bo1.displayvalue),0)