Dynamics CRM命令栏定制基础知识及手动编辑customization.xml实例
- static void Main(string[] args)
- {
- var service = GetOrganizationService();
- RetrieveApplicationRibbonRequest appribReq = new RetrieveApplicationRibbonRequest();
- RetrieveApplicationRibbonResponse appribResp = (RetrieveApplicationRibbonResponse)service.Execute(appribReq);
- File.WriteAllBytes(@"D:\luoyong\applicationRibbon.xml", unzipRibbon(appribResp.CompressedApplicationRibbonXml));
- Console.WriteLine("程序运行完成!");
- Console.ReadKey();
- }
- /// <summary>
- /// A helper method that decompresses the the Ribbon data returned
- /// </summary>
- /// <param name="data">The compressed ribbon data</param>
- /// <returns></returns>
- static byte[] unzipRibbon(byte[] data)
- {
- System.IO.Packaging.ZipPackage package = null;
- MemoryStream memStream = null;
- memStream = new MemoryStream();
- memStream.Write(data, , data.Length);
- package = (ZipPackage)ZipPackage.Open(memStream, FileMode.Open);
- ZipPackagePart part = (ZipPackagePart)package.GetPart(new Uri("/RibbonXml.xml", UriKind.Relative));
- using (Stream strm = part.GetStream())
- {
- long len = strm.Length;
- byte[] buff = new byte[len];
- strm.Read(buff, , (int)len);
- return buff;
- }
- }
我使用如下的代码导出某个实体的Ribbon定义文件,我这里导出逻辑名称为 new_test 的Ribbon定义,导出来行数还挺多,5027行。
- static void Main(string[] args)
- {
- var service = GetOrganizationService();
- const string entityName = "new_test";
- RetrieveEntityRibbonRequest entRibReq = new RetrieveEntityRibbonRequest() { RibbonLocationFilter = RibbonLocationFilters.All };
- entRibReq.EntityName = entityName;
- RetrieveEntityRibbonResponse entRibResp = (RetrieveEntityRibbonResponse)service.Execute(entRibReq);
- System.String entityRibbonPath = Path.GetFullPath(@"D:\luoyong\" + entityName + "Ribbon.xml");
- File.WriteAllBytes(entityRibbonPath, unzipRibbon(entRibResp.CompressedEntityXml));
- Console.WriteLine("程序运行完成!");
- Console.ReadKey();
- }
按钮我们主要是能在三个地方用到看到,第一个就是实体的列表界面的命令栏,第二个打开显示一条记录的表单界面,第三个就是子网格也会有个命令栏。下面列举了会应用到每个实体命令栏的Tab:
Tab命名形式 | 显示区域 | 备注 |
Mscrm.Form.{!实体逻辑名称}.MainTab | 实体表单界面 | 以Mscrm.Form.开头 |
Mscrm.Form.{!实体逻辑名称}.Related | ||
Mscrm.Form.{!实体逻辑名称}.Developer | ||
Mscrm.HomepageGrid.{!实体逻辑名称}.MainTab | 实体列表界面 | 以Mscrm.HomepageGrid开头 |
Mscrm.HomepageGrid.{!实体逻辑名称}.View | ||
Mscrm.HomepageGrid.{!实体逻辑名称}.Related | ||
Mscrm.HomepageGrid.{!实体逻辑名称}.Developer | ||
Mscrm.SubGrid.{!实体逻辑名称}.ContextualTabs | 子网格界面 | 以Mscrm.SubGrid 开头。但是Dynamics CRM 2013版本以后只有三个按钮,一个新增,一个列表,一个删除。你不能增加显示更多按钮,但是可以隐藏一些按钮。也可以定制点击这些按钮的时候执行的操作。 |
Mscrm.SubGrid.{!实体逻辑名称}.MainTab |




fetch.xsd
FormXml.xsd
isv.config.xsd
RibbonCore.xsd
RibbonTypes.xsd
RibbonWSS.xsd
SiteMap.xsd
SiteMapType.xsd
VisualizationDataDescription.xsd



- <RibbonDiffXml>
- <CustomActions />
- <Templates>
- <RibbonTemplates Id="Mscrm.Templates"></RibbonTemplates>
- </Templates>
- <CommandDefinitions />
- <RuleDefinitions>
- <TabDisplayRules />
- <DisplayRules />
- <EnableRules />
- </RuleDefinitions>
- <LocLabels />
- </RibbonDiffXml>

- <RibbonDiffXml>
- <CustomActions>
- <HideCustomAction Location="Mscrm.HomepageGrid.new_area.DeleteMenu" HideActionId="Mscrm.HomepageGrid.new_area.DeleteMenu.HideAction" />
- <HideCustomAction Location="Mscrm.Form.new_area.Delete" HideActionId="Mscrm.Form.new_area.Delete.HideAction" />
- </CustomActions>
- <Templates>
- <RibbonTemplates Id="Mscrm.Templates"></RibbonTemplates>
- </Templates>
- <CommandDefinitions />
- <RuleDefinitions>
- <TabDisplayRules />
- <DisplayRules />
- <EnableRules />
- </RuleDefinitions>
- <LocLabels />
- </RibbonDiffXml>




Dynamics CRM命令栏定制基础知识及手动编辑customization.xml实例的更多相关文章
- Windows常用命令汇总以及基础知识
命令部分: dir dir指定要列出的驱动器.目录和/或文件 ,/?显示所有命令 例:dir /b /s /o:n /a:a 表示显示当前路径下的所有文件的绝对路径,包含子文件夹的内容 /b表示去除摘 ...
- Redis命令总结及其基础知识讲述
1.redis的不同之处 Redis拥有其他数据库不具备的数据结构,又拥有内存存储(这使得redis的速度非常快),远程操作(使得redis可以与多个客户端和服务器进行连接).持久化(使得服务器可以在 ...
- 《Linux基础知识及命令》系列分享专栏
<Linux基础知识及命令>系列分享专栏 本专题详细为大家讲解了Linux入门基础知识,思路清晰,简单易懂.本专题非常适合刚刚学习Linux的小白来学习,通过学习该专题会让你由入门达到中级 ...
- Dynamics CRM定制子网格添加按钮实例之一
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复221或者20160430可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...
- Dynamics 365 CE命令栏按钮点击后刷新表单页面方法
微软动态CRM专家罗勇 ,回复326或者20190428可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me! Dynamics 365 Customer Engagement ...
- Dynamics CRM通过定制应用程序功能区为符合条件的实体表单增加按钮
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复167或者20151029可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 前面的博文都是为一个实体添加按钮 ...
- Dynamics CRM - 解决无法使用 Ribbon Workbench 2016 定制 Sub-Grid View Button 的问题(SubGrid MainTab 消失之谜)
发现问题: 在 Dynamics CRM 开发中,会经常使用 Ribbon Workbench 工具来定制 Button 或者对已有 Button 进行自定义功能开发,比如隐藏 SubGrid 的 A ...
- Windows权限提升基础知识和命令
介绍 这篇文章是介绍window的权限提升,虽然不是一个全面的指南,但会试图覆盖主要的技术,常用的资源列表在文章底部,可供大家参考. window权限提升基础知识 初始信息收集 在开始提权之前,我们需 ...
- Linux基础知识第九讲,linux中的解压缩,以及软件安装命令
目录 Linux基础知识第九讲,linux中的解压缩,以及软件安装命令 一丶Linux Mac Windows下的压缩格式简介 2.压缩以及解压缩 3.linux中的软件安装以及卸载 1.apt进行安 ...
随机推荐
- 网易极客战记官方攻略-地牢-Kithgard 地牢
关卡连接: https://codecombat.163.com/play/level/dungeons-of-kithgard 夺取宝石,逃出地牢--注意不要触碰其他东西.在这个关卡里,你会学习编写 ...
- Neo4j安装过程详解
在安装neo4j之前,需要安装Java JRE,并配置Java开发环境,然后安装neo4j服务. 一.CentOS下安装 1.下载Neo4j 去官网下载最新的neo4j,选择社区版.地址:https: ...
- ubuntu1604环境下mariadb启动卡住报错和apparmor基本使用
问题描述:Ubuntu 1604 新环境下使用apt安装的mariadb10版本,结果第二天就起不来了,很是郁闷 启动时会卡住,当时就慌了,这什么情况啊,昨天好好的今天就起不来了,过了一会儿就有返回信 ...
- harbor部署之SSL
harbor部署之SSL 1 签名证书与自签名证书 签名证书:由权威颁发机构颁发给服务器或者个人用于证明自己身份的东西. 自签名证书:由服务器自己颁发给自己,用于证明自己身份的东西,非权威颁发机构发布 ...
- vue/cli 3 引入 使用jQuery
注意这里配置的是vue-cli3.0引入jquery的方法,不是vue-cli2.0的配置方法 一.安装jquery npm install jquery --save 二.一般安装成功后在packa ...
- IT兄弟连 HTML5教程 CSS3属性特效 弹性盒模型
CSS3引入了新的盒模型——弹性盒模型,该模型决定一个盒子在其他盒子中的分布方式以及如何处理可用的空间.使用该模型,可以很轻松的创建自适应浏览器窗口的流动布局或自适应字体大小的弹性布局.弹性盒模型看起 ...
- Python中的测试工具
当我们在写程序的时候,我们需要通过测试来验证程序是否出错或者存在问题,但是,编写大量的测试来确保程序的每个细节都没问题会显得很繁琐.在Python中,我们可以借助一些标准模块来帮助我们自动完成测试 ...
- C# 读写倍福plc beckhoff , 使用ADS协议实现读取plc
本文将使用库技术来读写倍福PLC数据,使用的是基于以太网的ADS实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 github地址:https://g ...
- IDEA的Maven设置阿里镜像
作为一名.net开发学习java,虽然学习起来没啥难度,但是各种配置实在让人头大. 下面就简单记录下IDEA的Maven设置阿里镜像 进入开发软件的这个设置 点击进入 如图所示 第一个是你安装mave ...
- Spring注解之@Component详细解析
@controller 控制器(注入服务) 2.@service 服务(注入dao) 3.@repository dao(实现dao访问) 4.@component (把普通pojo实例化到sprin ...