MS CRM 2011 剖析Ribbon与背后的Jscript

简介:

上一篇文章里,我给大家介绍了如何向ribbon按钮传递参数,在这篇文章中,我和大家在一起深度剖析一下ribbon的定义文件以及后边的Jscript。

 

我们还以Connect按钮为例,看看Connect To Another和Connect To Me是怎样工作的。

在sdk\resources\exportedribbonxml文件夹中找到accountribbon.xml这个文件打开。我们先来找Connect To Another这个子选项的定义:

复制代码
<Button Id="Mscrm.Form.account.AddConnectionNew" ToolTipTitle="$Resources:Ribbon.Connection.AddConnectionNew.Label" ToolTipDescription="$Resources:Ribbon.Connection.AddConnectionNew.Tooltip" Command="Mscrm.AddConnectionForm" Sequence="40" LabelText="$Resources:Ribbon.Connection.AddConnectionNew.Label" Alt="$Resources:Ribbon.Connection.AddConnectionNew.Label" />
复制代码

Command定义如下:

复制代码
<CommandDefinition Id="Mscrm.AddConnectionForm"> 
  <EnableRules> 
    <EnableRule Id="Mscrm.FormStateExistingOrReadOnlyOrDisabled" /> 
  </EnableRules> 
  <DisplayRules> 
    <DisplayRule Id="Mscrm.CreateConnection" /> 
    <DisplayRule Id="Mscrm.IsConnectionsEnabledPrimary" /> 
  </DisplayRules> 
  <Actions> 
    <JavaScriptFunction FunctionName="Mscrm.RibbonActions.addConnectionFromForm" Library="/_static/_common/scripts/RibbonActions.js"> 
      <CrmParameter Value="FirstPrimaryItemId" /> 
      <CrmParameter Value="PrimaryEntityTypeCode" /> 
      <CrmParameter Value="PrimaryControl" /> 
      <BoolParameter Value="false" /> 
    </JavaScriptFunction> 
  </Actions> 
</CommandDefinition> 
复制代码

这个Command调用的是_static/_common/scripts/RibbonActions.js文件中Mscrm.RibbonActions.addConnectionFromForm这个函数,有几个参数比如FirstPrimaryItemId,PrimaryEntityTypeCode看起来也应该很眼熟,我们在上一篇文章中刚刚讲到。接下来要做的就是打开RibbonActions.js这个文件来看一下。有两种方法:(1)可以在CRM服务器上找到这个文件;(2)如果你用的是CRM Online,你就没有办法登陆到服务器了,介绍大家使用一个IE自带的工具F12 Developer Tools。

 

打开account的表单,然后按F12,就启动了Developer Tools。

image

选择Script标签,然后在红色的标记里选择JS文件。因为这个文件是一个紧缩版的,难以阅读,所以将文件内容复制粘贴到Visual Studio中来进行搜索。

image

我把Mscrm.RibbonActions.addConnectionFromForm这个函数复制出来,放在这里:

复制代码
Mscrm.RibbonActions.addConnectionFromForm = function (objectId, objectTypeCode, primaryControl, connectToMe) { 
    var $v_0 = String.format("pId={0}&pType={1}", CrmEncodeDecode.CrmNameValueEncode(objectId), CrmEncodeDecode.CrmNameValueEncode(objectTypeCode.toString())); 
    if (connectToMe) 
        $v_0 = String.format("{0}&connectToMe=true", $v_0); 
    openObj(Mscrm.EntityTypeCode.Connection, "", $v_0, null, Mscrm.NavigationMode.NavigationModeNewWindow, null) 
}; 
复制代码

就是这一小段代码完成了Connect按钮的功能。神秘的面纱被一点点揭开了。从这段代码中可以看到CRM系统中有一些自定义的JS函数,我们来一一看一下:

(1) String.format: 如果你懂 C#的话,这个函数就不需要我介绍了,它就是用来格式化字符串的函数。因为在JS并不支持这个函数,所以有很多人都写过自己的JS版的String.format函数。现在CRM为我们写好了,为我们省了很多力气,感谢微软。举一个小例子,来看怎么用。

alert(String.format("Hello Mr.{0}", "Zhu")); 
// Hello Mr.Zhu

(2) CrmEncodeDecode.CrmNameValueEncode:如果你要将一个字符串作为参数放在一个URL里,这个字符串是不能包含一些特殊字符的,比如空格,感叹号,所以字符串要进行编码。下面举一个小例子,可以看到空格的编码为20%,!的编码为21%。

alert(CrmEncodeDecode.CrmNameValueEncode("Good Morning!")); 
//Good%20Morning%21

(3)openObj: 这个函数是用来打开一个新的表单的。你也可以自己试一试。

 

CRM中有无数的按钮,上面用了一个例子来教给大家如何发现ribbon和JS的工作原理。如果你感兴趣,你也可以研究一下其他的按钮。相信这个方法对大家日后的开发是有所帮助的。







本文转自JF Zhu博客园博客,原文链接:    http://www.cnblogs.com/jfzhu/archive/2012/09/27/2706356.html,如需转载请自行联系原作者







相关文章
|
机器学习/深度学习 BI 数据格式
|
11天前
|
供应链 监控 搜索推荐
企业销售管理利器:销售易、飞鱼和800客CRM深度解析
- **销售易**:集营销、销售和服务于一体,提供全渠道获客、潜客识别、线索转化等功能,适合中大型企业,尤其适用于快消品、汽车等行业。 - **飞鱼**:由巨量引擎推出,专注于广告主的销售线索管理,实现自动获取、同步及跟进,适合各类规模企业,广泛应用于电商、金融等领域。 - **800客**:功能全面,涵盖市场、客户、销售、服务等管理模块,适合中小型到大型企业,提供定制化服务,满足个性化需求。 通过对比各产品的功能与适用场景,企业可根据自身需求选择最合适的CRM解决方案,以优化销售流程并深化客户关系。
|
4天前
|
监控 搜索推荐 数据挖掘
全面剖析:销售易、神州云动与纷享销客CRM的产品功能与适用企业
销售易CRM是一款功能全面的客户关系管理工具,适用于中小企业、成长型及销售驱动型企业。它提供线索管理、商机跟踪、合同管理、客户服务和数据分析等功能,帮助企业高效收集和管理销售线索,优化销售流程,提升客户满意度,并通过多维度数据分析支持决策。系统支持多渠道线索接入,自动筛选分类,全程跟踪商机进展,确保合同履行,并整合多种服务渠道快速响应客户需求。其灵活性和易用性使企业能够快速部署并适应业务变化,助力企业在竞争激烈的市场中实现可持续发展。
|
8天前
|
人工智能 搜索推荐 数据挖掘
企业CRM选型指南:销售易、悟空、超兔的全面对比
在数字化转型中,CRM系统成为企业提升销售效率和竞争力的关键工具。本文对比了销售易CRM、悟空CRM与超兔CRM三个品牌: - **销售易CRM**:提供从线索到现金的全流程管理,拥有强大的数据分析、定制化服务及本土化优势,适合大型企业和跨国公司。 - **悟空CRM**:内置智能数据分析、移动办公支持和360度客户视图,灵活性高,适合中大型及快速发展的企业。 - **超兔CRM**:界面简洁直观,高度定制化,集成第三方应用,支持移动办公,主要面向中小企业。 企业应根据自身需求和预算选择合适的CRM系统,以实现最佳的客户关系管理和销售自动化。
|
14天前
|
监控 数据挖掘 BI
企业CRM选择指南:悟空CRM和销帮帮的适用场景分析
销售易旗下的悟空CRM和销帮帮分别针对不同企业需求提供了独特的CRM解决方案。悟空CRM以其智能数据分析、移动办公支持、客户360度视图及自定义工作流等优势,适合中大型企业;而销帮帮则以简单易用、销售漏斗管理、客户跟进提醒及高性价比等特点,更适合中小企业和初创企业。两者各具特色,助力企业在数字化转型中提升竞争力。
|
1月前
|
机器学习/深度学习 存储 人工智能
CRM系统:企业数字化转型的智能引擎
在数字化时代,CRM系统成为企业转型的关键工具,通过集中管理客户信息,提供深度数据分析,助力企业理解客户需求,预测市场趋势,制定有效策略,提升客户满意度。同时,CRM系统支持自动化营销,增强客户互动,提高忠诚度。面对数据安全和跨部门协作的挑战,CRM系统正借助AI技术,迈向智能化,为企业的数字化转型提供强大支持。