4

CRM 2011で定義された条件に基づいて、リボンからボタンを非表示/表示しようとしていますJavaScript。JavaScript 関数は を返しますtrue/false。そのため、XML をHide/Showボタンに変更したくありません。

私は以下のようにそれをやろうとしましたが、運がありません。誰でも私に正しいアプローチを提案できますか?

前もって感謝します

<RibbonDiffXml>
  <CustomActions>
    <CustomAction Id="Email.Form.email.MainTab.Send.CustomAction" Location="Mscrm.Form.email.Send" Sequence="2">
      <CommandUIDefinition>
        <Button Id="Mscrm.Form.email.Send" Command="Mscrm.Form.email.Send_Custom" Sequence="1" Alt="$Resources:Ribbon.Form.email.MainTab.Actions.Send"     LabelText="$Resources:Ribbon.Form.email.MainTab.Actions.Send" Image16by16="/_imgs/SFA/SendAsEmail_16.png" Image32by32="/_imgs/SFA/SendAsEmail_32.png" TemplateAlias="o1" ToolTipTitle="$Resources:Mscrm_Form_email_MainTab_Actions_Send_ToolTipTitle" ToolTipDescription="$Resources:Mscrm_Form_email_MainTab_Actions_Send_ToolTipDescription" />
      </CommandUIDefinition>
    </CustomAction>
  </CustomActions>
  <Templates>
    <RibbonTemplates Id="Mscrm.Templates"></RibbonTemplates>
  </Templates>
  <CommandDefinitions>
    <CommandDefinition Id="Mscrm.Form.email.Send_Custom">
      <EnableRules/>
      <DisplayRules>
        <DisplayRule Id="Mscrm.CanWritePrimary" />
        <DisplayRule Id="Mscrm.Form.email.InDraftOrFailedState" />
        <DisplayRule Id="Mscrm.Form.email.Send.DisplayRule" />
      </DisplayRules>
      <Actions>
        <JavaScriptFunction FunctionName="HideSendEmailButton"     Library="$webresource:sandbox_email.js" />
      </Actions>
    </CommandDefinition>
  </CommandDefinitions>
  <RuleDefinitions>
    <TabDisplayRules />
    <DisplayRules>
      <DisplayRule Id="Mscrm.Form.email.Send.DisplayRule">
        <ValueRule Field="new_type" Value="false" InvertResult="false" />
      </DisplayRule>
    </DisplayRules>
    <EnableRules />
  </RuleDefinitions>
  <LocLabels />
</RibbonDiffXml>

Javascript

function HideSendEmailButton() {

     // Query for full name of the current user 
     var userId = Xrm.Page.context.getUserId(); 

    if(userId == '---some Id---')
    {
        return true;
    }
    else
    {
        return false;
    }
}
4

1 に答える 1

8

あなたは本当にそれをすることはできません(Microsoftに感謝します)..あなたはjavascript関数を使うことができるカスタムルールオプションを持っているイネーブルルールを使うことができます:

http://msdn.microsoft.com/en-us/library/gg328073.aspx

しかし、displsyルールでは、customruleオプションはありません。

http://msdn.microsoft.com/en-us/library/gg334209.aspx

したがって、有効化/無効化ルールでjavascriptを使用する方法の例があります。

http://howto-mscrm.com/2011/04/how-to-series-6-how-to-use-customrule.html

于 2013-01-29T23:53:22.067 に答える