0

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

4

4 回答 4

3

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

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

那我想你需要

  1. 为每个操作创建一个功能区按钮。
  2. 然后按照本教程启用和禁用它们:根据表单值动态启用/禁用功能区按钮。
于 2012-10-08T10:17:31.050 回答
0

使用显示规则将是执行此操作的正确方法。

创建多个按钮并在所选选项等于按钮的名称时设置显示规则。

于 2012-10-13T22:21:14.887 回答
0

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

通过插件:(注意:沙盒模式下不工作,会消耗一些时间。)

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

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

  • 编辑customizations.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 。如果 count 大于 1 返回true。否则为

  • 导入 ApplicationRibbon 压缩文件
于 2012-12-14T15:41:01.000 回答
0

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

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

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

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

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

于 2018-09-29T11:47:32.273 回答