【问题标题】:Create ribbon button Dynamically in CRM 2011在 CRM 2011 中动态创建功能区按钮
【发布时间】:2012-10-08 06:15:25
【问题描述】:

谁能帮我在 CRM 2011 中动态创建功能区按钮。场景是,当我们创建记录时,必须根据在该记录中选择的选项集值动态创建一个功能区按钮。我们可以使用 JScript 或插件或工作流让它工作吗?启用或显示规则在这里没有用,不应触及 XML 代码。

【问题讨论】:

  • 为什么要避免启用或禁用规则?您基本上只是想要一个功能区按钮,根据记录状态执行不同的操作吗?
  • 是的,该功能基于选项集中选择的值。

标签: dynamics-crm dynamics-crm-2011 dynamics-crm-online


【解决方案1】:

快速原则:功能区按钮不是记录的一部分,它们是 UI 的一部分。您可以根据正在查看的记录来更改 UI。因此,您不能向记录“添加”按钮。您可以在实体表单中添加按钮。

插件在这里肯定不起作用,它们在“后端”上执行逻辑。 JavaScript 可能会工作,但我认为这会很尴尬。您应该做的是编辑功能区 Xml。现在有一个非常适合编辑功能区的工具:Ribbon Workbench,此工具使编辑功能变得更加容易 编辑功能区(这是编辑 XML,但这是它的本意)。

那我觉得你需要

  1. 为每个操作创建一个功能区按钮。
  2. 然后按照本教程启用和禁用它们:Enable/Disable a ribbon button dynamically based on a form value.

【讨论】:

    【解决方案2】:

    使用显示规则是正确的方法。

    创建多个按钮并设置它们在选定选项相等时的显示规则 到按钮的名称。

    【讨论】:

    • 我们需要对所有 N 个实体执行此操作。
    【解决方案3】:

    我们可以通过两种方式完成它-

    通过插件:(注意:沙盒模式下无法使用,会消耗一些时间。)

    • 创建一个解决方案并向其中添加指定的实体。浏览源码here

    • 将此解决方案导出到Temp文件夹并解压。

    • 编辑 customizes.xml 文件以添加我们自己的 RibbondiffXml 标记。

    • 压缩所有 XML 文件并将其导入 CRM。

    • 发布自定义。

    通过 XML 编辑:

    • 导出应用程序功能区,更新 XML 以添加按钮并在所有位置用 {!EntityLogicalName} 替换实体名称。 例如:<CustomAction Id="New.{!EntityLogicalName}.MyButton.CustomAction" Location="Mscrm.HomepageGrid.{!EntityLogicalName}.MainTab.Management.Controls._children" Sequence="70">...
    • 添加 EnableRule 以仅在当前实体存在配置记录时启用此按钮。

      <EnableRule Id="New.{!EntityLogicalName}.MyButton.Check"> <CustomRule FunctionName="checkConfigRecord" Library="$webresource:new_/Scripts/ValidateConfigRecords.js"> <CrmParameter Value="SelectedEntityTypeName" /> </CustomRule> </EnableRule>

    • 创建一个名为 new_/Scripts/ValidateConfigRecords.js 的 JavaScript 库,其中包含计算特定实体存在的配置记录的函数 checkConfigRecord。如果计数大于 1,则返回 true。否则

    • 导入 ApplicationRibbon 压缩文件

    【讨论】:

      【解决方案4】:

      我在 Dynamics 365 上遇到了同样的问题并找到了解决方案。

      RibbonWorkbench 包含一个名为“Fly Out Anchor Buttons”的功能

      这包括一个名为 PopulateQueryCommand 的属性。

      您可以使用此命令在运行时动态(使用 JScript)将菜单选项添加到锚按钮。

      RibbonWorkbench 文档包含使用此功能所需的所有信息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多