如何根据表单状态

时间:2018-01-07 20:19:51

标签: dynamics-crm ribbon dynamics-crm-2016 crm-ribbon-workbench

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

  1. 我在js中创建一个函数,如果form是create state

    ,则返回true
    function isHideState(){
    formstate = Xrm.Page.ui.getFormType();
    if(formstate == formType.create){
    return true;}
    else{
    return false;}
    }
    
  2. 我添加了一个显式规则并将其连接到与js函数相关的命令: 我的规则是:FormStateRule和state:Create

  3. 我将命令连接到我的vanilla按钮,但即使表单处于创建状态,它也会显示。
  4. 我错过了什么吗?它已经过了几个小时......指导某人?

    更新:更具体一点 - 我只需要在创建模式下看到按钮。

3 个答案:

答案 0 :(得分:2)

我们不需要在这里使用JavaScript,而是使用显示规则,请使用启用/禁用规则并应用FormState规则。 请看下面的图片 enter image description here

答案 1 :(得分:1)

注意:每当您自定义vanilla按钮(在您的情况下为OOB Save按钮)时,请务必右键单击Ribbon workbench&中的按钮。单击自定义按钮/命令以“保留”OOB行为&在其上添加自定义。

更改此行

if(formstate = formType.create){

if(formstate == formType.create){

Single =用于分配; double =用于比较。

<强>更新

RibbonDiffXml跟随/期望command中的这个结构:

<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按钮,而不像功能区)。

再次启用按钮一旦切换就会像显示/隐藏一样(类似于显示规则)。也许你可以按照这个blogpost来实现你的目标。

  

要记住的一件重要事情是将启用规则添加到命令中。这通常是错过的,有人创建启用规则但忘记将其添加到按钮命令。

     

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

答案 2 :(得分:1)

在功能区编辑器中,可以添加“显示”和“启用”规则。您可以不使用代码检查表单类型。观看此视频:

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