向帐户实体主页的功能区/命令栏添加按钮

时间:2014-02-22 21:06:58

标签: dynamics-crm dynamics-crm-2013

使用功能区,我尝试在“新建”按钮之前的帐户实体主页的功能区/命令栏上添加按钮。但它没有显示在页面的任何地方。我错过了什么?

这是我在阅读SDK后编写的示例XML。

            <RibbonDiffXml>
            <CustomActions>
                <CustomAction Id="Bee.CustomAction.GoToUrl" Location="Mscrm.HomepageGrid.account.MainTab.Management.Controls._children">
                    <CommandUIDefinition>
                        <Button Id="Bee.HomepageGrid.account.GoToUrl" Command="Bee.CommandDefinition.GoToUrl" LabelText="Go To URL" ToolTipDescription="Description, Go to URL with selected account" ToolTipTitle="Title, Go to URL with selected account" />
                    </CommandUIDefinition>
                </CustomAction>
            </CustomActions>
            <Templates>
                <RibbonTemplates Id="Mscrm.Templates"></RibbonTemplates>
            </Templates>
            <CommandDefinitions>
                <CommandDefinition Id="Bee.CommandDefinition.GoToUrl">
                    <EnableRules>
                        <EnableRule Id="Bee.EnableRule.SelectionCountOne" />
                    </EnableRules>
                    <DisplayRules>
                        <DisplayRule Id="Bee.DisplayRule.AllClients"/>
                    </DisplayRules>
                    <Actions>
                        <Url Address="http://localhost/mysite" PassParams="true"></Url>
                    </Actions>
                </CommandDefinition>
            </CommandDefinitions>
            <RuleDefinitions>
                <TabDisplayRules />
                <DisplayRules>
                    <DisplayRule Id="Bee.DisplayRule.AllClients">
                        <CommandClientTypeRule Type="Modern" />
                        <CommandClientTypeRule Type="Refresh" />
                        <CommandClientTypeRule Type="Legacy" />
                    </DisplayRule>
                </DisplayRules>
                <EnableRules>
                    <EnableRule Id="Bee.EnableRule.SelectionCountOne">
                        <SelectionCountRule Minimum="1" Maximum="1" AppliesTo="SelectedEntity" />
                    </EnableRule>
                </EnableRules>
            </RuleDefinitions>
            <LocLabels />
        </RibbonDiffXml>

3 个答案:

答案 0 :(得分:4)

我只应用一个CommandClientTypeRule Type =“Refresh”,它有效。再次应用所有三种类型不起作用。所有都有不同的含义如下。

现代:使用适用于平板电脑的Microsoft Dynamics CRM显示命令栏。

刷新:使用更新的用户界面显示命令栏。

旧版:功能区以未更新的实体的形式显示,或以Microsoft Dynamics CRM for Microsoft Office Outlook的列表视图显示。

<DisplayRules>
  <DisplayRule Id="Bee.DisplayRule.AllClients">    
    <CommandClientTypeRule Type="Refresh" />    
  </DisplayRule>
</DisplayRules>

但是转到网址按钮会转到下拉隐藏菜单中的溢出部分。

NEW 按钮应用某个序列之前在命令栏上显示按钮,以下是在 NEW 按钮之前显示按钮的RibbonXml,当选择一条记录时。

<RibbonDiffXml>
  <CustomActions>
    <CustomAction Id="Bee.CustomAction.GoToUrl" Location="Mscrm.HomepageGrid.account.MainTab.Management.Controls._children"  Sequence="5">
      <CommandUIDefinition>
        <Button Id="Bee.HomepageGrid.account.GoToUrl"
                LabelText="Go To URL"
                ToolTipDescription="Description, Go to URL with selected account"
                ToolTipTitle="Title, Go to URL with selected account"
                Alt="Go to"
                Command="Bee.CommandDefinition.GoToUrl"
                Sequence="5" 
                TemplateAlias="o1" />
      </CommandUIDefinition>
    </CustomAction>
  </CustomActions>
  <Templates>
    <RibbonTemplates Id="Mscrm.Templates"></RibbonTemplates>
  </Templates>
  <CommandDefinitions>
    <CommandDefinition Id="Bee.CommandDefinition.GoToUrl">
      <EnableRules>
        <EnableRule Id="Bee.EnableRule.SelectionCountOne" />
      </EnableRules>
      <DisplayRules>
        <DisplayRule Id="Bee.DisplayRule.AllClients"/>
      </DisplayRules>
      <Actions>
        <Url Address="http://localhost/mysite" PassParams="true"></Url>
      </Actions>
    </CommandDefinition>
  </CommandDefinitions>
  <RuleDefinitions>
    <TabDisplayRules />
    <DisplayRules>
      <DisplayRule Id="Bee.DisplayRule.AllClients">
        <CommandClientTypeRule Type="Refresh" />
      </DisplayRule>
    </DisplayRules>
    <EnableRules>
      <EnableRule Id="Bee.EnableRule.SelectionCountOne">
        <SelectionCountRule Minimum="1" Maximum="1" AppliesTo="SelectedEntity" />
      </EnableRule>
    </EnableRules>
  </RuleDefinitions>
  <LocLabels/>
</RibbonDiffXml>

答案 1 :(得分:1)

我建议你试试Ribbon Workbench。您不再需要下载/解压缩/修改/打包/导入。一切都是直接从Dynamics CRM完成的,不需要任何XML知识。

答案 2 :(得分:0)

您应该将LocLabel添加到RibbonDiffXml中。属性LabelText a.o.必须保留对这些本地化标签的引用。它们并不意味着自己掌握文本。

在CodePlex上查看一些优秀的功能区编辑器;他们会给你一个良好的开端!