任何人都可以帮我在CRM 2011中动态创建功能区按钮。方案是,当我们创建记录时,必须根据在该记录中选择的选项集值动态创建一个功能区按钮。我们可以使用JScript或插件或工作流来使其工作吗?启用或显示规则在此处无用,不应触及XML代码。
答案 0 :(得分:3)
快速原则:功能区按钮不是记录的一部分,它们是UI的一部分。您可以根据您正在查看的记录进行UI更改。因此,您无法在记录中“添加”按钮。您可以向实体表单添加按钮。
插件肯定不会在这里工作,他们在“后端”上执行逻辑。 JavaScript可能有用,但我希望这很尴尬。你应该做的是编辑功能区Xml。现在有一个很好的编辑功能区:Ribbon Workbench,这个工具使它更容易 编辑功能区(这是编辑XML,但这是它的意图)。
然后我认为你需要
答案 1 :(得分:0)
使用显示规则是执行此操作的正确方法。
创建多个按钮并在所选选项相等时设置其显示规则 到按钮的名称。
答案 2 :(得分:0)
我们可以通过两种方式完成它 -
通过插件:(注意:它不会在沙盒模式下运行并消耗一些时间。)
创建一个解决方案并向其添加指定的实体。浏览源代码here
将此解决方案导出到 Temp 文件夹并解压缩。
编辑customizations.xml文件以添加我们自己的RibbondiffXml标记。
压缩所有XML文件并将其导入CRM。
发布自定义。
通过XML编辑:
<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 。否则 false 。
答案 3 :(得分:0)
我在Dynamics 365上遇到了相同的问题,并找到了解决方案。
RibbonWorkbench包含一个称为“快速锚定按钮”的功能
这包括一个名为PopulateQueryCommand的属性。
您可以使用此命令在运行时动态地(使用JScript)向“锚定按钮”添加菜单选项。
RibbonWorkbench文档包含使用此功能所需的所有信息。