现在通过QQ和客户联系、洽谈业务及沟通感情的场合越来越多,在微软CRM表单上整合QQ可以方便的显
示客户QQ在线状态,点击图标即可和客户进行QQ聊天。

客户在线状态:

客户离线状态:


输入QQ号码后即时显示在线状态,点击QQ图标后,如果你的QQ程序已经登陆,立即显示QQ对话框,如果
你的QQ程序没有登陆,就会显示QQ登录窗口,登录后就显示对话框,就可以和客户聊天了。如果在
MSCRM中新建一个QQ聊天实体,就可以保存客户的每次聊天内容了。
开发源代码:
1、进入MSCRM4.0“自定义”,进入联系人实体建立两个属性 ,你可以输入自己的名称,不过在代码处要
做相应修改。
显示名称    名称
QQ号码      qq
QQ交谈     qqimage
注意:名称的前缀可能是你默认设置的,在下面的代码处要修改相应的前缀名称。

2、添加这两个属性到你的联系人表单。


3、点击“表单属性”,然后添加“onload”代码:

 if (crmForm.all.new_qq.DataValue != null)
{
var qq=crmForm.all.new_qq.DataValue ;
var field = crmForm.all.new_qqimage_d; var html = "<table border='0' cellspacing='0' cellpadding='0'><tr><img width='77' height='17' style='cursor:hand' src='http://wpa.qq.com/pa?p=1:"+crmForm.all.new_qq.DataValue+":16' alt="+qq+" onclick='Button_OnClick()' /></tr></table>"; field.innerHTML = html;
}
else
{
  var field = crmForm.all.new_qqimage_d; var html = "<table border='0' cellspacing='0' cellpadding='0'><tr><img width='77' height='17' style='cursor:hand' src='http://wpa.qq.com/pa?p=1:00000:16' alt='填写QQ号码' onclick='Button_OnClick()' /></tr></table>";
field.innerHTML = html;
} Button_OnClick = function()
{
  if(crmForm.all.new_qq.DataValue != null)
  {
    var qq=crmForm.all.new_qq.DataValue ;
    var url="tencent://message/?uin="+qq+"&amp;Site=N&amp;Menu=yes";
    var newWin=window.open(url,'','resizable=no,height=3,width=3,toolbar=no,menubar=no,scrollbars=no,location=no,left=10000,top=10000');
    setTimeout(function(){self.focus(); },0);
}
}

4、点击“QQ号码”字段添加“OnChange”代码:
注意:代码里面的字段名称和前缀和你的不一样,你需要做相应修改。

 if (crmForm.all.new_qq.DataValue != null)
{
var qq=crmForm.all.new_qq.DataValue;
var field = crmForm.all.new_qqimage_d; var html = "<table border='0' cellspacing='0' cellpadding='0'><tr><img width='77' height='17' style='cursor:hand' src='http://wpa.qq.com/pa?p=1:"+crmForm.all.new_qq.DataValue+":16' alt="+qq+" onclick='Button_OnClick()' /></tr></table>";
field.innerHTML = html;
}
else
{
var field = crmForm.all.new_qqimage_d; var html = "<table border='0' cellspacing='0' cellpadding='0'><tr><img width='77' height='17' style='cursor:hand' src='http://wpa.qq.com/pa?p=1:00000:16' alt='填写QQ号码' onclick='Button_OnClick()' /></tr></table>";
field.innerHTML = html;
}

5、保存和发布“联系人”实体,你就能看到MSCRM和QQ实时整合的状态了。

ps:如果用了上述方法发现QQ图标显示为未启用,如图

这种情况是因为输入的QQ没有启用QQ商家,启用后才能获取在线状态,不过这种情况并不影响打开聊天对话框进行沟通,付QQ商家注册地址

http://shang.qq.com/widget/consult.php,可以一键免费注册,就可以看到在线离线状态了。

微软CRM4.0 页面表单和腾讯QQ在线整合的更多相关文章

  1. 把JSON数据载入到页面表单的两种思路(对easyui自带方法进行改进)

    #把JSON数据载入到页面表单的两种思路(对easyui自带方法进行改进) ##背景 项目中经常需要把JSON数据填充到页面表单,一开始我使用easyui自带的form load方法,觉得效率很低,经 ...

  2. SpringMVC接收页面表单参数-java-电脑编程网

    body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...

  3. 使用JQuery.Validate插件来校验页面表单有效性

    使用JQuery.Validate插件来校验页面表单有效性​1. [代码] 常见的注册表单元素 <form action="#" method="post" ...

  4. html 页面表单如果是disabled,则不能提交到服务器端,request.getParameter得到的将为null

    html 页面表单如果是disabled,则不能提交到服务器端,request.getParameter得到的将为null 解决方法:使用hidden 利用javascript赋值,传递到后台

  5. 记录ASP.NET页面表单初始状态(主要是为了前台可以根据这个判断页面是否变动了)

    把页面表单状态记录到HiddenField中. 这里只提供后台代码, 前台逻辑根据需求自由定义. 存放值的ViewState: protected Dictionary<string, stri ...

  6. JavaScript学习——使用JS完成注册页面表单校验

    1.步骤分析 第一步:确定事件(onsubmit)并为其绑定一个函数 第二步:书写这个函数(获取用户输入的数据<获取数据时需要在指定位置定义一个 id>) 第三步:对用户输入的数据进行判断 ...

  7. PDF 补丁丁 0.5.0.2731 发布(增加去除页面表单和链接水印功能)

    新的版本增加了简单的删除表单和链接批注的功能,使用该功能可去掉某些软件打上的水印. 在 PDF 文档选项中选中“清除页面所有表单”和“清除页面所有链接批注”项后,程序将会删除页面的表单和链接批注. 效 ...

  8. HTML 之 Web页面表单form中只有一个input的text元素,按回车默认提交

    WEB开发中,如果页面的 form 中只有一个input元素,在该input元素的输入框中按回车(注:此时并没有写对应的onkeydown等事件处理),则浏览器会默认提交表单,请看如下代码: < ...

  9. SpringMVC接收页面表单参数

    一个普通的表单. 表单的代码如下: <%@ page language="java" contentType="text/html; charset=UTF-8&q ...

随机推荐

  1. Python - 面对对象(进阶)

    目录 Python - 面对对象(进阶) 类的成员 一. 字段 二. 方法 三. 属性 类的修饰符 类的特殊成员 Python - 面对对象(进阶) 类的成员 一. 字段 字段包括:普通字段和静态字段 ...

  2. springcloud(五):Eureka提供数据的客户端连接Docker的mysql

    一.提供数据的客户端需要连接数据了,因此需要我们使用mybatis了,等下使用idea生成mybaits和web的依赖 二.提供数据的客户端项目 1.创建项目 2.选择idea自动给我们生成的依赖 3 ...

  3. N - Corporate Identity

    Beside other services, ACM helps companies to clearly state their “corporate identity”, which includ ...

  4. 计算两个日期之间相差的年数月数天数(JS实现)

    前言 如何计算年龄?我的第一直觉做法:(当前时间戳 - 出生时的时间戳)/ (365*86400)  所得结果向下取整.后来发现这种做法获得的结果不准确,不是多了一岁就是少了一岁,不能简单粗暴的这么处 ...

  5. CCEditBox/CCEditBoxImplMac

    #ifndef __CCEditBoxIMPLMAC_H__ #define __CCEditBoxIMPLMAC_H__ #include "cocos2d.h" #if (CC ...

  6. UVa 642 - Word Amalgamation

    题目:给你一个单词列表.再给你一些新的单词.输出列表中又一次排列能得到此新单词的词. 分析:字符串.对每一个字符串的字母排序生成新的传f(str).总体排序,用二分来查找就可以. 说明:注意输出要满足 ...

  7. 通过buildpath 导入jar和在lib下导入的jar包区别

    jar包放置在WEB-INF/lib下和通过build path导入的区别是什么? jar包直接拷贝到WEB-INF/lib下和以userLibrary形式引入的区别? jar包放置在WEB-INF/ ...

  8. C++智能指针--auto_ptr指针

    auto_ptr是C++标准库提供的类模板,头文件<memory>,auto_ptr对象通过初始化指向由new创建的动态内存,它是这块内存的拥有者,一块内存不能同一时候被分给两个拥有者.当 ...

  9. C++组合通信

    #include <iostream> #include<vector> #include<string> using namespace std; class A ...

  10. [NOIP 2014] 生活大爆炸版石头剪刀布

    [题目链接] http://uoj.ac/problem/15 [算法] 按题意模拟即可[代码] #include<bits/stdc++.h> using namespace std; ...