3

我正在尝试根据表单状态隐藏我的 SAVE vanilla按钮。当表单状态 != 创建原版按钮时,不应显示。我尝试了不同的东西,但没有任何效果:

  1. 我在 js 中创建一个函数,如果表单是创建状态,则返回 true

    function isHideState(){
    formstate = Xrm.Page.ui.getFormType();
    if(formstate == formType.create){
    return true;}
    else{
    return false;}
    }
    
  2. 我添加了一条显示规则并将其连接到与 js 函数相关的命令:我的规则是:FormStateRule 和状态:创建

  3. 我将命令连接到我的香草按钮,但即使表单未处于创建状态,它也会显示。

我错过了什么吗?已经几个小时了..指导某人?

更新:更具体地说-我需要仅在创建模式下才能看到该按钮。

4

3 回答 3

2

我们这里不需要使用 JavaScript,而不是 Display 规则,请使用 Enable/Disable 规则并应用 FormState 规则。请看下图 在此处输入图像描述

于 2018-01-08T07:21:06.790 回答
1

注意:每当您自定义原始按钮(在您的情况下为 OOB 保存按钮)时,请确保首先右键单击功能区工作台中的按钮并单击自定义按钮/命令以“保留”OOB 行为并在顶部添加您的自定义它。

更改此行

if(formstate = formType.create){

进入

if(formstate == formType.create){

Single = 用于赋值;double = 用于比较。

更新

RibbonDiffXml 在命令中遵循/预期此结构:

<CommandDefinition
Id="String">
 <EnableRules />
 <DisplayRules />
 <Actions />
</CommandDefinition>

Button中的规则没有直接属性;只有命令可以链接。

<Button Alt="String"
  Command="String"
  CommandType=["General" | "OptionSelection" | "IgnoredByMenu" ]
  CommandValueId="String"
  Description="String"
  Id="String"
  Image16by16="String"
  Image16by16Class="String"
  Image16by16Left="Non Positive Integer"
  Image16by16Top="Non Positive Integer"
  Image32by32="String"
  Image32by32Class="String"
  Image32by32Left="String"
  Image32by32Top="String"
  LabelCss="String"
  LabelText="String"
  MenuItemId="String"
  ModernCommandType=[ "ControlCommand"| "System"]
  ModernImage=”String”
  Sequence="1"
  TemplateAlias="String"
  ToolTipDescription="String"
  ToolTipHelpKeyWord="String"
  ToolTipImage32by32="String"
  ToolTipImage32by32Class="String"
  ToolTipImage32by32Left="Non Positive Integer"
  ToolTipImage32by32Top="Non Positive Integer"
  ToolTipShortcutKey="String"
  ToolTipTitle="String"
/>

2013 年之后,命令栏的引入改变了启用规则的行为,类似于显示规则。使用启用规则的禁用按钮将隐藏按钮以利用命令栏中其他按钮的空间(因为与功能区不同,命令栏中总是有 7 或 9 个按钮的限制)。

再次启用按钮将像切换后的显示/隐藏(类似于显示规则)。也许你可以按照这篇博文来实现你的目标。

要记住的重要一点是将启用规则添加到命令中。这通常会被忽略,有人创建了启用规则但忘记将其添加到按钮命令中。

如果您忘记向命令添加启用规则,则该按钮将显示在表单的所有状态/阶段。如果您忘记将命令添加到按钮,则该按钮将不会显示在表单上。

于 2018-01-08T02:47:50.317 回答
1

在功能区编辑器中,您可以添加显示和启用规则。您可以在没有代码的情况下检查表单类型。看这个视频:

https://www.youtube.com/watch?v=xyLzEAW0CJs

于 2018-07-25T21:40:13.627 回答