客户关系管理系统论文.docx
《客户关系管理系统论文.docx》由会员分享,可在线阅读,更多相关《客户关系管理系统论文.docx(45页珍藏版)》请在冰豆网上搜索。
客户关系管理系统论文
客户关系管理系统
学院
专业
班级
学号
姓名
指导教师
教师职称
年
月
日
摘要
【摘要】
随着市场体系的日益完善,我们已经进入了一个买方市场时代。
选择空间扩大、购买渠道拓宽、消费心态和购买行为越发成熟,使客户再不会对某一企业或者产品盲目地保持绝对忠诚,如何不断改善客户关系,掌据更多的客户信息,提高客户满意度;如何在日益激烈的市场竞争中把握机会,占有更大的市场份额;如何建立高效业务流程,降低运营成本,获取更多的利润,这些已成为每个企业怕面临的首要问题。
这种情况下,企业要在激烈的市场竞争中立于不败之地,就必须找一种全新的管理理念和管理手段,对其内部和外部资源进行有效的整合。
新一代一ERP产品正在向客户端和供应端延伸,客户端的延伸是客户关系管理,而供应端的延伸则是跨企业供应链的同步管理。
对于每个企业来说客户管理的完善程度将直接影响企业的经济效益。
【关键词】客户关系管理系统、库存管理、报表管理
目录
摘要1
0引言1
1系统分析2
1.1需求分析2
1.2可行性分析2
2总体设计2
2.1项目规划2
2.2系统功能结构图3
3系统设计3
3.1设计目标3
3.2开发及运行环境4
3.3数据库设计4
4客户管理模块设计4
4.1客户信息管理设计4
4.2联系人信息管理设计10
4.3合同信息管理13
5服务管理16
5.1反馈信息添加16
5.2反馈信息修改17
6报表管理19
6.1客户报表模块19
6.2联系人报表模块25
附录A参考文献
附录B数据表
0引言
信息时代的今天,各企业商家所关心的不再局限于自身的产品质量、生产设备、员工的素质,更多的是关心自己的销售群体(客户群),关心他们的想法、需求、购卖目的。
众所周知,顾客就是我们的上帝,我们只有满足了上帝的需求,上帝才能给我们带来一切。
一个企业要生存、要发展,就是要不断的满足客户的需求,无论我们做出什么样的决策,最终都是为了这个的目。
每个领域都有自身生存法则,但无论这个法则如何变化,为客户服务的宗旨是不会变的。
作为企业,我们只有不断地挖掘新客户,维护好和老客户的关系,占领市场客户群体的绝大多数份额,才能在整个领域取得一席之地。
海尔总裁张瑞敏指出:
“客户资源决定企业核心竞争力”,上个世纪80年代是物品短缺的时代,而现在,信息时代是客户短缺的时代。
企业发展所需的各种资源(包括人力、物力、生产力)都是可以创造的,但每个领域中的客户资源确是有限的,所以通过创新(产品的创新、企业管理的创新、服务的创新)来抢占有限的客户资源、维护好企业和客户之间的关系、了解客户的需求动向,成为企业生存发展面临的重大问题。
1系统分析
1.1需求分析
通过调查研究,要求系统满足有以下功能;
❑由于操作人员的计算机知识普遍较差,要求有良好的人机界面。
❑方便的数据选择查询,支持模糊查询功能。
❑管理客户的详细信息:
包括客户的基本信息、联系人信息、和客户签写的合同信息。
❑记录产品出库、入库的详细信息。
❑为更多的了解客户的需求,设计了服务模块,用以记录客户的反馈信息,并对反馈信息进行管理。
❑和客户联系人之间通过邮件(e-mail)进行联系,对联系人邮件地址进行管理。
❑提供信息数据导出Excel报表的功能,提供报表的打印功能。
❑对用户信息进行管理,并为用户设置管理权限。
❑数据计算自动完成,尽量减少人工干预。
❑修改当前管理员密码的功能。
❑系统退出。
1.2可行性分析
❑经济性
通过计算机网络对客户信息进行管理,使企业对自身拥有的客户有了一个更为深该的了解。
不仅能全面的统计客户的购买数量,及时的了解客户的动态信息,还可以根据计算机记录的数据信息,不断的调整企业的生产发展动向。
❑技术性
系统中设置了email管理模块,此模块大大的方便了企业和客户联系人之间的沟通。
设置导入Excel功能、Web打印功能,方便用户报表打印。
2总体设计
2.1项目规划
客户关系管理系统是一个典型的数据库开发应用程序,由客户管理模块、库存管理模块、服务管理模块、报表管理模块、email管理模块、用户管理模块组成,规划系统功能模块如下:
❑客户管理模块
该模块主要功能是对客户信息、客户联系人信息、合同信息进行添加、删除、查询等操作。
❑库存管理模块
该模块的主要功能是管理入库、出库信息、产品信息进行管理,其中包括对库存信息、产品信息进行添加、删除、查询等操作。
❑服务管理模块
该模块主要功能是对客户反馈信息进行添加、删除、查询等操作。
❑报表管理模块
该模块主要通过查询条件,对各种信息进行查询,并将得到的结果导出Excul表、进行打印报表等操作(其中信息包括:
客户信息、联系人信息、反馈客户信息、库存信息)。
❑email管理模块
该模块主要管理客户联系人email地址信息,对企业客户之间的email文件进行管理,向客户发送邮件。
❑用户管理
该模块主要管理用户信息的添加、删除等操作,并设置用户的使用权限。
2.2系统功能结构图
图1数据表树型结构图
3系统设计
3.1设计目标
本系统是针对中小型企业通过网络实现对客户的管理而设计的,主要实现如下目标:
❑对客户信息(客户基本信息、联系人信息、合同信息)进行全面管理。
❑及时查看库存信息,并通过网站对入库、出库信息进行管理。
❑强大的客户信息、联系人信息报表导出、打印功能
❑及时了解客户的反馈信息,并对其进行管理。
❑实现各种信息的选择查询、模糊查询功能等。
❑实现了和客户通过网络在线沟通的功能,并对客户联系人的email地址进行管理。
❑管理员可以添加操作员信息、设置操作员的权限。
❑对用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误。
❑要求系统的数据保密性强,通过为每个用户设置使用权限来实现。
❑系统运行稳定、安全可靠。
❑键盘操作,快速响应。
3.2开发及运行环境
硬件平台:
❑CPU:
P41。
8GHz;
❑内存:
256MB以上。
软件平台:
❑操作系统:
Windowsxp/Windows2000/Windows2003;
❑数据库:
SQLServer2000;
❑浏览器:
IE5.0,推荐使用IE6.0;
❑Web服务器:
IIS5.0;
❑分辨率:
最佳效果1024*768。
3.3数据库设计
本系统数据库采用SQLServer2000数据库,系统数据库名称为db_System。
数据库db_System中包含8张表。
关于数据库中的数据表请参见附录B。
4客户管理模块设计
客户管理模块的主要功能是对客户信息进行管理,主要包括客户信息管理、联系人信息管理和合同信息管理3个部分。
4.1客户信息管理设计
客户信息管理设计主要包括对客户信息进行显示/查询、添加、修改和删除4个部分的功能。
用户可以通过功能导航进入客户信息管理页面,页面设计效果如图3所示。
图3客户信息管理页面的设计效果
在客户信息管理页面中,用户可以在查询区域输入查询条件,并选择查询方式,查找相关的客户信息;也可以单击客户信息,在展示区会显示此客户的详细信息,也可对客户信息进行修改;在选中每条信息前面的复选框,单击【删除】按钮,选中的客户信息将被删除。
1.客户信息显示/查询
用户可以在客户信息管理页面中的查询部分,输入一定的查询条件进行客户信息的查询。
当用户在查询部分输入条件后,并单击【查询】按钮,用户添加的查询条件将被提交给本页,本页将根据用户提交的表单信息对数据库进行检索,并将结果集通过操作区输出到浏览器中。
客户信息查询页面涉及的HTML表单元素如表1所示。
表1客户信息查询页面涉及的HTML表单元素
名称
类型
含义
重要属性
form1
Form
表单
method="post"action=""
post
hidden
判断表单是否提交
value="true"
tiao
select
查询类型
selected<%endif%>>模糊查询
selected<%endif%>>精确查询
sel
select
关键字类别
selected<%endif%>>客户名称
……
selected<%endif%>>企业性质
search
text
关键字
">
Submit
submit
查询按钮
class="input"value=" 查 询 "
在表单提交之后,在本页将数据进行处理。
程序代码如下:
<%
ifrequest("post")<>""then
ifrequest("tiao")="模糊查询"then‘条件输入为模糊查询时获得相应的记录集
setrs=server.CreateObject("adodb.recordset")
sql="select*fromtb_Clientwhere"&request("sel")&"like'%"&request("search")&"%'orderbyiddesc"
rs.opensql,conn,1,1
else‘条件输入为精确查询时获得相应的记录集
setrs=server.CreateObject("adodb.recordset")
sql="select*fromtb_Clientwhere"&request("sel")&"='"&request("search")&"'orderbyiddesc"
rs.opensql,conn,1,1
endif
else‘默认状态下获得相应的记录集
setrs=server.CreateObject("adodb.recordset")
sql="select*fromtb_Clientorderbyiddesc"
rs.opensql,conn,1,1
endif
'实现分页
ifnotrs.eofthen
tol=rs.recordcount'总记录数
rs.pagesize=15'获取每页显示的记录数
maxpage=rs.pagecount
requestpage=clng(request("p"))'获取当前页
ifrequestpage=""orrequestpage=0then'当接收页码的值为空或者0时使其等于1
requestpage=1
endif
ifrequestpage>maxpagethen'在接收页码的值大于最大页码时,使其等于最大页码
requestpage=maxpage
endif
ifrequestpage<>1then'向上或向下移动相应的记录
rs.move(requestpage-1)*rs.pagesize
endif
fori=1tors.pagesizeandnotrs.eof'利用循环输出数据
ifimod2=1then
bg="#FFFFFF"
else
bg="#efefef"
endif
%>
style="cursor:
hand"onClick="window.parent.frames('bo').window.location='KeHu_ed.asp?
id=<%=rs("id")%>'"onMouseOver="HLItem(this)"onMouseOut="Re(this)">
<%=rs("ClientName")%>
<%=rs("ClientCountry")%> | <%=rs("ClientCity")%> | <%=rs("ClientTel")%> | <%=rs("ClientEmail")%> | <%
rs.movenext
ifrs.eofthenexitfor’如果记录集为空那么跳出循环
next
else
response.Write("没有客户信息,请添加")
endif%>
当鼠标在某条记录上悬停时,其记录所在行的背景颜色会发生改变,此功能用到的js代码如下:
functionHLItem(obj)//鼠标经过
{
obj.oldClassName=obj.className;
obj.className="List";
}
functionRe(obj)//鼠标移开
{
obj.className=obj.oldClassName
}
其调用的代码如下:
style="cursor:
hand"onClick="window.parent.frames('bo').window.location='KeHu_ed.asp?
id=<%=rs("id")%>'"onMouseOver="HLItem(this)"onMouseOut="Re(this)">
客户信息显示/查询页面的运行结果如图4所示:
图4客户信息查询页面的运行结果
2.客户信息添加
客户信息添加的主要功能是用于用户添加客户信息。
在查询页面中单击【添加】按钮,在展示区中会显示添加页面,其设计效果如图5所示。
如图5客户信息添加页面设计效果
当单击添加页面中的【添加】按钮时,调用js编写的自定义函数(checks()),通过函数验证填写的数据是否正确,该函数的代码如下:
functionchecks()
{
if(form1.ClientName.value=="")
{
alert("公司名称不能为空");
returnfalse;
}
……//中间过程不详细介绍,因为实现方法类似
elseif(form1.ClientCyc.value=="")
{
alert("需求周期不能为空");
returnfalse;
}
}
表单提交之后,添加的数据将被提交到本页进行处理,本页数据处理的程序代码如下:
<%
ifrequest("post")<>""then
setrs=server.CreateObject("adodb.recordset")
sql="select*fromtb_Client"
rs.opensql,conn,1,3
rs.addnew
rs("ClientName")=request("ClientName")‘添加公司名称
rs("ClientAddress")=request("ClientAddress")‘公司地址
rs("ClientTel")=request("ClientTel")‘公司电话
rs("ClientFax")=request("ClientFax")‘公司传真
rs("ClientNumber")=request("ClientNumber")‘邮政编码
rs("ClientPage")=request("ClientPage")‘公司网址
rs("ClientEmail")=request("ClientEmail")‘公司email
rs("ClientCountry")=request("ClientCountry")‘所属国家/地区
rs("ClientHabitude")=request("ClientHabitude")‘公司性质
rs("ClientSize")=request("ClientSize")‘公司规模
rs("ClientCity")=request("ClientCity")‘所属城市
rs("ClientPay")=request("ClientPay")‘结款方式
rs("ClientCredit")=request("ClientCredit")‘结款信用
rs("ClientList")=request("ClientList")‘最高订单‘
rs("ClientYear")=request("ClientYear")‘年度订单
rs("ClientCyc")=request("ClientCyc")‘需求周期
rs("SetTime")=now()‘创建时间
rs("EditTime")=now()‘修改时间
rs("SetName")=session("admin_name")‘创建人
rs.update
rs.close
conn.close
response.Write("alert('客户信息添加成功')")‘弹出成功对话框
endif%>
3.客户信息修改
在显示客户详细信息页面,用户可以浏览、修改其客户的详细信息。
进行客户详细信息浏览和修改的页面设计效果如图6所示:
图6客户信息修改页面设计效果
在客户信息修改页面,用户可以浏览客户详细的信息,也可以修改客户的信息(当用户有修改的权限时,那么用户可以进行修改,至于用户权限的实现,将在后面的章节中进行讲解)。
当用户单击【修改】按钮后,修改的数据将被提交到本页进行处理。
数据处理的代码如下:
<%
ifrequest("post")<>""and(rsr("Client")="可写"orrsr("chaoji")="是")then
setrs=server.CreateObject("adodb.recordset")
sql="select*fromtb_Clientwhereid="&request("id")
rs.opensql,conn,1,3
rs("ClientName")=request("ClientName")‘添加公司名称
rs("ClientAddress")=request("ClientAddress")‘公司地址
rs("ClientTel")=request("ClientTel")‘公司电话
rs("ClientFax")=request("ClientFax")‘公司传真
rs("ClientNumber")=request("ClientNumber")‘邮政编码
rs("ClientPage")=request("ClientPage")‘公司网址
rs("ClientEmail")=request("ClientEmail")‘公司email
rs("ClientCountry")=request("ClientCountry")‘所属国家/地区
rs("ClientHabitude")=request("ClientHabitude")‘公司性质
rs("ClientSize")=request("ClientSize")‘公司规模
rs("ClientCity")=request("ClientCity")‘所属城市
rs("ClientPay")=request("ClientPay")‘结款方式
rs("ClientCredit")=request("ClientCredit")‘结款信用
rs("ClientList")=request("ClientList")‘最高订单‘
rs("ClientYear")=request("ClientYear")‘年度订单
rs("ClientCyc")=request("ClientCyc")‘需求周期
rs("EditTime")=now()‘修改时间
rs("SetName")=session("admin_name")‘创建人
rs.update
rs.close
response.Write("alert('客户信息修改成功')")‘弹出成功对话框
endif
%>
4.客户信息删除
在客户信息管理页面,用户可以点选任意一条客户信息前面的复选框,然后单击页面下方的【删除】按钮,被选择的客户信息将被删除。
客户信息删除主要是根据传递的参数(本例中的参数为客户信息的id),将数据库中对应id的客户信息和其他和客户相关的信息全部删除,程序代码如下:
<%
callclient'验证是否有删除客户信息的权限
ifrequest("del")<>""then
kid=Split(Request("del"),",")‘分解字符串成数组
fori=0toubound(kid)
sqld="deletefromtb_Clientwhereid="&clng(kid(i))'删除客户信息
conn.execute(sqld)
sqll="deletefromtb_LinkmanwhereLinkmanClient="&clng(kid(i))'删除客户的联系人信息
conn.execute(sqll)
sqlp="deletefromtb_PactwherePactClient="&clng(kid(i))'删除客户的合同信息
conn.execute(sqlp)
sqlp="deletefromtb_FeedbackwhereFeedbackClient="&clng(kid(i))'删除客户反馈信息
conn.execute(sqlp)
sqlp="deletefromtb_Pro