毕业设计客户管理系统设计与开发.docx
- 文档编号:16985807
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:49
- 大小:766.35KB
毕业设计客户管理系统设计与开发.docx
《毕业设计客户管理系统设计与开发.docx》由会员分享,可在线阅读,更多相关《毕业设计客户管理系统设计与开发.docx(49页珍藏版)》请在冰点文库上搜索。
毕业设计客户管理系统设计与开发
摘要
【摘要】
在对目前市面上的客户管理系统(CRM)的广泛调查和研究之后,发现很多市面上的客户管理系统大多都是以产品为中心,忽略了客户管理中最重要的部分—客户关系。
随着市场经济的不断发展,客户管理的重要性体现的越发明显。
企业要想生存发展,就必须与与之息息相关的客户建立起良好的关系,不断发展新客户,以企业高质量的产品、优质的服务、良好的资信吸引新客户;经常维系与老客户的关系,以规范的客户管理方式、温馨的客户关怀、高效的客户服务来提升老客户的忠诚度。
由此,客户管理系统应运而生。
【关键词】CRM客户关系客户管理系统
0引言
在全球一体化、企业互动和以INTERNET为核心的时代,企业面临着如何发展潜在客户,如何将社会关系资源变为企业的销售和发展资源的一系列难办棘手的问题。
在上述背景下,客户管理系统应运而生。
本系统本着把握客户多样化和个性化的特点;以最快的速度响应客户需求;吸引新客户,留住老客户为原则。
即从过去的以产品(Product-Centric)为中心的管理策略转向以客户为中心的(Customer-Centric)管理理念。
系统旨在改善企业与客户之间的关系,建立新型的运营机制。
本系统以企业级的整体客户管理为解决方案,帮助企业建立统一的客户资源、拓展销售渠道、寻求最佳市场方式、规范企业销售流程、提供科学分析方法,建立持久的客户体系。
其大容量客户数据处理能力,让您的企业从多渠道收集信息,快速发现核心客户和潜在伙伴,进而给企业带来无限的利润。
以客户为中心的理念在国外兴起于20世纪50年代,当时很多企业寄希望于通过改进技术、压缩生产周期、改善内部资源管理来提高生产增长率和利润,但事实上见效甚微。
这样企业开始从强调降低经营成本的供应方发展策略转向了需求方策略。
所谓需求方策略就是指与客户联系更加紧密,从客户关系方面挖掘新能源的策略,CRM应运而生。
所不同的是,现在计算机可以帮助人们实现这些看似并不复杂而实际操作起来非常繁琐的工作。
试想一下,当我们需要查找一个客户的电话号码时,只需敲几下键盘,就可以看到客户的详细资料(包括姓名、公司名称、电话、E-mail等),所有这些都是一个完善的客户管理系统所能完成的。
1系统分析
1.1需求分析
根据市场的需求,要求系统具有以下功能:
❑由于该系统的使用对象较多,要求有严密的权限管理。
❑具有数据备份及数据恢复的功能,确保系统的安全性。
❑方便的全方位的数据查询。
❑强大的报表打印功能。
❑在相应的权限下,可以删除或修改数据。
1.2可行性分析
随着科技的发展,竞争也越发激烈、残酷,企业传统的管理方式对于现今社会的竞争已明显感觉到力不从心。
客户作为市场的最大资源,已成为市场营销核心,谁争取到了最多的客户,谁就取的了最大的成功,对客户的把握将最终决定企业的命运。
客户关系管理系统正是在这种需求下经过深入的市场调研和专家系统化的指导应运而生。
系统具有完善的基础信息维护和客户信息维护,强大的数据查询及图表分析功能,基本能够满足中小型企业的需要。
2总体设计
2.1项目规划
客户管理系统是一个非常有特点的管理软件,系统由基础信息维护、客户信息维护、客户服务、信息查询、数据管理、辅助工具、系统管理和帮助信息等几个功能模块组成,规划系统功能模块如下:
❑基础信息维护模块
基础信息维护模块主要包括区域信息设置、企业性质设置、企业类型设置、企业资信设置、客户级别设置和客户满意程度设置6部分。
❑客户信息维护模块
客户信息维护模块主要包括客户信息、联系人信息、业务往来、客户呼叫中心和发送邮件5个部分。
❑客户服务模块
客户服务模块主要包括客户反馈、客户投诉、客户反馈满意程度分析和客户投诉满意程度分析4个部分。
❑信息查询模块
信息查询模块主要包括客户信息查询、联系人信息查询、客户反馈满意程度查询、客户投诉满意程度查询、客户反馈查询、客户投诉查询和国内城市区号邮编查询7个部分。
❑数据管理模块
数据管理模块主要包括客户信封打印、客户信息列表、联系人信息列表和省份邮编信息打印4个部分。
❑辅助工具模块
辅助工具模块包括调用Word、调用Excel、计算器、登录Internet和工作业务备忘5个部分。
❑系统管理模块
系统管理模块主要包括操作员设置、密码修改、权限设置、系统数据清理、数据备份与恢复5个部分。
❑帮助信息模块
帮助信息模块主要包括本单位信息、关于、帮助等3个部分。
2.2系统功能结构图
图1客户管理系统功能结构图
3系统设计
3.1设计目标
本系统是根据中小企业的实际需求而开发的,完全能够实现企业对客户的自动化管理,通过本系统可以达到以下目标:
❑系统运行稳定,安全可靠。
❑界面设计美观,人机交互界面友好。
❑信息查询灵活、方便、快捷、准确,数据存储安全可靠。
❑满足键盘和鼠标的双重操作,完全支持回车键。
❑采用多种方式查询数据。
❑操作员可以随时修改自己的口令。
❑对用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误。
❑数据保密性强,为每个用户设置相应的权限级别。
❑强大的图表分析功能。
❑收录了全国各省市县的邮政编码及区号信息等二千多条记录。
❑不仅采用了传统的数据报表打印方式,还可以向Word中打印输出。
3.2开发及运行环境
系统开发平台:
VisualBasic6.0
数据库管理系统软件:
SQLServer2000
运行平台:
Windowsxp/Windows2000/Windows98
分辨率:
最佳效果800*600
3.3数据库设计
本系统采用SQLServer2000数据库,系统数据库名为db_Client,数据库db_Client中包括18个数据表。
下面分别给出数据库概要说明和数据表的结构。
1.数据库概要说明
如图2所示的即为本系统中数据库中的数据表的树形结构图,该数据表树型结构图包含系统所有数据表。
可以清晰地反应数据库信息。
图2数据库概要说明
2.数据表结构
由于篇幅所限,关于数据库中的数据表请参见附录二
4主要功能模块设计
4.1公共模块设计(Mdl_Link模块)
通过使用模块可以减少程序的代码量。
在本系统中,将通用的代码(如:
数据库连接、Toolbar控件的按钮设置代码以及公共的全局变量等)都集中放置在一个数据模块Mdl_Link中,节省了代码量,提高了编程效率。
数据模块Mdl_Link中定义的公共变量如下所示:
PublicPublicStrAsString'定义公共变量用于ADODC控件的数据连接,使程序模块化
PublicsqlAsString'定义字符变量存储SQL语句
PublicTbAsString'存储数据表名称
PublicProvinceAsString'存储省份名称
PublicMyflagAsBoolean'标识
数据模块Mdl_Link中提供连接数据库的程序代码如下所示:
'数据连接模块
PublicFunctioncnn()AsADODB.Connection'定义函数
Setcnn=NewADODB.Connection
'打开数据连接
cnn.Open"Provider=SQLOLEDB.1;PersistSecurityInfo=False;UserID=sa;InitialCatalog=db_Client"
PublicStr="Provider=SQLOLEDB.1;PersistSecurityInfo=False;UserID=sa;InitialCatalog=db_Client"
EndFunction
数据模块Mdl_Link中关于Toolbar控件设置按钮状态的通用代码如下所示:
'定义设置Toolbar控件上按钮状态的函数
PublicFunctiontlbState(tlbAsToolbar,stateAsBoolean)
Withtlb
Ifstate=TrueThen'如果状态变量为True
.Buttons
(1).Enabled=False:
.Buttons
(2).Enabled=False
.Buttons(3).Enabled=False
.Buttons(6).Enabled=False
.Buttons(4).Enabled=True
.Buttons(5).Enabled=True
Else'如果状态变量为False
.Buttons
(1).Enabled=True
.Buttons
(2).Enabled=True
.Buttons(3).Enabled=True
.Buttons(6).Enabled=True
.Buttons(4).Enabled=False
.Buttons(5).Enabled=False
EndIf
EndWith
EndFunction
4.2主窗体设计
主窗体是显示系统主要操作功能的面板,在系统主窗体的状态栏中,可以显示网址、当前的操作员、当前系统的日期、时间等信息,还可以通过菜单或单击窗体左侧的树状列表以及右侧的功能列表来控制其他功能子窗体,并且根据不同的操作员赋予相应的操作权限。
系统主窗体的运行结果如图3所示。
图3系统主窗体的运行结果
1.窗体设计
(1)在“工程”中新建一个窗体,将窗体的“名称”设置为frm_Main,MaxButton属性设置为False,Caption属性设置为“客户管理系统”,StartUpPosition属性设置为2-屏幕中心。
(2)利用VB提供的菜单编辑器设计菜单。
从“工具”菜单上,选取“菜单编辑器”命令即可打开菜单编辑器,也可以在“工具栏”上单击【菜单编辑器】按钮。
用菜单编辑器可以创建应用程序的菜单,在已有的菜单上可以增加新的菜单项,或者修改和删除已有的菜单和菜单项。
通过菜单编辑器建立的菜单如图3所示,在菜单编辑器对话框中设计菜单时的界面如图4所示。
图4菜单编辑器
本系统的菜单设置如图5所示。
图5客户管理系统菜单设置
(3)向窗体上添加1个控件,设置其Align属性设置为1-vbAlignTop(默认设置)。
1个ImageList控件,并将其与Toolbar控件相连,同时添加按钮和图片。
(4)将Toolbar控件与ImageList控件相连。
(5)向窗体上添加1个TreeView控件并将其与ImageList控件连接。
(6)向窗体中添加1个StatusBar控件,在StatusBar控件上单击鼠标右键选择“属性”,在弹出的属性页对话框中选择“窗格”选项卡,如图6所示,在图中单击【插入窗格】按钮,可以在StatusBar控件中添加窗格,同时可以设置添加后窗格的文本内容、工具栏提示文本信息和宽度等信息,如果想删除窗格,则通过“索引”旁边的箭头,选中要删除的窗格,然后单击【删除窗格】按钮即可删除。
图6设置StatusBar控件中的窗格
(7)向窗体上添加ListView控件。
2.代码设计
通过主窗体当中的菜单项,可以控制系统中各个子窗体,现以“辅助工具”菜单为例,介绍调用系统子窗体的代码。
PrivateSubMenu6_Click(IndexAsInteger)
SelectCaseIndex'辅助工具
Case0'调用Word
ShellExecuteMe.hWnd,"open","winword.exe","",1,5
Case1'调用Excel
ShellExecuteMe.hWnd,"open","excel.exe","",1,5
Case2'调用计算器
ShellExecuteMe.hWnd,"open","CALC.EXE","",1,5
Case3'登录Internet
ShellExecuteMe.hWnd,"open","",1,1,5
Case5'工作备忘
LoadFrm_Fzgj_GzbwFrm_Fzgj_Gzbw.Show1
EndSelect
EndSub
在窗体启动的时候,首先查看工作备忘表(tb_Client_gzbw)中是否有要提醒的信息,如果有,则提示相应的信息,否则直接加载窗体。
其实现的关键代码下:
Dimrs1AsNewADODB.Recordset'定义数据集对象
'打开数据连接
rs1.Open"select*fromtb_Client_gzbwwheregzbw_txrq='"+Str(Date)+"'",cnn,adOpenKeyset
Ifrs1.RecordCount>0Then'如果记录数大于零
IfMsgBox("今日重要工作:
"&Trim(rs1.Fields("gzbw_bt"))&",是否查看详细信息?
",4,"信息提示")=vbYesThen
'将SQL语句赋给sql变量
sql="select*fromtb_Client_gzbwwheregzbw_txrq='"+Str(Date)+"'"
'显示工作备忘窗体
LoadFrm_Fzgj_Gzbw
Frm_Fzgj_Gzbw.Show1
EndIf
EndIf
rs1.Close'关闭数据对象
在程序运行时,可通过单击Toolbar控件上的按钮,来调用相应的子功能窗体,实现增加、删除、修改和查找功能。
其实现的代码如下:
PrivateSubToolbar1_ButtonClick(ByValButtonAsMSComctlLib.Button)
SelectCaseButton.Index
Case1
LoadFrm_Khxxwh_kh'调用客户信息窗体
Frm_Khxxwh_kh.Show1
Case2
LoadFrm_Khxxwh_Lxr'调用联系人信息窗体
Frm_Khxxwh_Lxr.Show1
Case3
LoadFrm_Khxxwh_Yjfs'调用发送邮件窗体
Frm_Khxxwh_Yjfs.Show1
Case4
LoadFrm_Xxcx_Khxxcx'调用客户信息查询窗体
Frm_Xxcx_Khxxcx.Show1
Case7
End'关闭退出
EndSelect
EndSub
在程序运行时,当用鼠标单击TreeView控件中的节点时,在右边的ListView控件中就可以显示该节点下的相应的子功能图标。
该功能的实现是通过在TreeView1控件的NodeClick事件实现的。
下面以“基础信息维护”菜单为例介绍其主要实现的方法。
IfTreeView1.SelectedItem.key="基础信息维护"Then
ListView1.ListItems.Clear'清除ListView中的项目
'向ListView控件中添加项目并设置图片
SetitmX=ListView1.ListItems.Add(,,"区域信息设置",3)
SetitmX=ListView1.ListItems.Add(,,"企业性质设置",4)
SetitmX=ListView1.ListItems.Add(,,"企业类型设置",6)
SetitmX=ListView1.ListItems.Add(,,"企业资信设置",5)
SetitmX=ListView1.ListItems.Add(,,"客户级别设置",7)
SetitmX=ListView1.ListItems.Add(,,"客户满意程度设置",8)
ExitSub'退出本事件
EndIf
在程序运行时,StatusBar控件中的时间显示的是当前系统的时间,并跟随系统时间发生变化。
其实现方式是:
向窗体中添加时钟控件,并将其Enabled属性设置为True,Interval属性设置为60。
并添加如下的代码:
PrivateSubTimer1_Timer()
'显示系统时间
Frm_Main.StatusBar1.Panels(3).Text=Format(Date,"longdate")+Format(Now,"hh点mm分ss秒")
EndSub
4.3客户呼叫中心
客户呼叫中心是客户管理系统中比较重要的部分,是企业利用现代通信手段集中处理与客户交互过程的机构。
在客户呼叫中心中能够根据客户的电话号码可以显示该客户简单的信息,同时可以呼叫该客户,并可查询该号码客户的详细信息,以及联系人的相关信息。
在程序运行时,单击“客户信息维护”主菜单下的“客户呼叫中心”子菜单,系统将调用“客户呼叫中心”窗体。
“客户呼叫中心”窗体的运行结果如图7所示。
图7客户呼叫中心窗体的运行结果
1.窗体设计
(1)在“工程”中新建一个窗体,将窗体的“名称”设置为Frm_Khxxwh_Hjzx,MaxButton属性设置为False。
Caption属性设置为“客户呼叫中心”。
(2)向窗体上添加1个Frame控件,设置其Caption属性为空,在窗体中用于标识分组,使窗体显得规整。
并向其中添加1个Label控件,将该标签控件的Caption属性设置为“请输入或选择客户公司电话”。
(3)向窗体上添加1个ComboBox控件,设置其“名称”属性为Cbx_Khdh,Text属性为Cbx_Khdh,Style属性为0–DropdownCombo。
该控件用于显示客户的公司电话。
(4)向窗体上添加2个Frame控件,分别设置其Caption属性值为“客户简单信息”和空,并向其中添加若干Label控件。
(5)向窗体上添加若干TextBox控件,并将其设置为控件数组。
(6)向窗体中添加1个MSComm控件,由于该控件属于ActiveX控件,在使用之前必须从“部件”对话框中添加到工具箱。
添加方法如下:
在“工程”/“部件”对话框中勾选“MicrosoftCommControl6.0”列表项,如图8所示。
单击【确定】按钮之后即可将MSComm控件添加到工具箱当中。
图8添加MSComm控件
(7)在窗体上添加4个CommandButton控件,分别将其“名称”属性和Caption属性设置为Cmd_Hj和“开始呼叫”、Cmd_Kh和“客户详细信息”、Cmd_Lxr和“联系人信息”、Cmd_Exit和“退出”。
其摆放位置如图9所示。
图9客户呼叫中心窗体的设计界面
2.代码设计
在窗体加载时,向Cbx_khdh组合框中添加客户电话,当用户在该文本框中选择相应的项目时,在下面的“客户简单信息”框架中就可以显示出相应的信息,其实现的代码如下:
PrivateSubForm_Load()
Dimrs1AsNewADODB.Recordset'定义数据集对象
rs1.Open"select*fromtb_khxx",cnn,adOpenKeyset'打开数据连接
Ifrs1.RecordCount>0Then'如果记录数大于零
Fori=0Tors1.RecordCount-1'从零开始到记录总数减1作循环
Cbx_Khdh.AddItemTrim(rs1.Fields("khxx_gsdh"))'向Cbx_Khdb组合框中添加数据项目
rs1.MoveNext'数据对象向下移动一条记录
Nexti'循环加一
IfCbx_Khdh.ListCount>0Then'如果Cbx_Khdh中的数据项目数不为零
Cbx_Khdh.ListIndex=0'在Cbx_Khdh中显示第一条数据项
Else'否则
Cbx_Khdh.Text="请选择"'显示“请选择”信息
EndIf
EndIf
rs1.Close'关闭数据集对象
EndSub
根据公司的电话号码,单击【开始呼叫】按钮,可以呼叫该用户。
如下面的代码所示:
PrivateSubCmd_Hj_Click()'开始呼叫
IfCbx_Khdh.Text=""Then'如果组合框为空
MsgBox"请您输入电话号码!
",vbInformation,"客户管理系统"
Cbx_Khdh.SetFocus'将焦点设置在组合框上
Else'否则
MSComm1.CommPort=1'设置通信端口号
MSComm1.Settings="4800,N,8,1"'设置波特率、奇偶校验位、数据位和停止位参数
MSComm1.PortOpen=True
MSComm1.Output="ATDT"&Cbx_Khdh.Text&vbCr
MsgBox"请听电话!
",vbpuestion,"客户管理系统"
MSComm1.PortOpen=False
EndIf
EndSub
单击【客户详细信息】按钮,可以调用“客户信息”窗体。
通过定义的公共字符变量sql,可以在调用“客户信息”窗体时,直接显示该客户的信息。
其实现的关键代码如下:
PrivateSubCmd_Kh_Click()'调用客户详细信息
Dimrs3AsNewADODB.Recordset'定义数据集变量
'打开数据对象
rs3.Open"select*fromtb_khxxwherekhxx_gsdh='"+Cbx_Khdh.Text+"'",cnn,adOpenKeyset
Ifrs3.RecordCount>0Then'如果数据记录大于零
sql="select*fromtb_khxxwherekhxx_gsdh='"+Cbx_Khdh.Text+"'"'将SQL语句赋给sql字符变量
LoadFrm_Khxxwh_kh'调用客户信息窗体
Frm_Khxxwh_kh.Show1
EndIf
EndSub
在本窗体关闭前,将sql变量清空,避免对其他窗体造成影响。
其实现代码如下:
PrivateSubForm_QueryUnload(CancelAsInteger,UnloadModeAsInteger)
sql=""'清空sql变量
EndSub
4.4客户投诉
客户投诉是企业了解客户意见的重要手段之一。
在本系统中用户可以通过点击客户服务菜单下的客户投诉子菜单,进入到客户投诉窗体中。
该窗体具有对客户投诉信息进行增加、删除、修改和查找的功能,并可以通过单击DataGrid控件来浏览客户投诉信息。
客户投诉窗体的运行结果如图13所示。
图13客户投诉窗体的运行结果
1.窗体设计
(1)在“工程”中新建一个窗体,将窗体的“名称”设置为Frm_Khfw_Khts,Caption属性设置为“客户投诉”,MaxButton属性设置为Fals
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 客户 管理 系统 设计 开发