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

如果没有安装Ribbon Workbench,请参考博文 Dynamics CRM 客户端程序开发:常用工具介绍之Ribbon Workbench 下载安装,本博文主要使用这个工具。

一般是专门用一个解决方案用来处理命令栏Ribbon区的定制,我这里新增了一个名称为RibbonEditor的解决方案如下。还要值得注意的是一般用一个专门的JS文件来保存Ribbon区(命令栏)用到的Java Script类型Web资源。

 
       然后还需要将要用到的素材,比如要修改的实体,用到的Web资源添加到这个解决方案。我这里是添加现有实体-- 2013测试实体,添加到解决方案中,提示是否要添加想关联的组件的时候,这里一般选择否即可。
 
 
然后点击 CRM > 设置 > 解决方案 界面的 自定义 图标,就会弹出对话框,我这里选择RibbonEditor这个专门用来定制命令栏和Ribbon区的解决方案。
 
 首先确保选择的实体是你要修改的,因为我这个解决方案中只有这一个实体,所以默认就是选择对的,另外需要确
保你选择的事Command Bar,而不是Ribbon,因为2013中更新的实体(含所有自定义的实体)使用的都是命令栏(Command Bar),而不是Ribbon区。因为我要更改的是列表界面,所以是Command Bar中左上角名称是 HOME的那一栏,因为我要添加按钮,所以从TOOLBOX中选择 Button。
 
将TOOLBOX中的Button拖动到Command Bar中合适的位置,我这里是拖动到DELETE后面,拖动后效果如下图所示。可以看到下面中间的Buttons节点多了一个Button,在右边的PROPERTIES我将其几个显示文本属性修改成测试,如下。
 
 
这个按钮没有图标不好看,所以我将其Image16by16属性和Image32by32属性设置一下,为了简便,我设置成和ACTIVE按钮一样的值。
然后增加一个Command,方法是右击 Commands,选择 Add New。
 这时候Commands节点下就会有一个元素了,展开,选中它的子元素,右击,选择 Edit Actions。
 
出来的对话框如下,点击 Add 按钮,可以看到只有两种Action 可选,我这里选择第一种 Javascript Function Action,然后点击 OK 按钮。
 
输入要执行的JavaScript 函数的名称,我这里是输入的是 GetSelectedInfo,Library则是让你选择JScript类型的Web资源,这个Web资源要先加入到Ribbon Workbench打开的解决方案中才能选择到。
 
Parameters是用来为函数传入参数的,点击右边的选择图标,弹出的窗口点击 Add 按钮,可以看到有 5 种类型的参数可以选择,我这里以复杂点的 Crm Parameter为例,选中它,然后点击 OK。

出现窗口如下,有哪些参数在实体的列表页面可以用呢?SDK的Pass Microsoft Dynamics CRM data from a page as a parameter to Ribbon Actions 章节有详细论述,我这里摘录如下:

  • Selected items

    • SelectedControlSelectedItemCount
    • SelectedControlSelectedItemIds
    • SelectedControlSelectedItemReferences
  • All items
    • SelectedControlAllItemCount
    • SelectedControlAllItemIds
    • SelectedControlAllItemReferences
  • Unselected items
    • SelectedControlUnselectedItemCount
    • SelectedControlUnselectedItemIds
    • SelectedControlUnselectedItemReferences
 
我本博文演示使用SelectedControlSelectedItemIds,Value选择这个,Name可以随便命名,然后点击OK按钮关闭这个窗口。
 
这时候有个步骤不能忘,就是为按钮的Command属性设置值,否则你得按钮不会在界面上显示。选择按钮,在PROPERTIES窗口中,为Command属性选择刚才新建的Command。
 
这时候我们可以发布看看效果,点击上面的 Publish 按钮就会开始发布,如果Message中没有提示错误信息就算发布成功了。
 
发布完毕后最好将实体也发布一下。
最后我们测试下,来到修改实体的表格页面,选中两行记录,可以看到这个新增的按钮,图标和激活按钮是一样的。
 
 
我们点击 测试 按钮看看效果如下,将选择的两行记录的主键告诉我了,测试基本成功。
 
 
我于2014年3月12日辛辛苦苦完成了IFD部署,在虚拟机外面的物理机也可以通过outlook访问crm了,我们到outlook中去看看,是Ribbon区,不是命令栏,效果如下:
下面我们演示一下DisplayRule的效果。右击Display Rules,选择New。

Display Rules下面就会增加一个元素,我们右击它,选择 Add Rule。

 
就会弹出让我们选择Display Rule,我这里以第一个Client Type Rule为例,选择它,然后点击 OK 按钮。

然后选择刚才新增的元素,右边的属性设置如下,最后一个属性是设置为Web,就是当用户使用Web客户端打开CRM时候显示,而使用Outlook打开CRM时候不显示。这些Display Rule是什么含义,请自己参考SDK的Define ribbon display rules 章节。

 
还有一个步骤就是选中这个前面建立的Command,在右边属性集中选择DisplayRules,为它选择前面建立的Display Rule,不做这一步的话,你设置的Display Rule不会起作用。
 

最后点击Ribbon Workbench的Publish,还有就是发布下这个实体。

我们先去看看使用Web客户端,就是浏览器打开CRM看看,按钮还在。
我们再去Outlook客户端打开CRM看看,按钮不见了,Display Rule起作用了。

 
最后顺便吐糟下,Ribbon Workbench的Publish速度太慢了,期望早日有所提高,哈哈!
 

PS:我这里用到的JavaScript函数代码非常简单,如下:

function GetSelectedInfo(Selectedids) {
for (var i = 0; i < Selectedids.length; i++) {
alert('选中的第' + (i + 1) + "行,GUID是" + Selectedids[i] + "。");
};
}

Dynamics CRM 客户端程序开发:在实体的列表界面添加按钮的更多相关文章

  1. Dynamics CRM 客户端程序开发:自定义系统标准按钮的可用性

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复125或者20140414可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 一般是新建一个解决方案用于客制化 ...

  2. Dynamics CRM 客户端的插件调试

    Dynamics CRM 客户端的插件调试 一直以来,Dynamics CRM插件在大家的印象中都是不便于调试的,根据官方文档(http://technet.microsoft.com/zh-cn/l ...

  3. iOS开发UI篇—在UIImageView中添加按钮以及Tag的参数说明

    ios开发UI篇—在ImageView中添加按钮以及Tag的参数说明 一.tag参数 一个视图通常都只有一个父视图,多个子视图,在开发中可以通过使用子视图的tag来取出对应的子视图.方法为Viewwi ...

  4. ios开发UI篇—在ImageView中添加按钮以及Tag的参数说明

    ios开发UI篇—在ImageView中添加按钮以及Tag的参数说明 一.tag参数 一个视图通常都只有一个父视图,多个子视图,在开发中可以通过使用子视图的tag来取出对应的子视图.方法为Viewwi ...

  5. Dynamics CRM 2013 报表开发:安装开发工具

    最近项目需要开发报表,顺便看了下,首先需要配置开发环境.需要的工具为: 1.Business Intelligence Development Studio 可下载Sql Server 的安装包,选择 ...

  6. tcp客户端程序开发

    https://www.cnblogs.com/python-No/ 话不多说,直接进入正题 一:客户端一共分为5大块: 1.创建客户端套接字 2.和服务端套接字建立连接 3.发送数据 4.接收发送 ...

  7. Microsoft Dynamics CRM 前瑞开发

    做CRM开发最大的感受就是其前瑞开发过程中,调试起来比较麻烦,需要做一些断点还要配制一些浏览器设置,对新手来说比较困难.还有就是对REST调试,经常为了调试一个正确的结果而花费大量的时间.现在推荐一个 ...

  8. Dynamics CRM 2011 通过数据库修改实体字段的长度需要注意的地方

    一.首先打开数据库,我这里以SQL Server 2012数据库为例. 1.选择工具—>选项 ,如图1 图 1 2. 选择表设计器和数据库设计器—>阻止保存要求重新创建表的更改(S)把前面 ...

  9. Python-TCP客户端程序开发

    TCP客户端,需要与服务端建立连接,连接建立成功后才可以进行数据的传输. # 1.导入模块 import socket if __name__ == '__main__': # 2.创建套接字对象 t ...

随机推荐

  1. 中文版 Apple 官方 Swift 教程《The Swift Programming Language》

    简介 欢迎使用 Swift 关于 Swift 版本兼容性 Swift 初见 Swift 版本历史记录 Swift 教程 基础部分 基本运算符 字符串和字符 集合类型 控制流 函数 闭包 枚举 类和结构 ...

  2. Saltstack_使用指南18_API

    1. 主机规划 salt 版本 [root@salt100 ~]# salt --version salt (Oxygen) [root@salt100 ~]# salt-minion --versi ...

  3. R1-5天

    R语言笔记文档 2019.11.24 R语言的安装 工作目录查看与更改 变量的三种赋值 如何查看R语言帮助 ? args 基础数据类型 基本数据类型 因子.数据框.数组.矩阵.列表.向量 2019.1 ...

  4. IPFS入门

    相关链接 快速安装 深入浅出 IPFS指令集中文版 IPFS开发入门 filecoin 在线视频 go-ipfs

  5. 职位画像分析(pandas/ matplotlib)

    一.数据分析的步骤 二.提出问题 (1) 分析数据分析师主要的技能排名? (2) 分析数据分析师薪资和岗位地点.学历.工作年限的关系? (3) 数据分析师的学历需求? (4) 不同城市数据分析师的需求 ...

  6. Tomcat中session复制技术

    一.准备三台机器主机的服务都正常,nginx与Tomcat构建负载均衡 主机名     IP地址 nginx       192.168.200.111 Tomcat1  192.168.200.11 ...

  7. 【UOJ276】【清华集训2016】汽水(分数规划+点分治)

    点此看题面 大致题意: 给你一棵树,要求你选择一条树上路径,使得这条路径上边权的平均值与定值\(k\)的差的绝对值最小.求出这个最小值. 分数规划 看到平均值,首先就应该想到分数规划吧. 我们二分答案 ...

  8. 提取Office图标的方法

    需求 几年前,好声音以独特节目形式吸引了很多选手和观众的 观注,旨在"只寻找优质声音": 可声音各有特色时,还得看颜值,当然这也无可厚非.虽然扯得有点远,我想表达的是软件开发的稳定 ...

  9. Paper | Attention Is All You Need

    目录 1. 动机详述 2. 相关工作 3. 转换器结构 3.1 注意力机制详解 3.1.1 放缩的点积注意力机制 3.1.2 多头注意力机制 3.2 全连接网络 3.3 编码位置信息 [这是一篇400 ...

  10. Python解释器和Python集成环境小结

    目录 一.执行Python程序的两种方式 1.1 交互式 1.2 命令行式 二.执行Python程序的两种IDE 2.1 Pycharm 2.2 Jupyter 一.执行Python程序的两种方式 1 ...