学 院 | |
专 业 | |
班 级 | |
学 号 | |
姓 名 | |
指导教师 |
年 | 月 | 日 |
1 系统分析
需求分析
根据市场的需求,要求系统具有以下功能:
❑由于该系统的使用对象较多,要求有严密的权限管理。
❑具有数据备份及数据恢复的功能,确保系统的安全性。
❑方便的全方位的数据查询。
❑强大的报表打印功能。
❑在相应的权限下,可以删除或修改数据。
2 总体设计
2.1 系统主要功能
客户管理系统是一个非常有特点的管理软件,系统由基础信息维护、客户信息维护、客户服务、信息查询、数据管理、辅助工具、系统管理和帮助信息等几个功能模块组成,规划系统功能模块如下:
❑基础信息维护模块
基础信息维护模块主要包括区域信息设置、企业性质设置、企业类型设置、企业资信设置、客户级别设置和客户满意程度设置6部分。
❑客户信息维护模块
客户信息维护模块主要包括客户信息、联系人信息、业务往来、客户呼叫中心和发送邮件5个部分。
❑客户服务模块
客户服务模块主要包括客户反馈、客户投诉、客户反馈满意程度分析和客户投诉满意程度分析4个部分。
❑信息查询模块
信息查询模块主要包括客户信息查询、联系人信息查询、客户反馈满意程度查询、客户投诉满意程度查询、客户反馈查询、客户投诉查询和国内城市区号邮编查询7个部分。
❑数据管理模块
数据管理模块主要包括客户信封打印、客户信息列表、联系人信息列表和省份邮编信息打印4个部分。
❑辅助工具模块
辅助工具模块包括调用Word、调用Excel、计算器、登录Internet和工作业务备忘5个部分。
❑系统管理模块
系统管理模块主要包括操作员设置、密码修改、权限设置、系统数据清理、数据备份与恢复5个部分。
❑帮助信息模块
帮助信息模块主要包括本单位信息、关于、帮助等3个部分。
2.2 系统功能结构图
图1 客户管理系统功能结构图
3 系统设计
3.1 设计目标
本系统是根据中小企业的实际需求而开发的,完全能够实现企业对客户的自动化管理,通过本系统可以达到以下目标:
❑系统运行稳定,安全可靠。
❑界面设计美观,人机交互界面友好。
❑信息查询灵活、方便、快捷、准确,数据存储安全可靠。
❑满足键盘和鼠标的双重操作,完全支持回车键。
❑采用多种方式查询数据。
❑操作员可以随时修改自己的口令。
❑对用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误。
❑数据保密性强,为每个用户设置相应的权限级别。
3.2 开发及运行环境
系统开发平台:Visual FoxPro 6.0
运行平台:Windows xp/Windows 2000/Windows 98
3.3 数据库设计
本系统采用Visual FoxPro 6.0设计数据库,本系统中包括如下数据表。下面分别给出数据表的结构。
数据表结构
(1)tb_Client_mydtj(满意度统计表)
满意度统计表主要用于在客户满意度分析窗体中统计客户对企业满意程度的信息。该表结构如表B.1所示。
表B满意度统计表
字段名 | 数据类型 | 长度 | 描述 |
mydtj_myd | varchar | 30 | 满意度名称 |
mydtj_sl | numeric | 9 | 满意度数量 |
联系人信息表主要保存联系人的详细信息。该数据表的结构如表B.2所示。
表B联系人信息表
字段名 | 数据类型 | 长度 | 描述 |
lxrxx_id | varchar | 20 | 联系人编号 |
lxrxx_qymc | varchar | 20 | 企业名称 |
lxrxx_xm | varchar | 30 | 联系人姓名 |
lxrxx_xb | varchar | 5 | 联系人性别 |
lxrxx_csny | datetime | 8 | 出生年月 |
lxrxx_nl | varchar | 5 | 联系人年龄 |
lxrxx_zw | varchar | 30 | 联系人职位 |
lxrxx_bgdh | varchar | 30 | 联系人办公电话 |
lxrxx_Email | varchar | 50 | 联系人电子邮件 |
lxrxx_sj | varchar | 20 | 联系人手机 |
lxrxx_grjj | text | 16 | 个人简介 |
lxrxx_djrq | datetime | 8 | 登记日期 |
lxrxx_xxdjr | varchar | 30 | 信息登记人 |
lxrxx_bz | varchar | 50 | 备注 |
客户信息表主要用于保存客户的详细信息。该数据表的结构如表B.3所示
表B客户信息表
字段名 | 数据类型 | 长度 | 描述 |
khxx_id | varchar | 30 | 客户编号 |
khxx_mc | varchar | 50 | 企业名称 |
khxx_qyxz | varchar | 30 | 企业性质 |
khxx_qylx | varchar | 30 | 企业类型 |
khxx_qyzx | varchar | 30 | 企业资信 |
khxx_qydz | varchar | 50 | 企业地址 |
khxx_szsf | varchar | 30 | 所属省份 |
khxx_szcs | varchar | 30 | 所属城市 |
khxx_gsyb | varchar | 6 | 公司邮编 |
khxx_frdb | varchar | 20 | 法人代表 |
khxx_khyh | varchar | 50 | 开户银行 |
khxx_yhzh | varchar | 50 | 银行帐号 |
khxx_nsh | varchar | 50 | 纳税号 |
khxx_ICcard | varchar | 50 | 客户IC卡号 |
khxx_gswz | varchar | 50 | 公司网址 |
khxx_gsdh | varchar | 20 | 公司电话 |
khxx_gscz | varchar | 20 | 公司传真 |
khxx_lxr | varchar | 30 | 主要联系人 |
khxx_lxrdh | varchar | 20 | 联系人电话 |
khxx_khjb | varchar | 20 | 客户级别 |
khxx_bz | text | 16 | 备注信息 |
4.1 主窗体设计
主窗体是显示系统主要操作功能的面板,在系统主窗体的状态栏中,可以显示网址、当前的操作员、当前系统的日期、时间等信息,还可以通过菜单或单击窗体左侧的树状列表以及右侧的功能列表来控制其他功能子窗体,并且根据不同的操作员赋予相应的操作权限。
系统主窗体的运行结果如图3所示。
图3 系统主窗体的运行结果
4.2 客户呼叫中心
客户呼叫中心是客户管理系统中比较重要的部分,是企业利用现代通信手段集中处理与客户交互过程的机构。在客户呼叫中心中能够根据客户的电话号码可以显示该客户简单的信息,同时可以呼叫该客户,并可查询该号码客户的详细信息,以及联系人的相关信息。
在程序运行时,单击“客户信息维护”主菜单下的“客户呼叫中心”子菜单,系统将调用“客户呼叫中心”窗体。“客户呼叫中心”窗体的运行结果如图7所示。
图7 客户呼叫中心窗体的运行结果
代码设计
在窗体加载时,向Cbx_khdh组合框中添加客户电话,当用户在该文本框中选择相应的项目时,在下面的“客户简单信息”框架中就可以显示出相应的信息,其实现的代码如下:
Private Sub Form_Load()
D定义数据集对象
r打开数据连接
I如果记录数大于零
For i = 0 To rs1.RecordCount - 1 '从零开始到记录总数减1作循环
Cbx_Khdh.AddItem Trim(rs1.Fields("khxx_gsdh")) '向Cbx_Khdb组合框中添加数据项目
rs1.MoveNext '数据对象向下移动一条记录
Next i '循环加一
如果Cbx_Khdh中的数据项目数不为零
Cbx_Khdh.ListIndex = 0 '在Cbx_Khdh中显示第一条数据项
Else '否则
请选择"显示“请选择”信息
End If
r关闭数据集对象
End Sub
根据公司的电话号码,单击【开始呼叫】按钮,可以呼叫该用户。如下面的代码所示:
P开始呼叫
I如果组合框为空
MsgBox "请您输入电话号码!", vbInformation, "客户管理系统"
C将焦点设置在组合框上
E否则
MSComm1.CommPort = 1 '设置通信端口号
MSComm1.Settings = "4800,N,8,1" '设置波特率、奇偶校验位、数据位和停止位参数
MSComm1.PortOpen = True
MSComm1.Output = "ATDT" & Cbx_Khdh.Text & vbCr
MsgBox "请听电话!", vbpuestion, "客户管理系统"
MSComm1.PortOpen = False
End If
End Sub
单击【客户详细信息】按钮,可以调用“客户信息”窗体。通过定义的公共字符变量sql,可以在调用“客户信息”窗体时,直接显示该客户的信息。其实现的关键代码如下:
Private Sub Cmd_Kh_Click() '调用客户详细信息
D定义数据集变量
'打开数据对象
rs3.Open "select * from tb_khxx where khxx_gsdh='" + Cbx_Khdh.Text + "'", cnn, adOpenKeyset
I如果数据记录大于零
将SQL语句赋给sql字符变量
调用客户信息窗体
Frm_Khxxwh_kh.Show 1
End If
End Sub
在本窗体关闭前,将sql变量清空,避免对其他窗体造成影响。其实现代码如下:
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
s清空sql变量
End Sub
4.3 客户投诉
客户投诉是企业了解客户意见的重要手段之一。在本系统中用户可以通过点击客户服务菜单下的客户投诉子菜单,进入到客户投诉窗体中。该窗体具有对客户投诉信息进行增加、删除、修改和查找的功能,并可以通过单击DataGrid控件来浏览客户投诉信息。
客户投诉窗体的运行结果如图13所示。
图13 客户投诉窗体的运行结果
代码设计
在“客户投诉”窗体加载的时候,首先建立数据连接,然后调用自定义过程来设置数据表的表头。并将客户名称和客户满意度信息添加到ComboBox控件中,并设置其显示第一条记录。其实现的关键代码如下:
Private Sub Form_Load()
连接数据库
调用本模块中的过程
调用公共模块中的自定义过程
定义数据集对象
建立数据连接
如果记录数大于零
For i = 0 To rs2.RecordCount - 1 '从零到记录数减1作循环
向添加Cbx_Khmc中添加数据项
数据记录移至下一条
循环加一
End If
如果Cbx_Khmc中的数据项为0
Cbx_Khmc.Text = "" '显示空
否则
Cbx_Khmc.ListIndex = 0 '显示第一条记录
End If
关闭记录集
Dim rs3 As New ADODB.Recordset
rs3.Open "select * from tb_Client_khmyd ", cnn, adOpenKeyset
If rs3.RecordCount > 0 Then
Cbx_Myd.AddItem Trim(rs3.Fields("khmyd_myd")) '向Cbx_Myd中添加数据项
End If
If Cbx_Myd.ListCount = 0 Then
Else
End If
rs3.Close
调用本模块中的子定义过程显示数据信息
For i = 0 To Text1.UBound
Next i
Dtp_Tsrq.Value = Date: Cbx_Khmc.Enabled = False : Cbx_Myd.Enabled = False : Dtp_Tsrq.Enabled = False
End Sub
4.4 客户信息查询
在“客户信息查询”窗体中,用户可以根据客户信息(tb_khxx)表中的任何关键字及查询条件,查询客户的相关信息。单击“信息查询”菜单下的“客户信息查询”子菜单,即可进入到客户信息查询窗体中,该窗体的运行结果如图15所示。
图15 客户信息查询窗体运行结果
代码设计
在窗体加载时,将客户表中的字段信息,添加到Cbx_Field控件中,其实现的关键代码如下:
Private Sub Form_Load()
Adodc1.ConnectionString = PublicStr
Adodc1.RecordSource = "select * from tb_khxx "
Adodc1.Refresh
Set Dgr_Kh.DataSource = Adodc1
Call Dgr_Title '调用过程
向控件中添加数据项
显示数据项中的第一条记录
Cbx_Oper.AddItem ("like"): Cbx_Oper.AddItem (">"): Cbx_Oper.AddItem ("=")
Cbx_Oper.AddItem (">="): Cbx_Oper.AddItem ("<"): Cbx_Oper.AddItem ("<=")
Cbx_Oper.AddItem ("<>"): Cbx_Oper.ListIndex = 0
End Sub
当用户选择和输入相应的查询条件,单击【确定】按钮,触发该控件的Click事件的时候,执行相应的查询语句,实现的代码如下:
Private Sub Cmd_Ok_Click()
字符数据
Case 135 '日期数据
日期型数据不能选用“Like”作为运算符!", , "提示窗口"
If IsDate(Txt_Key) = False Then
请输入正确的日期!", , "提示窗口"
Case 6 '货币数据
If IsNumeric(Txt_Key) = False Then
请输入正确的数据!", , "提示窗口"
货币数据不能选用“Like”作为运算符!", , "提示窗口"
Case 131 '数字数据
数字数据不能选用“Like”作为运算符!", , "提示窗口"
请输入正确的数据!", , "提示窗口"
End Select
Adodc1.RecordSource = sql & "order by khxx_id"
Adodc1.Refresh
Set Dgr_Kh.DataSource = Adodc1
Call Dgr_Title
End Sub
附录A 参考文献
1.Visual FoxPro 精彩编程200例 机械工业出版社 王国辉、董韶华等 2004年9月
2.Visual foxpro数据库开发关键技术与实例应用 人民邮电出版社 周桓、张雨、王国辉 2004年5月
3.Visual FoxPro管理信息系统完整项目实例剖析 人民邮电出版社 明日科技 2005年7月