Javascript CRM 2015:激活报价后,报价实体中的自定义功能区按钮不可见

Javascript CRM 2015:激活报价后,报价实体中的自定义功能区按钮不可见,javascript,dynamics-crm,dynamics-crm-2015,crm-ribbon-workbench,Javascript,Dynamics Crm,Dynamics Crm 2015,Crm Ribbon Workbench,我在功能区上为quote实体表单添加了一个自定义按钮。 当报价处于草稿状态时,按钮可见并按预期工作 当我单击激活报价按钮时,报价将变为活动状态。此操作还会刷新功能区。刷新功能区后,我再也看不到在功能区中添加的自定义按钮 我签入了ribbon workbench,并且我添加的自定义按钮没有定义任何显示规则,这可能会导致它在激活报价上被隐藏。 我还检查了任何可能导致此行为的自定义脚本,但我找不到任何可能导致自定义按钮不可见的脚本 我尝试将自定义按钮添加到功能区中的其他组中,但这似乎也没有帮助 功能区

我在功能区上为quote实体表单添加了一个自定义按钮。 当报价处于草稿状态时,按钮可见并按预期工作

当我单击激活报价按钮时,报价将变为活动状态。此操作还会刷新功能区。刷新功能区后,我再也看不到在功能区中添加的自定义按钮

我签入了ribbon workbench,并且我添加的自定义按钮没有定义任何显示规则,这可能会导致它在激活报价上被隐藏。
我还检查了任何可能导致此行为的自定义脚本,但我找不到任何可能导致自定义按钮不可见的脚本

我尝试将自定义按钮添加到功能区中的其他组中,但这似乎也没有帮助

功能区似乎只在报价激活后在报价实体窗体上显示一组预定义的控件。 有人对我如何回避这个问题有什么建议吗

下面是quote实体的ribbondiffxml。我添加的自定义按钮是“复制估算”和“新版本”


尝试修改EnableRule
Sol.Form.Estimate.CopyEntity.EnableRule
以否定创建状态

您修改的规则应如下所示:

<EnableRules>
  <EnableRule Id="Sol.Form.Estimate.CopyEntity.EnableRule">
    <FormStateRule State="Create" InvertResult="true" />
  </EnableRule>
</EnableRules>
MS CRM期望

bool enable = !(FormState == Create)

MS启用和显示规则的概念对我来说也不止一次是奇怪的。

如果看不到您实际的功能区定义,很难判断-您能从功能区工作台复制RibbonDiff Xml并将其添加到您的问题中吗?@Filburt:谢谢您的回答。我对问题进行了编辑,将ribbonDiif XML也包括在内。让我知道,如果有任何其他信息我可以添加,这将有助于读者更好地了解这个问题。你是对的。在试图找出问题的时候,我看到命令栏不会显示禁用的项目。按照我编写enable规则的方式,它只适用于updateform。由于表单状态更改为只读,因此“我的规则”失败,并且“启用”规则的计算结果为false。我将根据你的回答改变规则。这更好地满足了我的要求。谢谢你的帮助。
bool enable = FormState == Existing
bool enable = !(FormState == Create)