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

微软MVP罗勇的博客

微软MVP罗勇,www.luoyong.me

 
 
 

日志

 
 

Dynamics CRM 客户端程序开发:在实体的列表界面添加按钮  

2014-03-12 08:53:45|  分类: CRM客户端开发 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

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

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

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

Dynamics CRM 客户端程序开发:在实体的列表界面添加按钮 - 罗勇 - 罗勇的博客
 
       然后还需要将要用到的素材,比如要修改的实体,用到的Web资源添加到这个解决方案。我这里是添加现有实体-- 2013测试实体,添加到解决方案中,提示是否要添加想关联的组件的时候,这里一般选择否即可。
Dynamics CRM 客户端程序开发:在实体的列表界面添加按钮 - 罗勇 - 罗勇的博客
 
Dynamics CRM 客户端程序开发:在实体的列表界面添加按钮 - 罗勇 - 罗勇的博客
 
然后点击 CRM > 设置 > 解决方案 界面的 自定义 图标,就会弹出对话框,我这里选择RibbonEditor这个专门用来订制命令栏和Ribbon区的解决方案。
 
Dynamics CRM 客户端程序开发:在实体的列表界面添加按钮 - 罗勇 - 罗勇的博客
 
 首先确保选择的实体是你要修改的,因为我这个解决方案中只有这一个实体,所以默认就是选择对的,另外需要确
保你选择的事Command Bar,而不是Ribbon,因为2013中更新的实体(含所有自定义的实体)使用的都是命令栏(Command Bar),而不是Ribbon区。因为我要更改的是列表界面,所以是Command Bar中左上角名称是 HOME的那一栏,因为我要添加按钮,所以从TOOLBOX中选择 Button。
Dynamics CRM 客户端程序开发:在实体的列表界面添加按钮 - 罗勇 - 罗勇的博客
 
将TOOLBOX中的Button拖动到Command Bar中合适的位置,我这里是拖动到DELETE后面,拖动后效果如下图所示。可以看到下面中间的Buttons节点多了一个Button,在右边的PROPERTIES我将其几个显示文本属性修改成测试,如下。
 
Dynamics CRM 客户端程序开发:在实体的列表界面添加按钮 - 罗勇 - 罗勇的博客
 
 
这个按钮没有图标不好看,所以我将其Image16by16属性和Image32by32属性设置一下,为了简便,我设置成和ACTIVE按钮一样的值。
Dynamics CRM 客户端程序开发:在实体的列表界面添加按钮 - 罗勇 - 罗勇的博客
 
然后增加一个Command,方法是右击 Commands,选择 Add New。
Dynamics CRM 客户端程序开发:在实体的列表界面添加按钮 - 罗勇 - 罗勇的博客
 
 这时候Commands节点下就会有一个元素了,展开,选中它的子元素,右击,选择 Edit Actions。
Dynamics CRM 客户端程序开发:在实体的列表界面添加按钮 - 罗勇 - 罗勇的博客
 
出来的对话框如下,点击 Add 按钮,可以看到只有两种Action 可选,我这里选择第一种 Javascript Function Action,然后点击 OK 按钮。
Dynamics CRM 客户端程序开发:在实体的列表界面添加按钮 - 罗勇 - 罗勇的博客
 
输入要执行的JavaScript 函数的名称,我这里是输入的是 GetSelectedInfo,Library则是让你选择JScript类型的Web资源,这个Web资源要先加入到Ribbon Workbench打开的解决方案中才能选择到。
Dynamics CRM 客户端程序开发:在实体的列表界面添加按钮 - 罗勇 - 罗勇的博客
 
Parameters是用来为函数传入参数的,点击右边的选择图标,弹出的窗口点击 Add 按钮,可以看到有 5 种类型的参数可以选择,我这里以复杂点的 Crm Parameter为例,选中它,然后点击 OK。
Dynamics CRM 客户端程序开发:在实体的列表界面添加按钮 - 罗勇 - 罗勇的博客
 
 出现窗口如下,有哪些参数在实体的列表页面可以用呢?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按钮关闭这个窗口。
    Dynamics CRM 客户端程序开发:在实体的列表界面添加按钮 - 罗勇 - 罗勇的博客
     
    这时候有个步骤不能忘,就是为按钮的Command属性设置值,否则你得按钮不会在界面上显示。选择按钮,在PROPERTIES窗口中,为Command属性选择刚才新建的Command。
    Dynamics CRM 客户端程序开发:在实体的列表界面添加按钮 - 罗勇 - 罗勇的博客
     
    这时候我们可以发布看看效果,点击上面的 Publish 按钮就会开始发布,如果Message中没有提示错误信息就算发布成功了。
    Dynamics CRM 客户端程序开发:在实体的列表界面添加按钮 - 罗勇 - 罗勇的博客
     
    发布完毕后最好将实体也发布一下。
    Dynamics CRM 客户端程序开发:在实体的列表界面添加按钮 - 罗勇 - 罗勇的博客
     
    最后我们测试下,来到修改实体的表格页面,选中两行记录,可以看到这个新增的按钮,图标和激活按钮是一样的。
     
    Dynamics CRM 客户端程序开发:在实体的列表界面添加按钮 - 罗勇 - 罗勇的博客
     
    我们点击 测试 按钮看看效果如下,将选择的两行记录的主键告诉我了,测试基本成功。
     
    Dynamics CRM 客户端程序开发:在实体的列表界面添加按钮 - 罗勇 - 罗勇的博客
     
    Dynamics CRM 客户端程序开发:在实体的列表界面添加按钮 - 罗勇 - 罗勇的博客
     
    我于2014年3月12日辛辛苦苦完成了IFD部署,在虚拟机外面的物理机也可以通过outlook访问crm了,我们到outlook中去看看,是Ribbon区,不是命令栏,效果如下:
    Dynamics CRM 客户端程序开发:在实体的列表界面添加按钮 - 罗勇 - 罗勇的博客
      
    下面我们演示一下DisplayRule的效果。右击Display Rules,选择New。
    Dynamics CRM 客户端程序开发:在实体的列表界面添加按钮 - 罗勇 - 罗勇的博客
     
     Display Rules下面就会增加一个元素,我们右击它,选择 Add Rule。
    Dynamics CRM 客户端程序开发:在实体的列表界面添加按钮 - 罗勇 - 罗勇的博客
     
    就会弹出让我们选择Display Rule,我这里以第一个Client Type Rule为例,选择它,然后点击 OK 按钮。
    Dynamics CRM 客户端程序开发:在实体的列表界面添加按钮 - 罗勇 - 罗勇的博客
     
     然后选择刚才新增的元素,右边的属性设置如下,最后一个属性是设置为Web,就是当用户使用Web客户端打开CRM时候显示,而使用Outlook打开CRM时候不显示。这些Display Rule是什么含义,请自己参考SDK的Define ribbon display rules 章节
    Dynamics CRM 客户端程序开发:在实体的列表界面添加按钮 - 罗勇 - 罗勇的博客
     
    还有一个步骤就是选中这个前面建立的Command,在右边属性集中选择DisplayRules,为它选择前面建立的Display Rule,不做这一步的话,你设置的Display Rule不会起作用。
    Dynamics CRM 客户端程序开发:在实体的列表界面添加按钮 - 罗勇 - 罗勇的博客
     
    Dynamics CRM 客户端程序开发:在实体的列表界面添加按钮 - 罗勇 - 罗勇的博客
     
    最后点击Ribbon Workbench的Publish,还有就是发布下这个实体。
    我们先去看看使用Web客户端,就是浏览器打开CRM看看,按钮还在。
    Dynamics CRM 客户端程序开发:在实体的列表界面添加按钮 - 罗勇 - 罗勇的博客
     
    我们再去Outlook客户端打开CRM看看,按钮不见了,Display Rule起作用了。
     
    Dynamics CRM 客户端程序开发:在实体的列表界面添加按钮 - 罗勇 - 罗勇的博客
     
    最后顺便吐糟下,Ribbon Workbench的Publish速度太慢了,期望早日有所提高,哈哈!
     

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

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


    素格格新疆特产店--做最好新疆特产的搬运工。
    本店由博主的新疆老婆开设,搬运各种最好的新疆特产,是自用,送礼,年货,孝敬长辈特别是(岳)父母的首选!
    Dynamics CRM 客户端程序开发:在实体的列表界面添加按钮 - 罗勇 - 罗勇的博客
     
      评论这张
     
    阅读(1769)| 评论(0)
    推荐 转载

    历史上的今天

    在LOFTER的更多文章

    评论

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

    页脚

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