我是CRM 2011的新手。我已经找到了有关如何在功能区添加新按钮的文档。以及如何分组按钮。但是我需要在功能区中的下拉菜单按钮。我怎样才能做到这一点?我没有找到有关此的任何信息。

谢谢!

有帮助吗?

解决方案

这应该让您入门。如果您只需要一个静态菜单,则可以将标签放入飞行控制中,然后从那里构建菜单。

<FlyoutAnchor Id="Sample.account.form.FlyoutAnchor.Static"
              Sequence="10"
              Command="Mscrm.Enabled"
              Image16by16="/_imgs/placeholders/ribbon_placeholder_16.png"
              Image32by32="/_imgs/ribbon/newrecord32.png"
              LabelText="Sample Flyout"
              Alt="Sample Flyout"            
              TemplateAlias="isv">
  <Menu Id="Sample.account.form.Menu">
    <MenuSection Id="Sample.account.form.MenuSection" 
                 Title="Menu Section Title" 
                 Sequence="15">
      <Controls Id="Sample.account.form.MenuSection.Controls">
        <Button Id="Sample.account.form.Controls.Button.FirstButton"
                Command="Sample.ButtonCommand.Command"
                LabelText="First Button"
                ToolTipTitle="First Button"
                ToolTipDescription="The first button"
                TemplateAlias="isv"
                Sequence="20"/>
      </Controls>
    </MenuSection>
  </Menu>
</FlyoutAnchor>

如果要动态生成菜单,则可以改用此Flyout控件。注意添加的填充属性。然后,您必须通过JavaScript构建菜单。

<FlyoutAnchor Id="Sample.account.form.FlyoutAnchor.Dynamic"
              Sequence="10"
              Command="Mscrm.Enabled"
              Image16by16="/_imgs/placeholders/ribbon_placeholder_16.png"
              Image32by32="/_imgs/ribbon/newrecord32.png"
              LabelText="Sample Flyout"
              Alt="Sample Flyout"
              PopulateDynamically="true"
              PopulateQueryCommand="Sample.PopulateDynamicMenu"
              TemplateAlias="isv" />

我创建了两个命令,可以访问JavaScript函数。 DynamicMenu构建菜单,并使用搜索来确定按下哪个按钮控件。注意这两者都通过命令专业参数,这对于JavaScript很重要。

<CommandDefinition Id="Sample.PopulateDynamicMenu">
      <EnableRules>
        <EnableRule Id="Mscrm.Enabled" />
      </EnableRules>
      <DisplayRules />
      <Actions>
        <JavaScriptFunction FunctionName="DynamicMenu"
                            Library="$webresource:a_JavaScript_File">
          <CrmParameter Value="CommandProperties" />
        </JavaScriptFunction>
      </Actions>
</CommandDefinition>
<CommandDefinition Id="Sample.SearchCommand">
      <EnableRules />
      <DisplayRules />
      <Actions>
        <JavaScriptFunction FunctionName="Search" 
                            Library="$webresource:a_JavaScript_File">
          <CrmParameter Value="CommandProperties" />
        </JavaScriptFunction>
      </Actions>
</CommandDefinition>

这是JavaScript函数:

function DynamicMenu(CommandProperties) {
    ///<summary>Dynamically generate menu items based on context</summary>
    /// <param name="CommandProperties">
    ///    Command properties crm parameter sent from the ribbon.  object used to inject the Menu XML
    /// </param>

    var menuXml = '<Menu Id="Sample.DynamicMenu">' +
                    '<MenuSection Id="Sample.Dynamic.MenuSection" Sequence="10">' +
                        '<Controls Id="Sample.Dynamic.Controls">' +
                            '<Button Id="Sample.account.form.Controls.Button.FirstButton"' +
                                    ' Command="Sample.SearchCommand"' +
                                    ' LabelText="First Button"' +
                                    ' ToolTipTitle="First Button"' +
                                    ' ToolTipDescription="The first button"' +
                                    ' TemplateAlias="isv"' +
                                    ' Sequence="20" />' +                                  
                        '</Controls>' +
                    '</MenuSection>' +
                '</Menu>';


    CommandProperties.PopulationXML = menuXml;
}

function Search(CommandProperties) {
    ///<summary>Determines which control was pressed</summary>
    /// <param name="CommandProperties">
    ///    Command properties crm parameter sent from the ribbon.  object used to read which dynamically generated
    ///    button is selected.
    /// </param>

    var controlId = CommandProperties.SourceControlId;
    switch (controlId) {
        case 'Sample.account.form.Controls.Button.FirstButton':
            alert(controlId + ' was pressed!');
            break;        
        default:
            alert('unknown');
    }
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top