注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

微软MVP罗勇的博客

微软MVP罗勇,www.luoyong.me

 
 
 

日志

 
 

Dynamics CRM 客户端程序开发:准备知识之六  

2014-02-25 08:56:08|  分类: CRM客户端开发 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复108或者20140225可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me!

本博文主要摘译自英文版的 Dynamics CRM 2013 SDK 6.0.3版本(即Dynamics CRM 2013 Update Rollup 1对应的SDK版本)的Customize commands and the ribbon章节,主要是关于命令栏和Ribbon区的。

Dynamics 2013的Web客户端提供了一种新的显示命令的方式,这种方式能提升性能,它就是命令栏(command bar)。部分内容请参考我的 微软Dynamics CRM 2013介绍系列之三十一:命令栏(command bar)的配置  。

在Dynamics CRM 2013中大部分地方看到的是命令栏,而非Ribbon区。更新的实体 和自己客制化的实体都是使用命令栏。Ribbon区和命令栏背后的XML语法是一样的,所以不用担心以前客制化的Ribbon区在Dynamics CRM 2013能否使用。后文也用Ribbon区指代命令栏和Ribbon区。

在 SDK\Resources\ExportedRibbonXml 文件夹下包括了所有的默认实体的Ribbon导出文件,命名格式是实体的了逻辑名字加上Ribbon,但是还有一个特殊的文件,applicationRibbon.xml 它是所有Ribbon的模板,你客制化Ribbon的时候其实是定义与这个模板不同的地方,比如隐藏按钮,增加按钮,定义按钮可见性,定义按钮执行的动作等,你定义的修改都是在解决方案中的customization.xml的相应实体的 RibbonDiffXml 这个元素中,后面博文会带各位看官看看它的样子。

在applicationribbon.xml文件中,你可以看到所有实体都会显示的如下Tab,其中{!EntityLogicalName}是占位符,代表实体的逻辑名称。这个要对照Dynamics CRM 2011版本就会看到很明白,你如果对照Dynamics CRM 2013的话你看不到这些Tab,只能看到命令。

1. Mscrm.Form.{!EntityLogicalName}.MainTab
这个是实体的表单页面显示 实体显示名称 的Tab。
2. Mscrm.Form.{!EntityLogicalName}.Related
这个是实体的表单页面显示 添加 的Tab.
3. Mscrm.Form.{!EntityLogicalName}.Developer
这个是实体的表单页面显示 自定义 的Tab.

我拿Dynamics CRM 2011的潜在顾客截图给大家看就明白了,分别对应下面的红框内的三个Tab。

Dynamics CRM 客户端程序开发:准备知识之六 - 罗勇 - 罗勇的博客
 
4. Mscrm.HomepageGrid.{!EntityLogicalName}.MainTab
这个是实体的表格页面显示 复数的实体显示名称 的Tab.当然啦,我们中文没有单数复数之分,英文有的。
5. Mscrm.HomepageGrid.{!EntityLogicalName}.View
这个是实体的表格页面显示 视图 的Tab.
6. Mscrm.HomepageGrid.{!EntityLogicalName}.Related
这个是实体的表格页面显示 添加 的Tab.
7. Mscrm.HomepageGrid.{!EntityLogicalName}.Developer
这个是实体的表格页面显示 自定义 的Tab.

我拿Dynamics CRM 2011的潜在顾客截图给大家看就明白了,分别对应下面的红框内除了 图表 以外的四个Tab。

Dynamics CRM 客户端程序开发:准备知识之六 - 罗勇 - 罗勇的博客
 
8. Mscrm.SubGrid.{!EntityLogicalName}.ContextualTabs
当实体表单中的子网格或者图标拥有焦点时,这个上下文相关的Tab就会在Ribbon区显示出来。
9. Mscrm.SubGrid.{!EntityLogicalName}.MainTab
子网格的显示子网格实体复数显示名称的Tab。

值得一提的是,Dynamics CRM 2013在子网格的右上角有上一条下一条记录图标和增加的加号图标,以及选中某行记录时最右边会出现删除图标,截图如下,这几个按钮你可以隐藏或者将其设置为其他功能,比如将删除图标要执行的操作改成失效,但是你没有改变着几个按钮的图标。还有个值得注意的是,如果表单实体与子网格的实体的关联是 N:N 类型,删除图标并不会真的删除记录,而只是删除关系。

Dynamics CRM 客户端程序开发:准备知识之六 - 罗勇 - 罗勇的博客

Dynamics CRM 客户端程序开发:准备知识之六 - 罗勇 - 罗勇的博客
  

实体的Ribbon一般分为如下几类:

Grid Ribbon,我翻译成表格Ribbon,它以Mscrm.HomepageGrid.<entity logical name>开头。

Subgrid Ribbon,我翻译成子网格Ribbon,它以Mscrm.SubGrid.<entity logical name>开头。

Form ribbon,我翻译成表单Ribbon,它以Mscrm.Form.<entity logical name> 开头。

一个Ribbon按钮是由一个 CommandDefinition 元素定义的,我们常用的三个子元素分别是EnableRules,DisplayRules 和 CommandDefinitions,他们分别定义了按钮是否可用,是否显按钮示和执行的动作是什么。值得一提的是在Dynamics CRM 2011中如果按钮不可用,按钮可能会显示(根据DisplayRule来判定是否显示),但是在Dynamics CRM 2013中,不可用的按钮不会显示出来。这些元素怎么定义我在本篇博客中就暂时不详细讲解了,大家自己去看SDK吧。

虽然可以使用直接修改解决方案中的customization.xml 文件来客制化Ribbon,但是我们一般使用工具来客制化实体的Ribbon,SDK中提到的工具如下,后面博文会实际演示部分工具的使用。

  • Ribbon Workbench for Dynamics CRM 2013
  • MS CRM 2011 : Pragma Toolkit : Ribbon, Site Map Editor
  • CRM 2011 Visual Ribbon Editor

  • 素格格新疆特产店--做最好新疆特产的搬运工。
    本店由博主的新疆老婆开设,搬运各种最好的新疆特产,是自用,送礼,年货,孝敬长辈特别是(岳)父母的首选!
    Dynamics CRM 客户端程序开发:准备知识之六 - 罗勇 - 罗勇的博客
     
      评论这张
     
    阅读(820)| 评论(0)
    推荐 转载

    历史上的今天

    在LOFTER的更多文章

    评论

    <#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
     
     
     
     
     
     
     
     
     
     
     
     
     
     

    页脚

    网易公司版权所有 ©1997-2018