企业销售管理系统
引 言
本论文主要介绍的是企事业使用的销售管理系统的整个设计。
随着计算机技术的不断发展,计算机应用于各大领域,并给人们的生活带来了极大的便利。以往企业销售管理由于缺乏适当的软件而给其工作带来了很多不便.本论文所介绍的便是一个企业销售管理系统,以方便其在商品销售管理中的工作任务。
该系统适用于企业销售管理,其功能主要分为五大类:
系统初始化;客户信息管理、销售信息管理、增删用户等,该系统性能力求易于使用,具有较高的扩展性和可维护性。
整个系统的开发过程严格遵循软件工程的要求,做到模块化分析、模块化设计和代码编写的模块化。
1。系统需求分析
1。1现行业务系统描述
在企业,销售管理工作是非常重要的一项工作,它可以显示整个企业的销售量,销售管
理等等。以前都是人工进行操作。随着企业规模扩大,销售处的销售管理工作量大大加重.随着计算机应用的发展,销售工作者急切希望能够将大部分繁琐的工作交由计算机的处理,已减轻人工的压力并提高工作效率。而计算机的普及更加快了销售管理系统的产生.
因此,使用现在的新技术,开发出适应新的需求的新系统的任务刻不容缓。
1。2业务流程分析
销售管理系统是一个面向企业销售管理,为其提供服务的综合信息管理系统。销售管理人员通过本系统完成相关的日常工作,这些工作也是平常较为繁重的工作。商品信息、销售信息和客户信息等情况都记录在销售管理系统里进行管理.
由销售人员在档案更新中完成对运行销售系统所需的基本数据的维护。包括这些信息的增、修、改等,变动都将在这进行操作。
1。3现行系统存在的主要问题分析
现行系统的主要问题归纳起来主要有,单机单用户系统,随着网络的发展,同时销售管理系统中信息的使用者大大增加,原有的单机单用户系统已远远不能满足需要。同时,原有的数据库也不支持多用户的网络运行环境。
1。4提出可能的解决方案
1
鉴于目前企业对销售管理系统的需求与实际情况,新系统方案的重点放在系统的可扩展性上,为了实现这一设计,新系统应具备以下几方面的要求:
1。新系统采用Visual Foxpro6。0开发成功,充分利用该开发程序的优势,提高了工作效率。
2.新系统从设计到实现都应遵循模块化,是用一致的接口进行信息的传递与模块调用。模块的划分应尽量符合实际业务的划分,以保证以后新模块的加入尽可能少的影响现有功能模块的运行。
3.新系统所具有的特性:
通用性:用户可根据本单位的需求灵活设置数据库结构,可满足不同层次,不同性质,不同业务工作的需求.
1。5可行性分析与决策
对于新系统设计的几个关键技术的可行性分析如下,
1。技术可行性
1)系统的软件可以使用在WIN98、WIN2000、WINXP这些目前主流的操作系统上,且容易使用。
2)系统的数据库支持,本系统彩面向对象的VF6。0开发而成,友好的界面,简易的操作。工作人员只有稍加指导就可以熟练使用。
3)结论:本系统信息量不算太大,实时程度要求不高,对软硬件要求比较简单,可以进行开发.
2。 经济可行性
1)本系统只需一台计算机,配置奔腾III以上,256MB。
2)效益分析:运用本系统后,可大大提高工作效率和工作质量,减少人工操作的一些失误。
3)本系统投入费用不高。
3. 运行可行性
根据任务要求分析,此设计题目可以通过用Visual FoxPro 6。0软件作为开发工具来完成,利用Visual FoPro 6。0软件制作一个数据库的销售管理系统,这个系统可以很好的实现任务要求中所提出的各项功能指标,能够实现数据管理的自动化,大大提高工作效率。
综上所述,新系统的设计与开发在技术上和硬件设备上的条件都是满足的,新系统的开发是可行的.
2
2。系统的实现
2.1系统开发环境
系统开发环境包括硬件平台和软件平台两种。
硬件平台是指开发与运行所需要的硬件环境,主要包括计算机机型及硬件配置。由于本系统是一个小型的MIS管理系统,因此对计算机硬件的要求不高,比较经济,只要配备有PII处理器(或以上)、64M内存(或以上)、10G硬盘(或以上)的普通微机即可顺利运行。
本系统在单机上运行。
2.2系统测试
在MIS开发过程中采用了多种措施保证软件质量,但是实际开发过程中还是不可避免地会产生差错,系统中通常可能隐藏着错误和缺陷,示经周密测试的系统投入运行,将会造成难以想像的后果,因此系统测试是MIS开发过程中为保证软件质量必须进行的工作。大量统计资料表明,系统测试的工作量往往占MIS开发总工作量的40%以上.因此,我们必须重视测试工作。
系统的优点
1。流程符合企业内部销售管理的要求。
2。界面友好,输入信息方便.
系统的缺点
1.由于时间的原因,系统还不是很完善,应该把VF的背景框去掉.
2.网络功能欠缺。本系统只能在单机上运行,不能实现网络连接,资源共享。将来可能提出的要求
1.网络化.
系统能支持网络数据传输,数据共享;数据远程访问能自动采取一定的加锁策略;远 程报表处理。
2.多媒体化。
系统能够支持语音输入。
2.3 系统运行与维护
系统的运行:
1。初始数据的输入
3
本系统的输入采用鼠标和键盘相结合的输入方法。
(1)数据文件的维护:指的是按照用户的要求对数据文件进行不定期的修改。 (2)代码的维护:随着系统的发展和变化,可能会出现旧代码不能适应新要求的问
题,因此,有必要变更代码,予以维护。
(3)硬件的维护:指的是对系统所使用的设备进行维护.
本系统的日常维护由人事的专人来负责,如果出现一些不能解决的问题,则由开发者
来负责。
3。系统分析
3。 1数据流分析
由于本系统的功能强大,功能模块较多,下面仅以销售管理模块为例来进行编制。
欢迎界面
登录界面
销售管理系统主界面
产品信息管客户信息管销售信息管修改密增删用帮助
理 理 理 码 户
关于本更改记更改用新增和客户信息查销售信息浏
系统的录 户密码 删除用询 览 追加记销售报表打客户信息修介 绍 户 录 印 改 客户信息浏删除记更改记录
览 录 删除客户信浏览记添加新记录
息 录 添加新客户
3。 2模块功能介绍
销售管理系统的主要模块
1。欢迎界面
启动系统后出现的是欢迎界面,
2。登录模块
要求要输入正确的用户名和密码才能进入本系统。登录分为权限一级登录和权限二级
4
登录,登录后可进入产品信息管理,客户信息管理,销售信息管理等模块。 3。客户信息管理模块
该模块提供对客户信息的浏览、添加、修改和查询等功能。 4.产品信息管理模块
该模块提供对客户信息的浏览、添加和修改等功能。
5。销售信息管理模块
该模块提供对销售记录的浏览,可以更改,增加,删除信息。还包括对销售记录表的
打印,按某一条件进行报表打印,如:按产品排序打印,按客户排序打印等。 6.增删用户模块
该模块提供对用户添加和删除,在添加用户时可以对用户的登录权限进行设置。 7.修改密码模块
用户可以在此模块中对自己的登录密码进行修改。
4。系统设计
4.1系统中的表
产品信息.dbf(产品号,产品名称,厂商,规格,价格,简介,品牌,型号) 客户信息。dbf(地址,电话号码,客户,客户号,邮编)
销售信息。dbf(产品号,价格,客户号,售出时间,数量)
用户密码。dbf(密码,权限等级,用户名)
4。2表的物理结构
用户密码。dbf
字段名 类型 宽度 小数位 索引类型
密码 字符型 8 0
权限等级 字符型 8 0
用户名 字符型 1 0 唯一
5
产品信息。dbf
字段名 类型 宽度 小数位 索引类型
产品号 字符型 10 0 唯一 产品名称 字符型 10 0
厂商 字符型 10 0
规格 字符型 30 0
价格 数值型 10 0
简介 备注型 4
品牌 字符型 10 0
型号 字符型 10 10
客户信息.dbf
字段名 类型 宽度 小数位 索引类型
地址 字符型 30 0 电话号码 字符型 14 0
客户 字符型 20 0
客户号 字符型 10 0 唯一
邮编 字符型 10 0
销售信息.dbf
字段名 类型 宽度 小数位 索引类型 产品号 字符型 10 0 普通索引 价格 数值型 10 0 客户号 字符型 10 0 普通索引 售出时间 日期型 8 0 数量 数值型 10 0
6
5。系统的详细设计
5.1系统欢迎界面
欢迎界面的模块
Form1的Load事件
tt=0
Form1的Click事件
do form check Thisform。release Form1的KeyPress事件
do form check Thisform。release Timer1的Init事件
public tt
tt=0
Timer1的Timer事件
tt=tt+1
if tt=3 then
7
do form check
Thisform.release
Endif
5.2系统登录界面
“确定”按钮的Click事件
open database 销售管理
use 用户密码。dbf share
i=i+1
if i<=3
if empty(ThisForm。Text1.value)。or.empty(ThisForm.Text2.value)
messagebox(\"用户名或密码不能为空~\",48,”提示”)
else
locate for 用户密码.用户名=alltrim(ThisForm。Text1。value)。and。用户密码。密码;&&
定位到条件满足的第一条记录
=alltrim(ThisForm。Text2.value)
if found()
thisform.release
8
set sysmenu off &&禁止程序执行时访问系统菜单
set sysmenu to &&恢复系统菜单
set talk off &&关闭人机对话
set status bar off &&不显示VFP状态条
do form main。scx
return
read events
release all
clear all
else
messagebox(\"用户名或密码错误,请重输~\",48,\" 提示\")
ThisForm。Text1。gotfocus
endif
endif
else
messagebox(”三次无效输入,系统将被关闭~”,48,\"警告\")
ThisForm。release
quit
endif
“退出”的Click事件
ThisForm。release
close all
clear event
5。3系统主界面
Form1的Init事件
Use用户密码
public popedom
popedom=用户密码.权限等级
if popedom=\"1\" then
ThisForm.Command4.enabled=。t.
9
else
ThisForm.Command4.enabled=。f。
Endif
“产品信息管理”按钮的Click事件
do form product
“退出”按钮的Click事件
ThisForm.release close all
clear event
5.4系统产品信息管理界面
Form1的Click事件
public pno
ThisForm.Grid1。readonly=。t. “显示全部\"按钮的Click事件
ThisForm.Grid1。recordsourcetype=1
ThisForm。Grid1.recordsource=”产品信息\"
ThisForm.Grid1。refresh
10
“添加记录\"的Click事件
ThisForm。Grid1。refresh
append blank
thisform。refresh
“更改数据”的Click事件
ThisForm.Grid1.recordsourcetype=1
ThisForm.Grid1.readonly=。f。 ThisForm.Grid1.allowaddnew=.t. ThisForm。Grid1。refresh
“删除记录”的Click事件
delete
pack
ThisForm。Grid1。recordsourcetype=1 ThisForm。Grid1。recordsource=”产品信息\"
ThisForm。Grid1.refresh
“确定”的Click事件
ThisForm.Grid1.readonly=。t.
11
5。5系统客户信息管理界面
“第一个记录”的Click事件
go top
This。enabled=。f。
Thisform.pageframe1。page1。commandgroup1.Command2.enabled=。f. Thisform。pageframe1。page1。commandgroup1.Command3.enabled=.t. Thisform.pageframe1。page1。commandgroup1.Command4。enabled=。t。 Thisform.refresh
“前一个记录”的Click事件
skip -1
if bof()
messagebox(”已是第一个记录”,48,\"提示信息\")
Thisform。pageframe1.page1.commandgroup1.Command1。enabled=。f。
Thisform。pageframe1.page1.commandgroup1。Command2。enabled=。f.
else
Thisform。pageframe1.page1.commandgroup1.Command1。enabled=.t.
Thisform。pageframe1.page1。commandgroup1.Command2。enabled=。t。
12
endif
Thisform.pageframe1。page1.commandgroup1。Command3。enabled=.t.
Thisform。pageframe1.page1.commandgroup1。Command4。enabled=.t.
thisform。refresh
“后一个记录”的Click事件
skip
if eof()
messagebox(\"已是最后一个记录”,48,\"提示信息”)
Thisform。pageframe1.page1。commandgroup1。Command3.enabled=.f。
Thisform。pageframe1.page1.commandgroup1。Command4。enabled=。f.
else
Thisform。pageframe1。page1.commandgroup1.Command3。enabled=.t.
Thisform。pageframe1.page1。commandgroup1。Command4.enabled=。t。
endif
Thisform.pageframe1。page1。commandgroup1。Command1。enabled=。t.
Thisform。pageframe1。page1。commandgroup1.Command2.enabled=。t。
thisform.refresh
“最后一个记录”的Click事件
go bottom
Thisform。pageframe1.page1.commandgroup1.Command1。enabled=.t。
Thisform。pageframe1.page1。commandgroup1。Command2.enabled=。t.
Thisform。pageframe1。page1.commandgroup1。Command3.enabled=.f。
Thisform.pageframe1.page1.commandgroup1。Command4.enabled=。f.
thisform.refresh
“添加新记录”的Click事件
Thisform.pageframe1.page1。Commandgroup1。enabled=.f. Thisform。pageframe1。page1.Command2.enabled=.f。
Thisform。pageframe1.page1。Command3。enabled=。f。
Thisform.pageframe1。page1.Command4.enabled=.t。
if Thisform。pageframe1.page1.Command1.caption=”添加新记录”
13
Thisform。pageframe1。page1.text1.enabled=。t。
Thisform。pageframe1.page1.text2。enabled=。t.
Thisform。pageframe1.page1.text3。enabled=。t。
Thisform。pageframe1。page1.text4。enabled=。t。
Thisform.pageframe1.page1.text5.enabled=.t.
append blank
Thisform。pageframe1.page1。text1.value=\"”
Thisform.pageframe1。page1。text2.value=\"”
Thisform。pageframe1。page1.text3。value=”\"
Thisform。pageframe1.page1。text4.value=”\"
Thisform。pageframe1。page1。text5.value=\"”
Thisform。pageframe1.page1.Command1.caption=’添加确认’
Thisform。pageframe1.page1.Command1.refresh
else
Thisform。pageframe1。page1。Command1。caption=’添加新记录'
Thisform。pageframe1。page1。refresh
Thisform.pageframe1.page1.Commandgroup1.enabled=.t。
Thisform.pageframe1.page1。Command2。enabled=。t。
Thisform。pageframe1。page1.Command3。enabled=.t。
Thisform。pageframe1.page1。Command4。enabled=。f.
Thisform。pageframe1。page1。text1.enabled=.f.
Thisform.pageframe1。page1。text2。enabled=。f。
Thisform.pageframe1.page1.text3.enabled=。f.
Thisform。pageframe1.page1。text4。enabled=.f.
Thisform.pageframe1。page1。text5.enabled=。f。
Endif
“更改此记录”的Click事件
Thisform.pageframe1。page1.commandgroup1.enabled=.f. Thisform。pageframe1。page1.command1.enabled=。f。 Thisform。pageframe1。page1.command3。enabled=。f. Thisform.pageframe1.page1.command4。enabled=。t.
14
if Thisform.pageframe1.page1。command2。caption=’更改此记录’
Thisform.pageframe1。page1.text1.enabled=。t.
Thisform.pageframe1.page1.text2.enabled=.t.
Thisform.pageframe1。page1.text3。enabled=。t.
Thisform.pageframe1.page1.text4.enabled=.t.
Thisform.pageframe1。page1。text5。enabled=.t.
Thisform.pageframe1.page1。command2.caption=’更改确认’
Thisform.pageframe1.page1.command2。refresh
else
Thisform.pageframe1。page1.command2.caption=’更改此记录’
Thisform。pageframe1。page1。refresh
Thisform.pageframe1。page1.commandgroup1。enabled=。t。
Thisform。pageframe1。page1。command1。enabled=。t。
Thisform.pageframe1。page1。command3。enabled=。t.
Thisform。pageframe1.page1.command4.enabled=。f。
Thisform.pageframe1.page1.text1.enabled=。f。
Thisform。pageframe1.page1.text2.enabled=。f.
Thisform。pageframe1.page1.text3。enabled=。f。
Thisform。pageframe1.page1。text4。enabled=.f.
Thisform。pageframe1.page1.text5.enabled=.f。
Endif
“删除此记录”的Click事件
answer=messagebox(”确定删除此记录吗,”,33,\"确定删除\")
if answer=1 then
delete
pack
thisform.refresh
endif
“查询”的Click事件
select 客户信息
go top
15
locate for 客户=alltrim(thisform.pageframe1.page2.text6.value)
thisform.pageframe1.page2。text1.value=客户号
thisform.pageframe1。page2.text2。value=客户
thisform.pageframe1。page2。text3。value=电话号码
thisform。pageframe1。page2.text4.value=地址
thisform.pageframe1.page2。text5。value=邮编
thisform。refresh
if .not。found()
messagebox('没有找到所要的记录~',48,’没有找到记录’)
endif
5。6系统销售信息管理界面
“预览”的Click事件
if thisform.pageframe1.page2。optiongroup1。option1。value=1 then
report form prit1 preview
else
if thisform.pageframe1。page2.optiongroup1.option2。value=1 then
report form prit2 preview
16
else
report form prit3 preview
endif
endif
“打印”的Click事件
if thisform.pageframe1。page2.optiongroup1.option1。value=1 then
report form prit1 to printer prompt
else
if thisform.pageframe1.page2。optiongroup1。option2.value=1 then
report form prit2 to printer prompt
else
report form prit3 to printer prompt
endif
endif
5。7系统增删用户界面
“添加用户\"的“确定”的Click事件
name=alltrim(thisform.pageframe1。page1。text1。value) password=alltrim
(
thisform
。
pageframe1.page1.text2.value)
popedom=alltrim(thisform.pageframe1。page1。text4.value) if
alltrim(thisform.pageframe1。page1.text2.value)=alltrim(thisform。pageframe1。pa
ge1。text3.value)
append blank
replace 用户名 with name
replace 密码 with password
17
replace 权限等级 with popedom
messagebox(”添加用户成功\",48,\"添加成功\")
thisform.pageframe1。page1。text1.value=\"\"
thisform.pageframe1。page1。text2.value=\"\"
thisform.pageframe1.page1.text3。value=\"\"
thisform。pageframe1。page1.text4。value=\"”
else
messagebox(\"密码错误,请重新输入”,48,”添加失败”)
thisform。pageframe1.page1。text2.value=\"”
thisform.pageframe1.page1.text3。value=”\"
endif
“删除用户”的“确定”的Click事件
name=alltrim(thisform.pageframe1。page2.combo1yn=messagebox(”确定删除,”,36,\"确定删除\")
if yn=6 then
value)
。
delete from 用户密码 where 用户名=name
pack
messagebox(\"删除用户成功”,36,”删除成功”)
thisform。pageframe1.page2。combo1.value=\"\"
18
endif
5。8系统修改密码界面
“确定”的Click事件
use 用户密码
name=alltrim(thisform.text1。value)
password=alltrim(thisform。text2.value)
set order to 用户名
seek name
if alltrim(用户密码。用户名)=name
if alltrim(用户密码.密码)=password
popedom=用户密码.权限等级
if alltrim(thisform.text3。value)=alltrim(thisform.text4.value)
password=alltrim(thisform。text3.value)
name=alltrim(thisform。text1。value)
update 用户密码 set 密码=password where 用户名=name
messagebox(\"密码修改成功\",32,\"信息窗口\")
thisform。release
use
else
19
messagebox(\"输入有误,请重新输入新密码\信息窗口\")
thisform。text2.value=”\"
thisform.text3。value=”\"
thisform。text4。value=”\"
endif
else
logtime=logtime+1
answer=messagebox(”密码有误,请重新输入密码\",36,”登录失败”)
do case
case answer=6
thisform.text2.value=””
thisform。text3。value=\"”
thisform。text4。value=\"\"
case answer=7
messagebox(\"登录失败\登录失败”)
thisform。release
main.release
endcase
if logtime=3
thisform.release
main。release
close all
clear event
endif
endif
else
logtime=logtime+1
answer=messagebox(”密码错误,请重新输入密码\,\"登录失败”)
do case
case answer=6
thisform。text2。value=\"”
20
thisform.text3。value=””
thisform.text4.value=\"\"
case answer=7
messagebox(”登录失败”,36,”登录失败thisform。release
main.release
close all
clear event
endcase
if logtime=3
\")
thisform。release
main。release
close all
clear event
endif
endif
5。9系统帮助界面
21
结 论
通过两个多月的实地调研与学习, 终于完成了销售管理系统的分析与设计工作.在做毕业设计之前,我对销售管理系统的认识还处在理论知识的水平上,根本就没有实际开发软件的经验。在对这个系统进行分析和设计的过程中,我碰到了很多问题,我也学会了许多知识。
致 谢
在这次的毕业设计中,让我深深地体会到进行软件开发不是一件简单的事情,它需要设计者具有全面的专业知识,慎密的思维、严谨的工作态度以及较高的分析问题、解决问题的能力.在分析问题、解决问题时显得不够严密、完善,还需要在以后的工作和学习中不断得到提高。最后,我要衷心感谢老师在我的设计过程中给予我的极大帮助,使我能够及时、顺利地完成这次的毕业设计。同时,也要感谢我的老师和同学们在设计过程中给予我的支持和帮助。
参考文献
1、蔡卓毅,林盛雄,林羽扬,黄竺等编著 中文 VisualFoxPro6.0数据库程序设计与实
例,冶金工业出版社,2003年
2、肖金华 招华全等编著 VisualFoxPro9。0程序设计与实例教程,冶金工业出版社 2006 3、毛一心。中文版Visual FoxPro6。0应用及实例集锦.北京:人民邮电出版社,1999 4、刘淳,唐伟奇。FoxPro Windows 程序设计。北京.中国水利水电出版社,2000
22
因篇幅问题不能全部显示,请点此查看更多更全内容