客户管理系统.docx
- 文档编号:15477707
- 上传时间:2023-07-04
- 格式:DOCX
- 页数:35
- 大小:29.31KB
客户管理系统.docx
《客户管理系统.docx》由会员分享,可在线阅读,更多相关《客户管理系统.docx(35页珍藏版)》请在冰点文库上搜索。
客户管理系统
客户管理系统
1.客户管理系统简介
1.1背景介绍
当今社会,随着科技的不断发展,计算机已在人们的日常生活和工作领域中日益普及,并且人们对于计算机的应用不再是简单的文字处理和最初的科学计算。
计算机早已涉及到我们生活的各个方面。
利用计算机来进行管理,已成为我们日常工作的需要。
客户是一个公司的主要联系对象,没有了客户,公司就失去了生存的根本。
一直以来,人们用传统的方式来管理客户信息。
人们用纸介质来获取各种需要的信息。
这种管理方式存在效率低、保密性差的缺点。
并且,随着时间的积累,客户的信息越来越多,查找、维护或者更新起来非常的麻烦。
手工管理已经不能满足需求。
这就需要使用现代化的手段来提高管理和服务的水平。
客户管理系统应该为客户和公司提供充足的信息和快捷的查询手段。
使用计算机对客户信息进行管理,具有查询迅速、查询方便、保密性好以及成本低的优点。
这些优点能够极大的提高客户信息的管理效率。
使用计算机来管理信息也是企业管理现代化的标志。
因此开发一套客户管理系统,让计算机来管理客户信息势在必行。
管理员通过客户管理系统可以查询客户的信息、公司所提供的服务情况;还可以对当前客户情况进行一些设计,给出统计表格,以便全面掌握客户的联系情况。
客户通过客户管理系统还可以查询公司的电话等信息。
1.2系统分析
了解了客户管理系统的开发背景后,就开始对系统进行设计前的简要分析。
主要从系统的使用特点、开发语言以及数据库结构等方面进行分析。
1.2.1系统使用对象
使用该系统的人员,主要是公司的管理人员或者需要查询信息的客户。
使用的目的主要是对客户的信息进行高效的管理,并实现快速的查询。
应包括客户信息的输入、查询以及报表输出等功能。
考虑到使用该系统的多为非计算机专业的人员,所以在开发时要考虑以下几个方面:
▲操作简单。
因为使用者为非计算机专业的人员,所以该系统要求设计的界面美观,操作方便。
要充分考虑该软件的界面友好和操作方便,便于使用人员快速上手。
▲易于维护。
一个软件设计的好坏,关键在于产品的可靠,稳定,便于维护。
▲便于升级。
随着社会的发展,对系统的要求会越来越高。
要求系统具有更高的安全性、更丰富的功能以及更快的操作速度。
所以在设计时要考虑到以后的升级问题。
1.2.2开发语言的选择
针对目前世界上流行的大量软件和开发工具,经过认真分析其优点。
结合目前的软硬件环境,选用微软Windows平台下的VisualFoxPro6.0作为软件开发工具。
选用该工具有以下几方面的优点:
◆VFP6.0是比较好的关系型数据库管理系统开发软件。
它提供了可视化的开发平台和面向对象的程序设计方法。
大量控件的提供节省了开发工作量,提高了开发的效率。
◆VFP6.0提供了很多设计器,诸如“数据库设计器”、“表单设计器”等。
另外还有一些“向导工具”。
利用这些设计器和向导工具,不用编写大量的程序代码,从而使开发工作变得比较轻松。
◆VFP6.0本身就是一个数据库开发系统。
使用它开发数据库系统效率高,稳定性好。
综上所述,VFP6.0可以满足一个单位对客户信息管理的要求,所以用其来开发客户管理系统是非常合适的。
1.2.3数据库结构分析
好的数据库结构,查询记录的速度较快,而且也不容易出现锁表现象。
分析对客户信息的管理情况,首先需要了解客户的基本情况信息。
包括客户的编号、单位名称以及电话等信息;还要有地区编号以及联系人的生日到来时,公司为其进行庆祝。
在联系客户时,如果记不住联系人的区号以及邮政编号等信息,可以进行查询。
所以需要的数据表有客户表、联系人表、部门配置表、部门电话表、区号邮编表、服务表以及操作员表。
1.3系统功能
本客户管理系统主要具有以下功能:
■系统登录:
本系统的使用人员只有在输入了正确的证件号和密码后,才能进入该系统。
是本单位的人员但是不知道密码不能进入本系统。
是本公司的客户,与该公司有联系的人员,在获得一个编号和密码后,也可以进入该系统。
这样做主要防止不合法的人员使用系统的资源,进行数据的撰改。
■权限设置:
不同的登录者具有不同的系统权限,具有不同权限者访问不同的系统资源,这样主要是为了限制越权操作。
■数据录入管理:
对与客户相关的信息的录入操作进行管理。
主要包括录入、添加以及删除客户的信息;录入、添加以及删除服务的信息。
客户记录主要包括:
客户编号、电话、单位名称、传真、邮政编码、E-mail、单位地址、区号以及联系人编号等字段。
联系人记录主要包括:
联系人编号、姓名、性别、单位名称、电话、生日以及爱好等字段。
服务记录主要包括:
部门代码、客户代码、服务项目号、服务评价以及金额等。
■信息查询管理:
对查询与客户相关的信息进行管理,主要包括:
查询部门电话、查询客户信息、查询区号邮编以及查询联系人信息。
其中查询部门电话可以根据房间号、部门代码以及电话进行查询。
查询客户信息可以根据客户编号、电话、地区编号以及联系人编号进行查询。
查询区号邮编可以根据地区名称和地区编号进行查询。
查询联系人信息可以根据联系人编号、姓名以及生日进行查询。
部门电话记录主要包括:
部门代码、处事名称、房间号、分机号以及直拨电话。
■报表输出管理:
对一些联系信息进行打印的管理,主要包括:
打印服务信息、打印联系人信息以及打印区号邮编等。
■系统维护:
对系统数据进行维护。
主要包括修改密码以及添加人员等。
普通用户可以修改自己的密码。
管理人员可以添加新客户。
密码修改功能让操作者可以定期修改自己的密码,防止密码被盗用。
这主要是出于安全的考虑。
■退出系统:
离开客户管理系统。
2.系统结构设计
系统结构设计主要设计系统的总体结构。
创建项目管理器来管理系统的各类资源,创建客户管理系统所需要的数据表和数据。
2.1系统结构图
开发程序前,要先理清思路,有一个清晰明了的结构图,能大大提高开发程序的效率和质量。
为了开发人事管理系统,需要设计若干表单、表、程序、报表和主菜单。
由项目管理器进行统一管理,由主程序调出用户登录界面。
登录成功后调出应用系统的主菜单,由主菜单调出各个表单界面。
整个系统的结构要紧凑、简洁;功能要明确、完整。
人事管理系统的总体功能结构如图2.1所示。
2.2项目管理器的建立
通过项目管理器,可以集中创建和管理应用程序的所以内容。
例如,创建、打开、修改、删除数据库、表、表单、报表以及应用程序等等。
在一个项目文件中统一管理所用到的各种文件,并将其编译成一个可独立运行的.app或.exe文件。
通过这种方法,用户可以快速、方便地存取存放在姓名文件中的任何对象。
项目的扩展名是.pjx。
一个新项目就在项目管理器中建立起来了,如图2.2所示。
2.3数据库和表的建立
建好了项目管理器之后,就可以建立人事管理系统所需要的数据库和数
据表了。
2.3.1建立数据库
首先在项目管理器中建立数据库,建立数据库的步骤如下所示:
(1)单击【数据】选项卡,选择【数据库】选项。
单击【新建】按钮,弹出【新建数据库】对话框。
(2)单击【新建数据库】按钮,出现保存对话框,保存数据库名为:
人事管理.dbc保存后出现【数据库设计器】窗口,如图2.3所示。
创建了数据表和其他数据对象后,才能输入数据或者进行其他数据库的操作。
2.3.2建立数据表
下面开始在数据库中建立数据表。
首先建立部门配置表,建立部门配置表的步骤如下所示:
(1)右击【数据库设计器】窗口,在弹出的快捷菜单上选择【新建表】命令,弹出【新建表】对话框。
(2)在弹出的对话框中,单击【新建表】按钮,在出现的保存文件对话框中设置文件名为:
部门配置.dbf。
单击【保存】按钮后即弹出【表设计器】对话框,如图2.4所示,在该对话中设计表结构。
(3)设计表结构时,在【字段】页面中,输入字段名、字段类型、宽度、小数位数、索引和NULL值。
在【显示】区设置字段的格式、输入掩码和标题。
其他区域与之类似,如图2.5所示。
(4)设置【表设计器】的索引页,切换至【索引】页面,设置部门代码为“主索引”,如图2.6所示。
“主索引”和“唯一索引”是有区别的,主索引键值在数据表中是唯一的且不允许为空,唯一索引键也是唯一的但允许为空。
(5)表的结构设计完成后,系统会提示是否立即输入数据,可以输入几条数据以供演示,如图2.7所示
现在就把部门配置表建好了。
按照以上步骤,下面开始建立部门电话表,
建立好的部门电话表如图2.8所示。
建好部门电话表后,按照和上面类似的步骤建立客户表,建好后的客户表
如图2.9所示。
建好客户表以后,按照和上面类似的步骤建立联系人表,建立后的联系人表如下图2.10所示。
建好联系人表以后,按照和上面类似的步骤建立区号邮编表,建立的区号邮编表如下图2.11所示。
建好区号邮编表以后,按照和上面类似的步骤建立服务表,建立服务表如下图2.12所示。
建好服务表以后,按照和上面类似的步骤建立操作员表,建立好的操作员表如下图2.13所示。
下面分别列出了各表的表结构,如表2-1、2-2、2-3、2-4、2-5、2-6和2-7所示。
表2-1联系人表结构
字段名
字段类型
字段宽度
小数位
索引否
NULL
联系人编号
字符型
10
主索引
姓名
字符型
10
性别
字符型
2
单位名称
字符型
20
生日
字符型
10
爱好
字符型
10
电话
字符型
12
表2-2部门配置表结构
字段名
字段类型
字段宽度
小数位
索引否
NULL
部门代码
字符型
10
主索引
部门编号
字符型
20
表2-3部门电话表结构
字段名
字段类型
字段宽度
小数位
索引否
NULL
部门代码
字符型
10
普通索引
处室名称
字符型
10
房间号
字符型
4
分机号
字符型
4
直拨电话
字符型
8
表2-4客户表结构
字段名
字段类型
字段宽度
小数位
索引否
NULL
客户编号
字符型
10
主索引
电话
字符型
12
单位名称
字符型
20
传真
字符型
12
邮政编码
字符型
6
字符型
20
单位地址
字符型
20
区号
字符型
4
普通索引
联系人编号
字符型
10
普通索引
表2-5区号邮编表
字段名
字段类型
字段宽度
小数位
索引否
NULL
区号
字符型
4
主索引
地区名称
字符型
10
邮政编码
字符型
6
表2-6服务表
字段名
字段类型
字段宽度
小数位
索引否
NULL
服务项目编号
字符型
10
主索引
客户编号
字符型
10
普通索引
部门代码
字符型
10
普通索引
服务评价
字符型
20
金额
数值型
10
2
表2-7操作员表
字段名
字段类型
字段宽度
小数位
索引否
NULL
证件号
字符型
8
主索引
姓名
字符型
10
权限
字符型
3
密码
字符型
10
2.3.3建立表之间的参照完整性
关系数据库管理系统一个重要的功能就是参照完整性。
必须先建立表之间的关系,才能使用参照完整性。
建立表之间的关联之前,要先对表建立索引。
为子表建立普通索引,为父表建立主索引。
在父表的主索引和子表的普通索引之间建立联系。
建立表之间的关联的方法是:
在【数据库设计器】中,用鼠标左键选择区号邮编表的主索引区号,按住鼠标左键不动,拖动鼠标到客户表的区号索引上。
此时鼠标箭头变成小矩形,放开鼠标左键,客户表和邮编表之间关联就建好了。
建立完数据表之间的关联后,就可以建立参照完整性约束了。
必须先清理数据库才能建立参照完整性。
4.表单设计概述
一个数据库管理系统的开发,一般包括系统功能分析、系统结构设计、数据库设计、应用程序设计、系统调试和连编、创建安装盘等6个步骤。
其中应用程序设计包括用户操作界面设计和主程序设计,用户操作界面设计包括表单设计和菜单设计。
创建完成数据库和数据表后就可以进行表单设计了。
用户界面包括表单和菜单两部分,其中主要部分是表单,面向对象编程的大多数工作是在表单中进行的,表单设计的过程就是用户界面设计的过程。
设计用户界面是为了完成用户与系统间的交互操作。
按照用户使用数据库应用系统的顺序,进行表单设计,首先设计“登录”界面。
4.1登录表单设计
登录表单的作用是操作员只有输入了正确的职工号和密码才能登录进入客户管理系统。
数据环境:
操作员表。
登录表单含有以下控件:
●3个标签:
“登录界面”、“证件号”、“密码”。
其中标签“登录界面”的FontSize属性值设为18,默认值为9.
●2个文本框:
no和password1。
其中“no”用来输入证件号;“password1”用来输入密码,passwordchar属性为“*”,输入时显示占位符。
●两个按钮:
“确定”按钮和“退出”按钮。
●该表单的Caption属性为:
用户登录,Name属性:
login。
登录表单的设计步骤如下所示:
(1)在【项目管在【项目管理器】对话框的【文档】页面中,选中【表单】选项。
单击【新建】按钮,弹出【新建表单】对话框。
(2)单击【新建表单】按钮,弹出【表单设计器】窗口,一个名为Form1的空表单也随之出现在【表单设计器】窗口中。
(3)右击【表单设计器】窗口,在弹出的快捷菜单中,选择【数据环境】命令。
(4)在弹出的【添加表或视图】对话框中,从【数据库中的表】中选择操作员表,单击【添加】按钮。
然后单击【关闭】按钮,关闭【添加表或视图】对话框。
(5)依次把数据环境中操作员表的证件号和密码字段拖到空表单的合适位置。
在表单上出现证件号标签、密码标签以及Name属性为txt证件号、txt密码的文本框。
调整这四个控件在表单上的位置。
在【属性】对话框中分别设置文本框的Name属性为no,password1。
密码文本框的passwordchar属性为“*”。
(6)单击表单控件工具栏中的标签控件,在表单中添加两个标签控件。
设置该标签控件的Caption属性分别为“人事管理系统”和“登录界面”,FontSize属性值设为18。
(7)添加两个按钮,按钮Caption属性分别为:
确定和退出。
(8)在【属性】对话框中,设置该表单的Caption属性分别为:
登录表单,Name属性:
login。
登录表单的运行结果如图4.1所示:
布局完成登录表单的控件后,开始设计表单的方法程序和事件代码。
4.4.1Load事件Load事件在加载登录表单时运行。
右击表单窗口
在弹出的快捷菜单中选择【代码】命令,弹出如图4.2所示的对话框。
登录表单的Load事件代码如下:
SETTALKOFF&&关闭返回执行状态的显示,默认为开。
SETSAFETYOFF&&设置SAFETY为关,删除数据库时不会出现提示,与新建的数据库同名时直接覆盖。
CLOSEALL&&关闭所有的数据库
OPENDATABASE.\源文件\客户管理.dbcEXCLUSIVE&&以独占方式打开数据库"客户管理"
SELECTA&&选择工作区A
USE.\源文件\操作员.dbf&&在工作区A中打开操作员表
4.4.2Upload事件以与建立Load代码类似的方法,建立Upload事件,代码如下:
caozuoyuan=''&&变量caouzoyuan为空
RETURNcaozuoyuan&&返回变量值
Closeall&&关闭所有打开的数据库以及数据表
【确定】按钮的Click事件的代码如下:
PRIVATEzj,mm,ST&&定义私有变量zj(输入的证件号),mm(输入的密码),ST(提示信息)
ST='密码不正确,请重新输入!
'&&提示信息"密码不正确,请重新输入!
"Zj=alltrim(THISFORM.no.Value)&&把输入的证件号赋值给变量zj
mm=alltrim(THISFORM.password1.Value)&&把输入的密码赋值给变量mm
LOCATEFORzj==alltrim(操作员.证件号)&&查找操作员表中与zj相等的证件号
IFFOUND()ANDalltrim(操作员.密码)==mm&&如果找到相同的证件号再比较密码是否相同
caozuoyuan=alltrim(操作员.证件号)&&变量caozuoyuan的值为操作员表中的证件号
THISFORM.Visible=.F.&&如果证件号和密码都正确,该界面不再显示
DO.\源文件\zhumenu.mpr&&执行主菜单zhumenu..mpr
ELSE
WAITWINDOWSTTIMEOUT2&&程序运行等待2秒,显示密码不正确的提示信息
THISFORM.password1.value=''&&密码文本框为空
THISFORM.password1.SetFocus&&密码文本框获得焦点
ENDIF
【退出】按钮的Click事件的代码如下:
tuichu=MESSAGEBOX('您确定要退出客户管理系统吗?
',4+32+0,'客户管理系统')
iftuichu=6&&如果要退出系统
caozuoyuan=''&&变量caouzoyuan为空
THISFORM.RELEASE&&释放登录表单
Endif
Clearevents&&清除事件循环
4.2修改密码表单设计
修改密码表单主要用来完成修改密码的功能。
为了系统的安全起见,密码用一段时间就要进行更换。
在该表单中,单击“确定”按钮,进行密码的修改。
单击“取消”按钮,取消密码修改的操作。
数据环境:
操作员表。
密码修改表单主要包括如下的控件:
●4个标签:
修改密码、证件号、旧密码和新密码。
●3个文本框:
txt证件号、txt密码以及password2。
●3个按钮控件:
Name属分别性为command1,command2,command3。
●该表单的Caption属性为:
密码修改,Name属性:
cipher。
按以上类似步骤可得修改密码表单的运行效果如图4.2所示:
下面设计密码修改表单的方法程序和事件代码。
【确定】按钮的Click事件的代码如下:
publicx&&定义公共变量X
selecta&&选择工作区a
use.\源文件\操作员.dbf&&打开操作员表
x=alltrim(thisform.txt密码.value)&&用x保存旧密码
replace操作员.密码withalltrim(thisform.password2.value)&&用新密码代替旧密码
messagebox("密码已修改",0+48,"提示")&&提示意进行了密码修改的信息
thisform.refresh&&刷新表单
【取消】按钮的Click事件的代码如下:
replace操作员.密码withx&&用x值代替操作员表的密码字段
messagebox("放弃密码修改",0+48,"提示")&&提示放弃修改的信息
thisform.password2.value=''
thisform.refresh&&刷新表单
【退出】按钮的Click事件的代码如下:
THISFORM.REFRESH&&刷新表单
THISFORM.RELEASE&&释放表单资源
4.3客户查询表结果表单设计
客户查询结果表单显示按一定条件查询出的客户的基本情况信息。
查询条件有按照客户编号查询、按联系人编号以及电话查询。
这类表单由后面的客户查询表单调用。
在表单界面中可以查看第一条、前一条记录、后一条记录、最后一条记录以及退出该界面。
下面以按客户编号查询出的查询结果表单为例进行介绍。
数据环境:
客户表和联系人表。
该查询表单的Init事件程序代码如下所示:
THISFORM.REFRESH&&刷新表单
LOCATEFORkh=ALLTRIM(客户表.客户编号)&&光标转到与客户编号匹配的记录
THISFORM.txt客户编号.enabled=.f.&&客户编号文本框不可修改
THISFORM.txt区号.enabled=.f.
THISFORM.txt电话.enabled=.f.&&电话文本框不可修改
THISFORM.txt单位名称.enabled=.f.&&单位名称文本框不可修改
THISFORM.txt传真.enabled=.f.&&传真文本框不可修改
THISFORM.txt邮政编码.enabled=.f.&&邮政编码文本框不可修改
THISFORM.txtemail.enabled=.f.&&电子邮件文本框不可修改
THISFORM.txt单位地址.enabled=.f.&&单位地址文本框不可修改
THISFORM.txt区号&&区号文本框不可修改
THISFORM.txt联系人编号.enabled=.f.&&联系人编号文本框不可修改
【第一个】按钮的Click事件的代码如下:
GOTOP&&指针指向第一条记录
THIS.ENABLED=.T.&&该记录获得焦点
THISFORM.COMMAND2.ENABLED=.F.&&按钮组中的按钮2不能获得焦点
THISFORM.COMMAND3.ENABLED=.T.&&按钮组中的按钮3获得焦点
THISFORM.COMMAND4.ENABLED=.T.&&按钮组中的按钮4获得焦点
THISFORM.COMMAND5.ENABLED=.T.&&按钮组中的按钮6获得焦点
THISFORM.REFRESH&&刷新表单
【上一个】按钮的Click事件的代码如下:
SKIP-1&&指针指向前一条记录
THISFORM.COMMAND1.ENABLED=.T.&&按钮组中的按钮1获得焦点
THISFORM.COMMAND3.ENABLED=.T.&&按钮组中的按钮3获得焦点
THISFORM.COMMAND4.ENABLED=.T.&&按钮组中的按钮4获得焦点
THISFORM.COMMAND5.ENABLED=.T.&&按钮组中的按钮6获得焦点
THISFORM.REFRESH&&刷新表单
IFBOF()&&判断指针是否在表头
THIS.ENABLED=.F.&&该记录不能获得焦点
ELSE
T
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 客户 管理 系统