




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
吉林省明日科技有限公司监制吉林省明日科技有限公司监制–PAGE4––PAGE3–吉林省明日科技有限公司监制摘要【摘要】在对目前市面上的客户管理系统(CRM)的广泛调查和研究之后,发现很多市面上的客户管理系统大多都是以产品为中心,忽略了客户管理中最重要的部分—客户关系。随着市场经济的不断发展,客户管理的重要性体现的越发明显。企业要想生存发展,就必须与与之息息相关的客户建立起良好的关系,不断发展新客户,以企业高质量的产品、优质的服务、良好的资信吸引新客户;经常维系与老客户的关系,以规范的客户管理方式、温馨的客户关怀、高效的客户服务来提升老客户的忠诚度。由此,客户管理系统应运而生。【关键词】CRM客户关系客户管理系统目录TOC\o"1-3"\h\z摘要 1目录 10引言 11系统分析 21.1需求分析 21.2可行性分析 22总体设计 22.1项目规划 22.2系统功能结构图 33系统设计 33.1设计目标 33.2开发及运行环境 43.3数据库设计 44主要功能模块设计 54.1公共模块设计(Mdl_Link模块) 54.2主窗体设计 64.3客户呼叫中心 94.4邮件发送 错误!未定义书签。4.5客户投诉 124.6客户投诉满意程度分析 144.7客户信息查询 154.8国内城市区号邮编查询 15附录A参考文献 15附录B数据表 15附录C文件架构图 15吉林省明日科技有限公司监制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*6003.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)WithtlbIfstate=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=TrueElse'如果状态变量为False.Buttons(1).Enabled=True.Buttons(2).Enabled=True.Buttons(3).Enabled=True.Buttons(6).Enabled=True.Buttons(4).Enabled=False.Buttons(5).Enabled=FalseEndIfEndWithEndFunction4.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'调用WordShellExecuteMe.hWnd,"open","winword.exe","",1,5Case1'调用ExcelShellExecuteMe.hWnd,"open","excel.exe","",1,5Case2'调用计算器ShellExecuteMe.hWnd,"open","CALC.EXE","",1,5Case3'登录InternetShellExecuteMe.hWnd,"open","",1,1,5Case5'工作备忘LoadFrm_Fzgj_GzbwFrm_Fzgj_Gzbw.Show1EndSelectEndSub在窗体启动的时候,首先查看工作备忘表(tb_Client_gzbw)中是否有要提醒的信息,如果有,则提示相应的信息,否则直接加载窗体。其实现的关键代码下:Dimrs1AsNewADODB.Recordset'定义数据集对象'打开数据连接rs1.Open"select*fromtb_Client_gzbwwheregzbw_txrq='"+Str(Date)+"'",cnn,adOpenKeysetIfrs1.RecordCount>0Then'如果记录数大于零IfMsgBox("今日重要工作:"&Trim(rs1.Fields("gzbw_bt"))&",是否查看详细信息?",4,"信息提示")=vbYesThen'将SQL语句赋给sql变量sql="select*fromtb_Client_gzbwwheregzbw_txrq='"+Str(Date)+"'"'显示工作备忘窗体LoadFrm_Fzgj_GzbwFrm_Fzgj_Gzbw.Show1EndIfEndIfrs1.Close'关闭数据对象在程序运行时,可通过单击Toolbar控件上的按钮,来调用相应的子功能窗体,实现增加、删除、修改和查找功能。其实现的代码如下:PrivateSubToolbar1_ButtonClick(ByValButtonAsMSComctlLib.Button)SelectCaseButton.IndexCase1LoadFrm_Khxxwh_kh'调用客户信息窗体Frm_Khxxwh_kh.Show1Case2LoadFrm_Khxxwh_Lxr'调用联系人信息窗体Frm_Khxxwh_Lxr.Show1Case3LoadFrm_Khxxwh_Yjfs'调用发送邮件窗体Frm_Khxxwh_Yjfs.Show1Case4LoadFrm_Xxcx_Khxxcx'调用客户信息查询窗体Frm_Xxcx_Khxxcx.Show1Case7End'关闭退出EndSelectEndSub在程序运行时,当用鼠标单击TreeView控件中的节点时,在右边的ListView控件中就可以显示该节点下的相应的子功能图标。该功能的实现是通过在TreeView1控件的NodeClick事件实现的。下面以“基础信息维护”菜单为例介绍其主要实现的方法。IfTreeView1.SelectedItem.key="基础信息维护"ThenListView1.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秒")EndSub4.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="请选择"'显示“请选择”信息EndIfEndIfrs1.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=TrueMSComm1.Output="ATDT"&Cbx_Khdh.Text&vbCrMsgBox"请听电话!",vbpuestion,"客户管理系统"MSComm1.PortOpen=FalseEndIfEndSub单击【客户详细信息】按钮,可以调用“客户信息”窗体。通过定义的公共字符变量sql,可以在调用“客户信息”窗体时,直接显示该客户的信息。其实现的关键代码如下:PrivateSubCmd_Kh_Click()'调用客户详细信息Dimrs3AsNewADODB.Recordset'定义数据集变量'打开数据对象rs3.Open"select*fromtb_khxxwherekhxx_gsdh='"+Cbx_Khdh.Text+"'",cnn,adOpenKeysetIfrs3.RecordCount>0Then'如果数据记录大于零sql="select*fromtb_khxxwherekhxx_gsdh='"+Cbx_Khdh.Text+"'"'将SQL语句赋给sql字符变量LoadFrm_Khxxwh_kh'调用客户信息窗体Frm_Khxxwh_kh.Show1EndIfEndSub在本窗体关闭前,将sql变量清空,避免对其他窗体造成影响。其实现代码如下:PrivateSubForm_QueryUnload(CancelAsInteger,UnloadModeAsInteger)sql=""'清空sql变量EndSub4.4客户投诉客户投诉是企业了解客户意见的重要手段之一。在本系统中用户可以通过点击客户服务菜单下的客户投诉子菜单,进入到客户投诉窗体中。该窗体具有对客户投诉信息进行增加、删除、修改和查找的功能,并可以通过单击DataGrid控件来浏览客户投诉信息。客户投诉窗体的运行结果如图13所示。图13客户投诉窗体的运行结果1.窗体设计(1)在“工程”中新建一个窗体,将窗体的“名称”设置为Frm_Khfw_Khts,Caption属性设置为“客户投诉”,MaxButton属性设置为False。(2)向窗体上添加1个Toolbar控件,1个ImageList控件,并将两个控件相连。(3)向窗体上添加2个ComboBox控件,将控件的Style属性设置为0–DropdownCombo。“名称”属性分别设置为Cbx_Khmc和Cbx_Myd,分别用于存储客户名称和客户满意度信息。(4)向窗体上添加1个DTPicker控件,“名称”属性设置为Dtp_Tsrq,用于显示客户投诉日期。(5)向窗体上添加1个ADO控件和1个DataGrid控件,设置DataGrid控件的“名称”为Dgr_Khts,DataSource属性设置为Adodc1,AllowUpdate属性设置为False。Adodc1控件的RecordSource属性设置为tb_Client_khts,CommandType属性设置为2–adCmdTable,Visible属性设置为False。其中ADO控件用于连接客户投诉表,DataGrid控件用于显示客户投诉表中的数据信息。(6)向窗体上添加若干个Label控件和TextBox控件,并设置TextBox控件为控件名为Text1的控件数组。2.代码设计在“客户投诉”窗体加载的时候,首先建立数据连接,然后调用自定义过程来设置数据表的表头。并将客户名称和客户满意度信息添加到ComboBox控件中,并设置其显示第一条记录。其实现的关键代码如下:PrivateSubForm_Load()Adodc1.ConnectionString=PublicStr'连接数据库CallDgr_Title'调用本模块中的过程tlbStateToolbar1,False'调用公共模块中的自定义过程Dimrs2AsNewADODB.Recordset'定义数据集对象rs2.Open"select*fromtb_khxx",cnn,adOpenKeyset'建立数据连接Ifrs2.RecordCount>0Then'如果记录数大于零Fori=0Tors2.RecordCount-1'从零到记录数减1作循环Cbx_Khmc.AddItemTrim(rs2.Fields("khxx_mc"))'向添加Cbx_Khmc中添加数据项rs2.MoveNext'数据记录移至下一条Nexti'循环加一EndIfIfCbx_Khmc.ListCount=0Then'如果Cbx_Khmc中的数据项为0Cbx_Khmc.Text=""'显示空Else'否则Cbx_Khmc.ListIndex=0'显示第一条记录EndIfrs2.Close'关闭记录集Dimrs3AsNewADODB.Recordsetrs3.Open"select*fromtb_Client_khmyd",cnn,adOpenKeysetIfrs3.RecordCount>0ThenFori=0Tors3.RecordCount-1Cbx_Myd.AddItemTrim(rs3.Fields("khmyd_myd"))'向Cbx_Myd中添加数据项rs3.MoveNextNextiEndIfIfCbx_Myd.ListCount=0ThenCbx_Myd.Text=""ElseCbx_Myd.ListIndex=0EndIfrs3.CloseCallview_data'调用本模块中的子定义过程显示数据信息Fori=0ToText1.UBoundText1(i).Enabled=FalseNextiDtp_Tsrq.Value=Date:Cbx_Khmc.Enabled=False:Cbx_Myd.Enabled=False:Dtp_Tsrq.Enabled=FalseEndSub本系统中的数据库采用的是英文字段,因此在数据表显示的时候,将会显示英文字段,所以,在程序运行时,当遇到用于显示数据信息的时候,先调用自定义过程,设置DataGrid控件中的表头为中文,自定义过程的代码如下:SubDgr_Title()'设置DataGrid控件的标题Dgr_Khts.Columns(0).Caption="客户投诉编号":Dgr_Khts.Columns(1).Caption="企业名称"Dgr_Khts.Columns(2).Caption="投诉人":Dgr_Khts.Columns(3).Caption="投诉主题"Dgr_Khts.Columns(4).Caption="投诉内容":Dgr_Khts.Columns(5).Caption="投诉日期"Dgr_Khts.Columns(6).Caption="处理办法":Dgr_Khts.Columns(7).Caption="客户满意度"Dgr_Khts.Columns(8).Caption="投诉受理人":Dgr_Khts.Columns(9).Caption="备注信息"EndSub在本窗体中将数据信息显示定义为自定义过程,在显示数据信息时,调用自定义过程,这样可避免同样的代码重复编写,提高程序代码的可重用性。数据信息显示自定义过程的关键代码如下:Subview_data()IfAdodc1.Recordset.RecordCount>0ThenText1(0).Text=Dgr_Khts.Columns(0):Cbx_Khmc.Text=Dgr_Khts.Columns(1)Text1(1).Text=Dgr_Khts.Columns(2):Text1(2).Text=Dgr_Khts.Columns(3)Text1(3).Text=Dgr_Khts.Columns(4):Dtp_Tsrq.Value=Dgr_Khts.Columns(5)Text1(4).Text=Dgr_Khts.Columns(6):Cbx_Myd.Text=Dgr_Khts.Columns(7)Text1(5).Text=Dgr_Khts.Columns(8):Text1(6).Text=Dgr_Khts.Columns(9)EndIfEndSub4.5客户投诉满意程度分析“客户投诉满意程度分析”窗体可以根据客户投诉的满意程度,以不同的形式(条形、线形、三维、列表)显示客户对投诉处理的满意程度。在程序运行时,单击“客户服务”主菜单下的“客户投诉满意程度分析”子菜单,即可进入到“客户投诉满意程度分析”窗体中。该窗体的运行结果如图14所示。图14客户满意程度分析运行结果1.窗体设计(1)在“工程”中新建一个窗体,将窗体的“名称”设置为Frm_Khfw_Tsmydfx,Caption属性设置为“客户投诉满意程度分析”,MaxButton属性设置为False。(2)向窗体中添加1个MSChart控件,由于该控件属于ActiveX控件,在使用之前必须从“部件”对话框中添加到工具箱。添加方法如下:在“工程”/“部件”对话框中勾选“MicrosoftChartControl6.0(SP4)”列表项,单击【确定】按钮之后即可将MSChart控件添加到工具箱当中。MSChart控件用于图形显示分析结果。(3)向窗体中添加1个DataGrid控件和1个ADO控件,设置DataGrid控件的“名称”属性为Dgr_Mydfx,设置Caption属性为“客户满意程度分析表”,DataSource属性为Adodc1。CommandType属性设置为2–adCmdTable,Adodc1的RecordSorce属性设置为tb_Client_mydtj,Visible属性设置为False。其中ADO控件用于连接满意度统计表,DataGrid控件用于显示满意度统计信息。(4)向窗体上添加5个CommandButton控件。2.代码设计在窗体加载时,统计客户投诉表中的数据信息,并根据客户满意度设置表中的满意度级别,将相应的满意度级别和该级别的数量统计并添加到满意度统计表中,根据该表中的数据信息在MSChart控件或DataGrid控件中显示相应的信息。PrivateSubForm_Load()Adodc1.ConnectionString=PublicStr'数据连接'清空满意度统计数据表中的数据信息cnn.Execute"deletetb_Client_mydtjselect*fromtb_Client_mydtj"rs1.Open"select*fromtb_Client_khmyd",cnn,adOpenKeyset'打开数据连接Ifrs1.RecordCount>0Then'如果记录数大于零S1=rs1.RecordCount'将记录数赋给变量S1Fori=0Tors1.RecordCount-1'从零到记录总数减一作循环Mystr=rs1.Fields("khmyd_myd")'将字段khmyd_myd中的记录赋给Mystr变量'打开数据集对象,查看满意程度为Mystr变量中存储的字符串的记录数量rs2.Open"select*fromtb_Client_khtswherekhts_khmyd='"+Mystr+"'",cnn,adOpenKeysetIfrs2.RecordCount>=0Then'如果记录数大于等于零rs3.Open"select*fromtb_Client_mydtj",cnn,adOpenKeyset,adLockOptimistic'打开数据集对象'向tb_Client_mydtj表中添加数据记录rs3.AddNew'添加一条新记录rs3.Fields("mydtj_myd")=Mystr'将Mystr赋给mydtj_myd字段rs3.Fields("mydtj_sl")=rs2.RecordCount'将该满意程度的记录数赋给mydtj_sl字段rs3.Update'刷新rs3.Close'关闭数据集对象EndIfrs2.Close'关闭数据集对象rs1.MoveNext'记录加一Nexti'循环加一EndIfrs1.Close'关闭数据集对象'打开tb_Client_mydtj表的数据集对象rs4.Open"select*fromtb_Client_mydtjorderbymydtj_sldesc",cnn,adOpenKeysetIfrs4.RecordCount>0Then'如果记录数大于零ReDimarrValues(1ToS1,1To2)'定义动态数组Fori=1ToS1'给数组赋值arrValues(i,1)=""&rs4!mydtj_mydarrValues(i,2)=rs4!mydtj_slrs4.MoveNextNextiMSChart1.ChartData=arrValues'图表显示数据MSChart1.Title="客户满意度分析图"'设置图表名称MSChart1.Title.VtFont.Size=15rs4.Close'关闭数据集对象EndIfAdodc1.Refresh'刷新ADODC控件SetDgr_Mydfx.DataSource=Adodc1'设置DataGrid的DataSource属性CallDgr_Title'调用自定义程序设置DataGrid控件中的数据表表头Dgr_Mydfx.Visible=False'DataGrid控件不可见Cmd_Tx_Click'执行条形显示事件EndSub4.6客户信息查询在“客户信息查询”窗体中,用户可以根据客户信息(tb_khxx)表中的任何关键字及查询条件,查询客户的相关信息。单击“信息查询”菜单下的“客户信息查询”子菜单,即可进入到客户信息查询窗体中,该窗体的运行结果如图15所示。图15客户信息查询窗体运行结果1.窗体设计(1)在“工程”中新建一个窗体,将窗体的“名称”设置为Frm_Xxcx_Khxxcx,Caption属性设置为“客户信息查询”,MaxButton属性设置为False。(2)向窗体上添加2个ComboBox控件,设置其“名称”分别为Cbx_Field和Cbx_Oper,分别用于存储查询的字段名和查询方式。(3)向窗体中添加1个DataGrid控件和1个ADO控件,设置DataGrid控件的“名称”为Dgr_Kh,DataSource属性为Adodc1。Adodc1的RecordSource属性设置为select*fromtb_khxxorderbykhxx_id,Visible属性设置为False。其中DataGrid控件用于显示客户表中的数据信息,ADO控件用于连接客户信息表。2.代码设计在窗体加载时,将客户表中的字段信息,添加到Cbx_Field控件中,其实现的关键代码如下:PrivateSubForm_Load()Adodc1.ConnectionString=PublicStrAdodc1.RecordSource="select*fromtb_khxx"Adodc1.RefreshSetDgr_Kh.DataSource=Adodc1CallDgr_Title'调用过程Fori=0ToAdodc1.Recordset.Fields.Count-1Cbx_Field.AddItemDgr_Kh.Columns(i).Caption'向控件中添加数据项NextiCbx_Field.ListIndex=0'显示数据项中的第一条记录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=0EndSub当用户选择和输入相应的查询条件,单击【确定】按钮,触发该控件的Click事件的时候,执行相应的查询语句,实现的代码如下:PrivateSubCmd_Ok_Click()Fld1=Adodc1.Recordset.Fields.Item(Cbx_Field.ListIndex).NameSelectCaseAdodc1.Recordset.Fields(Cbx_Field.ListIndex).TypeCase200'字符数据IfCbx_Oper.Text="like"Thensql="select*fromtb_khxxwhere"&Fld1&"like+'%'+'"+Txt_Key+"'+'%'"Elsesql="select*fromtb_khxxwhere"&Fld1&Cbx_Oper&"'"+Txt_Key+"'"EndIfCase135'日期数据IfCbx_Oper.Text="like"ThenMsgBox"日期型数据不能选用“Like”作为运算符!",,"提示窗口"Cbx_Oper.ListIndex=1EndIfIfIsDate(Txt_Key)=FalseThenMsgBox"请输入正确的日期!",,"提示窗口"rs.CloseExitSubEndIfsql="select*fromtb_khxxwhere"&Fld1&Cbx_Oper&"'"+Txt_Key+"'"Case6'货币数据IfIsNumeric(Txt_Key)=FalseThenMsgBox"请输入正确的数据!",,"提示窗口"rs.CloseExitSubEndIfIfCbx_Oper.Text="like"ThenMsgBox"货币数据不能选用“Like”作为运算符!",,"提示窗口"Cbx_Oper.ListIndex=1EndIfsql="select*fromtb_khxxwhere"&Fld1&Txt_KeyCase131'数字数据IfCbx_Oper.Text="like"ThenMsgBox"数字数据不能选用“Like”作为运算符!",,"提示窗口"Cbx_Oper.ListIndex=1EndIfIfIsNumeric(Txt_Key)=FalseThenMsgBox"请输入正确的数据!",,"提示窗口"rs.CloseExitSubEndIfsql="select*fromtb_khxxwhere"&Fld1&Cbx_Oper&Txt_KeyCaseElseIfCbx_Oper.Text="like"Thensql="select*fromtb_khxxwhere"&Fld1&"like+'%'+'"+Txt_Key+"'+'%'"Elsesql="Select*fromtb_khxxwhere"&Fld1&Cbx_Oper&"'"+Txt_Key+"'"EndIfEndSelectAdodc1.RecordSource=sql&"orderbykhxx_id"Adodc1.RefreshSetDgr_Kh.DataSource=Adodc1CallDgr_TitleEndSub4.7国内城市区号邮编查询“国内城市区号邮编查询”窗体是客户管理系统中比较有特点的窗体之一,在该窗体中以地图的形式显示全国信息,当用户的鼠标移动到相应的省份时,该省份名称即凹陷以突出显示,如图16所示,在右边的空白处即可显示该省份的资源信息,当用鼠标单击该省份时,即可进入到该省份的窗体中,在该省份的窗体中查询相应的邮编区号信息,如图17所示。在该窗体中除了可以以地图的形式显示信息之外,还可以以列表的形式显示全国的区号和邮编信息。图16全国邮编区号查询窗体1.窗体设计(1)在“工程”中新建一个窗体,将窗体的“名称”设置为Frm_Xxcx_Yb,Caption属性设置为“国内城市邮编区号查询”,MaxButton属性设置为False。(2)向窗体中添加1个PictureBox控件,设置其Picture属性。该控件用于显示全国地图信息。(3)向窗体中添加1个DataGrid控件和1个ADO控件,设置DataGrid控件的“名称”为Dgr_Yb,DataSource属性为Adodc1。Adodc1的CommandType属性设置为1–adCmdText,RecordSource属性设置为select*fromtb_Client_csxx,Visible属性设置为False。其中DataGrid控件用于显示全国城市的邮编和区号信息。Adodc1用于数据连接。(4)向窗体中添加1个Label控件,设置其“名称”为Lbl_info,用于当鼠标移动到相应的省份时,显示省份资源信息。(5)向窗体上添加34个Label控件,将其设置为以Lbl_Province为“名称”的控件数组,将每个Label控件放置在省份名称上,并设置其BackStyle属性为0–Transparent,Caption属性设置为空。2.代码设计在程序运行时,当鼠标移动到放置在省份名称上的Lbl_Province控件上时,设置Label控件的边框形式为有边框,并在右边的空白处显示相应的省份资源信息,其实现的代码如下:PrivateSubLbl_Province_MouseMove(IndexAsInteger,ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)SelectCaseIndexCase0……此处代码有删减,请参见源程序Case14'吉林Lbl_Province(14).BorderStyle=1rs1.Open"select*fromtb_Client_sfzywheresfzy_sfmc='吉林省'",cnn,adOpenKeysetIfrs1.RecordCount>0ThenLbl_Info.Caption="省份资源简介"+Chr(10)+Chr(10)+rs1.Fields("sfzy_zyms")EndIfrs1.Close……此处代码有删减,请参见源程序EndSelectEndSub当鼠标离开Lbl_Province控件,在Picture控件上移动时,将Label控件的边框形式设置为0(无边框形式),并清空Lbl_info文本框。这样用户在操作时,会有互动的感觉,其代码的实现如下所示:PrivateSubPicture1_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)Fori=0To33Lbl_Province(i).BorderStyle=0Lbl_info.Caption=""NextiEndSub4.8区号邮编查询“吉林省区号邮编查询”窗体是全国省份区号查询窗体中的一个,现在以吉林省为例,简单介绍一下该窗体设计和代码编写思路。如图17所示的即为运行效果。图17吉林省区号邮编查询窗体1.窗体设计(1)在“工程”中新建一个窗体,将窗体的“名称”设置为Frm_Province_Jilin,Caption属性设置为“吉林省”,MaxButton属性设置为False。(2)向窗体上添加1个PictureBox控件,设置其Picture属性为“客户管理系统\Program\Image\地图\jilin.jpg”。该控件用于显示吉林省地图信息。(3)向窗体上添加1个DataGrid控件和1个ADO控件,设置DataGrid控件的“名称”为Dgr_Yb,DataSource属性为Adodc1。Adodc1的CommandType属性设置为1–adCmdText,RecoreSorce属性设置为select*fromtb_Client_csxxwherecsxx_sfmc='吉林省',Visible属性设置为False。其中DataGrid控件的用于显示吉林省各县市的城市区号和邮编信息。ADO控件用于数据连接。(4)向窗体上添加1个Label控件,设置其“名称”为Lbl_info,用于当鼠标移动到相应的城市上时,显示该城市的邮编和区号信息。(5)向窗体上添加若干个Label控件,将其设置为以Lbl_Jilin为“名称”的控件数组,将每个Label控件放置在各个城市名称上,并设置其BackStyle属性为0–Transparent,Caption属性设置为空。(6)向窗体上添加2个OptionButton控件,分别设置其“名称”为Otn_Dt和Otn_Lb,设置其Caption属性为“地图显示”和“列表显示”。(7)向窗体上添加其他控件。2.代码设计在程序运行时,当鼠标移动到放置在城市名称上的Lbl_Jilin控件上时,Lbl_Jilin控件出现边框,并在右边的Lbl_info控件中显示该城市的邮编和区号信息。当鼠标离开时,Lbl_Jilin控件设置为无边框。其设计思路和代码实现与全国城市区号邮编查询窗体的实现方式基本相同,在这里就不再重复。当用户单击选项按钮【列表显示】时,系统将图片隐藏,并显示相应的列表信息,用户可以在下面的文本框中输入要查询的城市名称,即可查询出相应城市的邮编和区号信息,其实现界面如图18所示。图18吉林省邮编区号查询之列表显示其关键代码如下所示:PrivateSubOtn_Lb_Click()'列表显示IfOtn_Lb.Value=TrueThenPicture1.Visible=FalseDgr_Yb.Visible=TrueFrame2.Visible=TrueDgr_Yb.Top=300:Dgr_Yb.Left=200:Dgr_Yb.Height=4000Txt_Key.Text=""CallDgr_Title'调用自定义过程EndIfEndSub用户在下面的文本框中输入要查询的城市名称,此时文本框的背景色设置为蓝色,当文本框失去焦点时,背景色变为白色。这样设置对操作用户有鲜明的提示作用,和用户的互动比较密切。其实现的代码如下:PrivateSubTxt_Key_GotFocus()'文本框获得焦点Txt_Key.BackColor=&HFFFF80EndSubPrivateSubTxt_Key_LostFocus()'文本框失去焦点Txt_Key.BackColor=&HFFFFFFEndSub
附录A参考文献1.VisualBasic精彩编程200例机械工业出版社 赛奎春、高春艳等2003年1月 2.VisualBasic数据库开发实例解析机械工业出版社 刘志铭、高春艳等2003年8月 3.VisualFoxPro数据库开发实例解析机械工业出版社 王晶莹、王国辉等2003年9月 4.PowerBuilder数据库开发实例解析机械工业出版社 华传铭、张振坤等2003年9月 5.Delphi数据库开发实例解析机械工业出版社赛奎春、郑骁鹏等2004年2月 6.PowerBuilder精彩编程200例机械工业出版社张振坤、李文立等 2004年9月7.VisualFoxPro精彩编程200例机械工业出版社王国辉、董韶华等2004年9月8.ASP数据库开发实例解析机械工业出版社李严、于亚芳、王国辉 2004年12月9.Delphi工程应用与项目实践机械工业出版社宋坤、赵智勇等2005年1月 10.VisualBasic工程应用与项目实践机械工业出版社 高春艳、李俊民等2005年1月 11.VisualC++工程应用与项目实践机械工业出版社 张雨、阮伟良等5005年1月12.JSP工程应用与项目实践机械工业出版社陈威、白伟明、李楠 2005年2月13.ASP工程应用与项目实践机械工业出版社王国辉、牛强、李南南 2005年4月14.VisualBasic信息系统开发实例精选机械工业出版社 高春艳、李俊民、张耀庭等 2005年7月15.ASP信息系统开发实例精选机械工业出版社王国辉、牛强、李南南等2005年7月 16.Delphi信息系统开发实例精选机械工业出版社宋坤、赵智勇、刘强等2005年7月 17.Visualfoxpro数据库开发关键技术与实例应用人民邮电出版社周桓、张雨、王国辉2004年5月18.PoweBuilder数据库开发关键技术与实例应用人民邮电出版社刘志铭张振坤冯文萃2004年5月19.Delphi数据库开发关键技术与实例应用人民邮电出版社赛奎春陈紫鸿宋昆2004年5月20.Visualbasic数据库开发关键技术与实例应用人民邮电出版社高春艳、李艳2004年5月21.VisualC++管理信息系统完整项目实例剖析人民邮电出版社明日科技2005年7月 22.VisualBasic管理信息系统完整项目实例剖析人民邮电出版社明日科技2005年7月 23.PowerBuilder管理信息系统完整项目实例剖析人民邮电出版社明日科技2005年7月 24.VisualFoxPro管理信息系统完整项目实例剖析人民邮电出版社明日科技2005年7月 25.SQLServer数据库开发实例解析机械工业出版社宋昆、李严等2006年1月26.Access数据库开发实例解析机械工业出版社李俊民、高春燕等2006年1月
附录B数据表(1)tb_Client_mydtj(满意度统计表)满意度统计表主要用于在客户满意度分析窗体中统计客户对企业满意程度的信息。该表结构如表B.1所示。表B.1满意度统计表字段名数据类型长度描述mydtj_mydvarchar30满意度名称mydtj_slnumeric9满意度数量(2)tb_Client_lxrxx(联系人信息表)联系人信息表主要保存联系人的详细信息。该数据表的结构如表B.2所示。表B.2联系人信息表字段名数据类型长度描述lxrxx_idvarchar20联系人编号lxrxx_qymcvarchar20企业名称lxrxx_xmvarchar30联系人姓名lxrxx_xbvarchar5联系人性别lxrxx_csnydatetime8出生年月lxrxx_nlvarchar5联系人年龄lxrxx_zwvarchar30联系人职位lxrxx_bgdhvarchar30联系人办公电话lxrxx_Emailvarchar50联系人电子邮件lxrxx_sjvarchar20联系人手机lxrxx_grjjtext16个人简介lxrxx_djrqdatetime8登记日期lxrxx_xxdjrvarchar30信息登记人lxrxx_bzvarchar50备注(3)tb_khxx(客户信息表)客户信息表主要用于保存客户的详细信息。该数据表的结构如表B.3所示表B.3客户信息表字段名数据类型长度描述khxx_idvarchar30客户编号khxx_mcvarchar50企业名称khxx_qyxzvarchar30企业性质khxx_qylxvarchar30企业类型khxx_qyzxvarchar30企业资信khxx_qydzvarchar50企业地址khxx_szsfvarchar30所属省份khxx_szcsvarchar30所属城市khxx_gsybvarchar6公司邮编khxx_frdbvarchar20法人代表khxx_khyhvarchar50开户银行khxx_yhzhvarchar50银行帐号khxx_nshvarchar50纳税号khxx_ICcardvarchar50客户IC卡号khxx_gswzvarchar50公司网址khxx_gsdhvarchar20公司电话khxx_gsczvarchar20公司传真khxx_lxrvarchar30主要联系人khxx_lxrdhvarchar20联系人电话khxx_khjbvarchar20客户级别khxx_bztext16备注信息(4)tb_Client_khmyd(客户满意度表)客户满意度表主要用于保存客户满意程度的信息。该数据表的结构如表B.4所示。表B.4客户满意度表字段名数据类型长度描述khmyd_idvarchar30客户满意度编号khmyd_mydvarchar50客户满意度khmyd_bztext16备注信息(5)tb_Client_menu菜单表(tb_Client_menu)菜单表主要保存主窗体上的菜单信息。该数据表的结构如表B.5所示表B.5菜单表字段名数据类型长度描述menu_idvarchar10子菜单编号menu_submenuvarchar50子菜单名menu_menuvarchar50主菜单名menu_menuidvarchar50主菜单编号(6)tb_bdwxx(本单位信息表)本单位信息表,用于显示本单位的相关信息。该数据表的结构如表B.6所示表B.6本单位信息表字段名数据类型长度描述bdwxx_mcnvarchar50单位名称bdwxx_lxdznvarchar50联系地址bdwxx_ybnvarchar50邮政编码bdwxx_cznvarchar50传真bdwxx_frdbnvarchar50法人代表bdwxx_lxdhnvarchar50联系电话bdwxx_khyhnvarchar50开户银行bdwxx_yhzhnvarchar50银行账号bdwxx_wznvarchar50网址bdwxx_nshnvarchar50纳税号(7)tb_Client_cpxs(产品信息表)产品信息表,用于显示本单位生产产品的的相关信息。该数据表的结构如表B.7所示表B.7产品信息表字段名数据类型长度描述cpxs_idvarchar30产品销售编号cpxs_mcvarchar50销售产品名称cpxs_cpdjvarchar30产品单价cpxs_xsslvarchar10销售数量cpxs_ywlvarchar30业务量cpxs_khmcvarchar50客户名称cpxs_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 脑积水临床护理措施
- 高血压4个分级护理
- 高中体育与健康新课标解读
- 保护我们的皮肤
- 肠套护理查房
- 小学生感受幸福心理健康课
- 骑行户外活动组织指南
- 2025年度种羊繁殖技术输出与购销合作合同
- 2025版变更抚养权及子女生活费用及教育费用支付协议
- 2025版智能交通系统股权转让协议(含城市交通规划)
- 老旧厂房改造-洞察及研究
- 民政局财务管理制度
- 2025超市员工劳动合同模板
- 2024-2025学年人教版数学五年级下学期期末试卷(含答案)
- 提前解约赔偿协议书
- 2025-2030年中国变压器套管行业市场现状供需分析及投资评估规划分析研究报告
- 微风发电项目可行报告
- 装修退款协议书模板
- 2025年重点高中中考自主招生考试物理试卷试题(含答案详解)
- 防腐木交易合同协议
- 文化展厅概念设计
评论
0/150
提交评论