time 
设为首页】【收藏本站
当前位置: 主页 > ERP > CRM > 【Dynamics CRM客户端程序开发教程】6、准备知识之六

【Dynamics CRM客户端程序开发教程】6、准备知识之六

时间:2014-10-21 14:35 点击:567次 字体:[ ]




 

本文主要摘译自英文版的 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)。部分内容请参考http://www.fengfly.com/plus/view-215399-1.html  。

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

在 SDKResourcesExportedRibbonXml 文件夹下包括了所有的默认实体的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客户端程序开发教程】6、准备知识之六_www.fengfly.com

 
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客户端程序开发教程】6、准备知识之六_www.fengfly.com

 
8. Mscrm.SubGrid.{!EntityLogicalName}.ContextualTabs
当实体表单中的子网格或者图标拥有焦点时,这个上下文相关的Tab就会在Ribbon区显示出来。
9. Mscrm.SubGrid.{!EntityLogicalName}.MainTab
子网格的显示子网格实体复数显示名称的Tab。

 

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

 

【Dynamics CRM客户端程序开发教程】6、准备知识之六_www.fengfly.com

 
【Dynamics CRM客户端程序开发教程】6、准备知识之六_www.fengfly.com
  

 

实体的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中提到的工具如下,后面博文会实际演示部分工具的使用。



本文地址 : http://www.fengfly.com/plus/view-215447-1.html
标签: Dynamics CRM 开发教程 客户端程序
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码: