3毕业论文.docx
- 文档编号:4126277
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:21
- 大小:474.81KB
3毕业论文.docx
《3毕业论文.docx》由会员分享,可在线阅读,更多相关《3毕业论文.docx(21页珍藏版)》请在冰豆网上搜索。
3毕业论文
河北科技师范学院
毕业论文(设计)
题目:
基于VBA的商场管理系统设计与实现
学生姓名:
李少杰
指导教师:
李玉香
系(院)别:
数学与信息科技学院
专业、班级:
网络工程0602
完成时间:
2010年5月25日
河北科技师范学院教务处制
目录
摘要1
引言1
1关于计算机信息管理系统与VBA2
1.1计算机管理信息系统的发展状况2
1.2关于VBA2
2总体设计2
2.1设计思想2
2.2商场销售管理系统结构2
2.3商场销售管理系统数据库的设置3
3详细设计与实现4
3.1系统主界面4
3.2进货数据录入及进货报表6
3.3销售数据录入及进货报表8
3.4商品查询和库存记录12
4系统测试和维护14
4.1系统测试的原则和方法14
总结15
致谢17
参考文献18
Abstract19
基于VBA的商场销售管理系统设计与实现
河北科技师范学院数学与信息科技学院网络工程专业2006级 李少杰
指导教师:
李玉香
摘要
商场销售管理系统,其开发主要包括后台表之间关系的建立以及前端宏的开发两个方面。
对于前者要求建立起数据一致性和完整性强、数据安全性好的数据库。
而对于后者则要求具备应用程序功能完备,易使用等特点。
目前我国的办公自动化发展迅速,随着社会的发展和经济时代的到来,还有商场规模的扩大,产品种类的繁多,使得商场销售管理是商场管理中异常重要的一个环节,是整个商场管理管理中的重要一部分,鉴于它的重要性,我们使用VBA作为开发工具,开发出了以VBA为模式的基于Excel的商场销售管理系统。
该系统主要包含商品信息,销售记录,供货记录,存货统计这几个部分,在这几个部分里对数据上进行添加,删除,查询,修改等一系列操作。
关键词:
VBA;表之间的调用;商场销售管理系统
引言
随着无纸化办公的发展,计算机已经完全进入了现代工作中,因为计算机具有准确,稳定,能够存储信息的特点,所以利用计算机进行管理能够使工作得心应手[1]。
在管理工作中,一款好的管理软件已经成为工作中的必须工具。
如何才能获得开发出好的管理软件呢?
首先需要一个好的开发环境,利用VBA进行开发管理系统,其简单,实用,功能强大的特点能够完全胜任这个任务[2],本文对VBA开发管理软件过程中的需求分析、功能模块划分、表与表之间的设计和系统的详细设计进行了描述。
本毕业设计是一个针对商场销售的管理系统。
在考察了商场的日常业务以及参考了其他管理系统后,确定了本系统的需求:
实现这类商场日常业务的信息化以及管理的自动化,解决进货录入、销售录入以及库存统计等大部分琐细的问题。
该系统采用了EXCEL平台,界面友好,操作简单,功能实用,大大的方便用户使用本软件[3]。
同时各个表之间的关系设置明确,减少了出错的可能,确保了数据的正确性、完整性和一致性。
本软件系统使得管理的信息化,减少了人力成本的付出,一定程度上提高了商场管理的效益。
1关于计算机信息管理系统与VBA
1.1计算机管理信息系统的发展状况
在社会经济建设日益发展的形势下,管理工作在发展中出现了工作内容项目不断增多、工作质量要求不断提高、工作量不断增大、工作难度不断增强等新形势和新问题,管理工作的重要系统之一—计算机管理信息系统也面临着发展方向的问题[4]。
树立以应用为主的思想,融合先进的管理技术和管理方法,选择合适的应用平台,构筑能发挥持久效益的计算机管理信息系统,是管理工作的计算机管理信息系统的发展方向[5]。
这样,管理工作才能跟上社会发展步伐,适应新的发展形势,提高管理工作效率,提高管理工作质量和工作水平,高质量地完成管理工作任务[6]。
1.2关于VBA
VisualBasicforApplications(简称VBA)是新一代标准宏语言[7],是基于VisualBasicforWindows发展而来的。
它与传统的宏语言不同,传统的宏语言不具有高级语言的特征,没有面向对象的程序设计概念和方法。
而VBA提供了面向对象的程序设计方法,提供了相当完整的程序设计语言。
VBA易于学习掌握,可以使用宏记录器记录用户的各种操作并将其转换为VBA程序代码。
这样用户可以容易地将日常工作转换为VBA程序代码,使工作自动化[8]。
因此,对于在工作中需要经常使用Office套装软件的用户,学用VBA有助于使工作自动化,提高工作效率。
另外,由于VBA可以直接应用Office套装软件的各项强大功能,所以对于程序设计人员的程序设计和开发更加方便快捷。
2总体设计
2.1设计思想
对于商场来说,货物的处理主要在进货,存货,出货这三个方面上,而且对于每一件商品都是按照进货,存货,出货这个流程进行的。
所以,本管理系统也将按照这个过程全程对货物进行监管。
具体过程如下,当商场购进货物的时候,对货物进行建立档案,记录相关细节如名称、型号、、产地、数量、进价、批价、零售价等。
当货物卖出时再次记录相关内容,其中关于商品信息这部分内容系统将直接调用进货时候的记录,只需记录售卖出的件数以及价格。
利用VBA调用进货,出货这两个表记录的数据,根据公式计算出进货总价、出货总价、商品库存信息等数据。
2.2商场销售管理系统流程
本着结构简单,操作容易的原则,设计其系统主界面如图2.1所示:
图2.1系统主界面
由图可看出,从主界面可以进入各个子界面,但是为了便于子界面之间的切换,将设计一个工具条进行管理操作,这将大大提高系统的工作效率。
其界面如图2.2所示:
图2.2工具条
2.3商场销售管理系统数据库的设置
通过对商场实际运作的考察,确定商场销售管理系统的主要开发内容,确定数据库中表的主要内容,以及表与表之间关系的确立,具体内容看下表。
该系统主要包含商品信息,销售记录,供货记录,存货统计这几个表,在这几个表的基础上进行添加,删除,查询,修改等一系列操作,其中供货记录,销售记录里面商品信息的内容从商品信息这个表中得到,存货统计的内容通过供货记录,和销售记录得到。
图2.3表间关系图
3详细设计与实现
3.1系统主界面
3.1.1界面视图
用户浏览界面分为进货数据录入、进货报表、销售数据录入、销售报表、商品存货查询、销售业绩,商品存货统计,商品明细帐。
参见图2.1
3.1.2界面代码
具体设置信息如下
PrivateSubWorkbook_Open()
Show_Enable_Sheet'显示各工作表
Application.Caption="欢迎使用:
"
DimmybarAsCommandBar,mybutton1AsCommandBarButton
OnErrorResumeNext
Setmybar=Application.CommandBars.Add(Name:
=AppName,Temporary:
=True)
mybar.Position=msoBarFloating
mybar.Left=45'向右移动
mybar.Top=110'向下移动
mybar.Visible=True
mybar.Protection=msoBarNoCustomize
Setmybutton1=mybar.Controls.Add(msoControlButton)
mybutton1.FaceId=720
mybutton1.Style=msoButtonIconAndCaption
mybutton1.Caption="进货"
mybutton1.OnAction="供货单"
mybutton1.Visible=True
Setmybutton1=mybar.Controls.Add(msoControlButton)
mybutton1.FaceId=59
mybutton1.Style=msoButtonIconAndCaption
mybutton1.Caption="销售"
mybutton1.OnAction="销货单"
mybutton1.Visible=True
Setmybutton1=mybar.Controls.Add(msoControlButton)
mybutton1.FaceId=46
mybutton1.Style=msoButtonIconAndCaption
mybutton1.Caption="商品查询"
mybutton1.OnAction="查询"
mybutton1.Visible=True
Setmybutton1=mybar.Controls.Add(msoControlButton)
mybutton1.FaceId=226
mybutton1.Style=msoButtonIconAndCaption
mybutton1.Caption="存货统计"
mybutton1.OnAction="统计"
mybutton1.Visible=True
Setmybutton1=mybar.Controls.Add(msoControlButton)
mybutton1.FaceId=226
'1951
mybutton1.Style=msoButtonIconAndCaption
mybutton1.Caption="进货报表"
mybutton1.OnAction="进货报表"
mybutton1.Visible=True
Setmybutton1=mybar.Controls.Add(msoControlButton)
mybutton1.FaceId=226
'1951
mybutton1.Style=msoButtonIconAndCaption
mybutton1.Caption="销售报表"
mybutton1.OnAction="销售报表"
mybutton1.Visible=True
Setmybutton1=mybar.Controls.Add(msoControlButton)
mybutton1.FaceId=226
'1951
mybutton1.Style=msoButtonIconAndCaption
mybutton1.Caption="销售业绩"
mybutton1.OnAction="销售业绩"
mybutton1.Visible=True
Setmybutton1=mybar.Controls.Add(msoControlButton)
mybutton1.FaceId=226
mybutton1.Style=msoButtonIconAndCaption
mybutton1.Caption="明细账"
mybutton1.OnAction="商品明细账"
mybutton1.Visible=True
Setmybutton1=mybar.Controls.Add(msoControlButton)
mybutton1.FaceId=202
mybutton1.Style=msoButtonIconAndCaption
mybutton1.Caption="返回"
mybutton1.OnAction="返回"
mybutton1.Visible=True
返回
EndSub
以上代码的具体内容就是将Excel里面的单元格设置属性,设置为按钮。
3.2进货数据录入及进货报表
3.2.1进货数据录入及进货报表视图
在这个模块里面可以进行商品信息的录入以及对进货数据的录入,具体界面如图3.1,3.2,所示:
图3.1商品供货录入
图3.2商品信息数据录入
3.2.2进货数据录入及进货报表代码
具体代码如下
代码1
Sub录入商品信息()
ActiveWindow.SmallScrollDown:
=21
Range("B28").Select
EndSub
代码2
Sub读入进货数据()
DimxAsInteger
WithSheets("商品明细账")
x=2
j=7
DoWhileNot(IsEmpty(Sheets("供货").Cells(x,2).value)
IfDateValue(Sheets("供货").Cells(x,1))>=DateValue(.Cells(2,5))And_
DateValue(Sheets("供货").Cells(x,1))<=DateValue(.Cells(2,7))And_
Sheets("供货").Cells(x,2)=.Cells(2,2)Then
.Cells(j,1).NumberFormatLocal="yyyy-m-dh:
mm;@"
.Cells(j,1)=Sheets("供货").Cells(x,1)'日期
.Cells(j,2)=Sheets("供货").Cells(x,11)'供应商
.Cells(j,3)=Sheets("供货").Cells(x,9)'数量
.Cells(j,4).NumberFormatLocal="#,##0.00_"
.Cells(j,4)=Sheets("供货").Cells(x,6)'进价
.Cells(j,5).NumberFormatLocal="#,##0.00_"
.Cells(j,5)=.Cells(j,3)*.Cells(j,4)'金额
j=j+1
EndIf
x=x+1
Loop
EndWith
EndSub
代码3
Sub进货报表()
Sheets("进货报表").Select
Range("C2").Select
EndSub
其代码具体意思就是,现将商品信息录入到一个表中,再调用这个表,索引号就是货号。
进货报表就是将进货信息保存的那个表进行调用。
3.3销售数据录入及销售报表
3.3.1销售数据录入及销售报表视图
这个模块将对商品的销售情况进行录入,具体界面见图3.3
图3.3商品销售录入界面
3.3.2销售数据录入及销售报表代码
如下
代码1
Sub读入销售数据()
DimxAsInteger
WithSheets("商品明细账")
x=2'销货工作表当前数据行
DoWhileNot(IsEmpty(Sheets("销货").Cells(x,2).value))
IfDateValue(Sheets("销货").Cells(x,1))>=DateValue(.Cells(2,5))And_
DateValue(Sheets("销货").Cells(x,1))<=DateValue(.Cells(2,7))And_
Sheets("销货").Cells(x,2)=.Cells(2,2)Then
.Cells(j,1).NumberFormatLocal="yyyy-m-dh:
mm;@"
.Cells(j,1)=Sheets("销货").Cells(x,1)'日期
.Cells(j,2)=Sheets("销货").Cells(x,10)'购货人
.Cells(j,6)=Sheets("销货").Cells(x,5)'数量
.Cells(j,7).NumberFormatLocal="#,##0.00_"
.Cells(j,7)=Sheets("销货").Cells(x,6)'单价
.Cells(j,8).NumberFormatLocal="#,##0.00_"
.Cells(j,8)=Sheets("销货").Cells(x,7)+Sheets("销货").Cells(x,8)'金额
j=j+1
EndIf
x=x+1
Loop
EndWith
EndSub
代码2
Sub生成销售报表a()
DimxAsInteger,jAsInteger,rngTempAsRange
DimintRowAsInteger
SetrngTemp=Sheets("销货").Range("A2").CurrentRegion
rngTemp.SortKey1:
=Sheets("销货").Range("A2"),Order1:
=xlAscending,Header:
=_
xlGuess,OrderCustom:
=1,MatchCase:
=False,Orientation:
=xlTopToBottom,_
SortMethod:
=xlPinYin,DataOption1:
=xlSortNormal
WithSheets("销售报表")
.UnprotectPassword:
="wyh"
intRow=.Range("A4").CurrentRegion.Rows.Count
.Range(.Cells(5,1),.Cells(intRow+4,9)).Select
Selection.EntireRow.Delete
.Range("A5").Select
x=2'销货工作表当前数据行
j=5'销售报表当前数据行
DoWhileNot(IsEmpty(Sheets("销货").Cells(x,2).value))
IfDateValue(Sheets("销货").Cells(x,1))>=DateValue(.Cells(2,3))And_
DateValue(Sheets("销货").Cells(x,1))<=DateValue(.Cells(2,5))Then
.Cells(j,1).NumberFormatLocal="yyyy-m-dh:
mm;@"
.Cells(j,1)=Sheets("销货").Cells(x,1)'日期
.Cells(j,2)=Sheets("销货").Cells(x,2)'货号
.Cells(j,3)=Sheets("销货").Cells(x,3)'名称
.Cells(j,4)=Sheets("销货").Cells(x,4)'型号
.Cells(j,5)=Sheets("销货").Cells(x,5)'数量
.Cells(j,6)=Sheets("销货").Cells(x,6)'单价
.Cells(j,7)=Sheets("销货").Cells(x,7)+Sheets("销货").Cells(x,8)'金额
Sheets("商品查询").Cells(3,4)=Sheets("销货").Cells(x,2)
.Cells(j,8)=Sheets("商品查询").Cells(9,4)'进价
.Cells(j,9)=.Cells(j,7)-.Cells(j,8)'毛利润
j=j+1
EndIf
x=x+1
Loop
.Cells(j,1)="合计"
.Cells(j,7).FormulaR1C1="=SUM(R["&5-j&"]C:
R[-1]C)"
.Cells(j,9).FormulaR1C1="=SUM(R["&5-j&"]C:
R[-1]C)"
.Range(.Cells(5,1),.Cells(j,9)).Select
设置边框
.Select
.Range("A5").Select
.ProtectPassword:
="wyh"
EndWith
EndSub
代码3
Sub生成销售报表()
DimdatStartAsDate,datEndAsDate
IfIsDate(Cells(2,3))Then
datStart=DateValue(Cells(2,3))
Else
MsgBox"日期输入错误"
ExitSub
EndIf
IfIsDate(Cells(2,5))Then
datEnd=DateValue(Cells(2,5))
Else
MsgBox"日期输入错误"
ExitSub
EndIf
IfdatStart>datEndThen
MsgBox"起始日期应小于或等于结束日期"
Else
生成销售报表a
EndIf
EndSub
代码4
Sub销货输入()
DimxAsInteger,iAsInteger,jAsInteger
Call手动计算
Sheets("销货").Select
x=2'从第2行开始
'判断第2列的最后一行(即空行的上一行)
DoWhileNot(IsEmpty(Cells(x,2).value))
x=x+1'在最后一行加一行即为空行
Loop
WithSheets("销货单")
Fori=1To8
IfNotIsEmpty(.Cells(4+i,2))Then
Sheets("销货").Cells(x,1)=.Cells(3,7)'销售时间
Sheets("销货").Cells(x,10)=.Cells(3,3)'购货人
Sheets("销货").Cells(x,11)=.Cells(15,9)'销售人员
Forj=2To9
Sheets("销货").Cells(x,j)=.Cells(4+i,j)
Nextj
x=x+1
EndIf
Nexti
.Range("b5:
b12")=""
.Range("e5:
e12")=""
.Range("h5:
h12")=""
.Cells(15,3)=""
.Cells(3,3)=""
EndWith
Call自动计算
EndSub
3.4商品查询和库存记录
3.4.1商品查询和库存记录视图
这两部分分别通过对商品进货记录以及商品销售记录的比对得出结果,其各自界面如图3.4,3.5所示:
图3.4库存记录界面
图3.5商品查询界面
3.4.2商品查询和库存记录代码
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业论文