模型驱动应用中的功能区:定义和类型

注释

本主题介绍经典命令。

有一种定义命令的新方法。 请参阅新式命令概述(预览版)。

本文介绍在模型驱动应用中定义和修改功能区的位置。 使用它标识表、网格、子网格、子网格、窗体、全局和自定义页面功能区更改的 XML 位置。

功能区定义

模型驱动应用包含应用程序中所有功能区的默认 <RibbonDiffXml> 定义。 可以导出和查看为组织定义功能区的当前 XML,但不能直接更新 XML。 通过定义要更改的功能区的方式来自定义功能区。 在应用程序中显示功能区时,将在运行时应用指定的更改定义。 所有更改都将位于或<HideCustomAction>元素中<CustomAction>。 这些元素应用于模型驱动应用提供的默认功能区定义。

编写更改定义时,通常需要引用默认功能区的定义。 例如,如果要隐藏特定的功能区元素,则需要知道该元素的唯一 ID。 如果要将新功能区元素放置在现有功能区元素内或旁边,则需要知道这些元素的 ID 值,以及将控制元素相对位置的顺序。

由于需要引用现有功能区元素的定义,因此必须了解组织中的当前功能区定义。 可以使用两条消息导出表示功能区当前状态的 XML 文件。 这些定义包括已应用到系统的任何自定义项,以便自定义以前应用的任何自定义功能区。 有关详细信息,请参阅 “导出功能区定义”。

为了帮助你入门,可以从 “导出功能区定义”示例下载模型驱动应用的默认功能区定义。 The ExportedRibbonXml 文件包括组织所需的输出文件。

在导出的功能区 XML 文件中,applicationRibbon.xml 文件包括未为特定表定义的所有功能区。 这些组件对应于 应用程序功能区 解决方案组件。 对于每个表,你将ribbon.xml 文件找到 一个表名 。 这对应于 RibbonDiffXml 每个表中包含的值。 如果要编辑特定表的功能区,应找到该表的功能区 XML 文件。

表功能区

所有表都使用称为 “表功能区模板”的通用功能区定义。 表功能区模板定义位于 applicationribbon.xml 文件中。 创建自定义表时,看到的功能区是表功能区模板定义的默认功能区。 每个系统表都有一个单独的 <RibbonDiffXml> 定义,该定义基于表功能区模板定义。

在 applicationribbon.xml 文件中,可以看到适用于所有表的以下选项卡:

  • Mscrm.Form.{!EntityLogicalName}.MainTab

    选项卡在标签中显示表显示名称。

  • Mscrm.Form.{!EntityLogicalName}.Related

    Tab 具有“ 添加”标签。

  • Mscrm.Form.{!EntityLogicalName}.Developer

    Tab 具有标签 “自定义”。

  • Mscrm.HomepageGrid.{!EntityLogicalName}.MainTab

    Tab 在标签中显示复数表显示名称。

  • Mscrm.HomepageGrid.{!EntityLogicalName}.View

    Tab 具有标签 视图

  • Mscrm.HomepageGrid.{!EntityLogicalName}.Related

    Tab 具有“ 添加”标签。

  • Mscrm.HomepageGrid.{!EntityLogicalName}.Developer

    Tab 具有标签 “自定义”。

  • Mscrm.SubGrid.{!EntityLogicalName}.ContextualTabs

    当窗体或图表中的子网格具有焦点时,上下文选项卡将显示带有标签 列表工具

    • Mscrm.SubGrid.{!EntityLogicalName}.MainTab

      Tab 显示复数表显示名称。

    查看特定表的功能区定义时,会看到该表的名称通常替换 {!EntityLogicalName} 令牌。 当看到 {!EntityLogicalName} 特定表的功能区定义中的标记时,这意味着该表没有特定的定义,并且它只是使用表功能区模板中的定义。 为特定表定义功能区时,请始终使用实际的表名称。 必须在节点中 //ImportExportXml/Entities/Entity/RibbonDiffXml 定义特定表的功能区修改。

    可以通过定义对应用程序功能区所做的更改来替换令牌 {!EntityLogicalName} 来替换 RibbonDiffXml 节点中的表逻辑名称,从而对所有表进行更改。 对为所有表定义的应用程序功能区所做的更改必须在节点中 ImportExportXml/RibbonDiffXml 定义。 无法在 RibbonDiffXml 节点中为特定表定义它们。

网格功能区

表网格功能区是一组以 ID 值开头 Mscrm.HomepageGrid.<entity logical name>的选项卡集合。 例如,帐户表网格上文本为“Accounts”的选项卡。Mscrm.HomepageGrid.account.MainTab 帐户表网格上显示的所有选项卡都将具有以开头的 Mscrm.HomepageGrid.accountID 值。

子网格功能区

表子网格功能区是一个上下文组,其中包含以 ID 值开头 Mscrm.SubGrid.<entity logical name>的选项卡集合。 例如,帐户表子网格上文本为“Accounts”的选项卡。Mscrm.SubGrid.account.MainTab

当表的记录列表显示在另一个表或图表形式的子网格中时,只有三个控件直接位于子网格上方或子网格中。 可以通过更改与其关联的命令来修改这些控件的行为。

  • 添加:带有 图标的命令的默认行为取决于子网格中的记录是否与当前记录相关。

    如果记录与当前记录相关,则默认行为是查找现有记录。 如果找不到现有记录,或者用户只想创建新记录,则可以选择“ 添加新”。

    如果记录与当前记录无关,则默认行为是添加新记录。 如果表具有“快速创建”窗体,则会显示此窗体,否则将显示一个新的完整窗体。

    活动是此模式的例外。 add 命令将始终提示先输入活动类型。

    注释

    Dynamics 365中的脱机模式不支持自定义表上的多对多关系。 因此,不会显示处于Dynamics 365脱机模式的子网格上的“添加新”按钮。

  • 显示列表:带有图标的 命令将打开完整列表,可在其中使用所有可用命令。

    如果子网格与当前记录相关联,则此命令的默认行为是打开关联的视图。

    如果子网格与当前记录不关联,则此命令的默认行为是在主列表视图中打开视图。

  • 删除:将鼠标悬停在列表中的记录上时,该 图标将显示在行的右侧。

    对于具有 1:N 关系或无关系的记录,默认行为是删除记录。 如果由于关系配置不允许删除,可能会阻止删除。 打开活动和发票是由于关系配置而可能不会删除的记录的常见示例。

    对于显示 N:N 关系的关系,默认行为是删除联接记录的关系,而不是记录本身。

    可以通过更改与 <CommandDefinition>命令关联的操作来更改默认行为,但不能更改命令的名称。 例如,可以更改删除操作,使其停用记录,而不是删除该记录。

    无法更改为这些命令显示的图标。 可以使用 ..隐藏这些命令 <HideCustomAction>

窗体功能区

注释

统一接口不支持此功能。

每个表可以有多个窗体。 可以通过在表级别//ImportExportXml/Entities/Entity/RibbonDiffXml()添加定义,为该表的所有窗体定义对窗体功能区所做的更改。

每个表窗体可以具有特定的功能区定义。 在导出的 customizations.xml 文件中,必须将修改<RibbonDiffXml>内容添加到此位置://ImportExportXml/Entities/Entity/FormXml/forms/systemform/form/RibbonDiffXml

窗体功能区是具有 ID 值的 Mscrm.Form.<entity logical name>选项卡的集合。 例如,标签为帐户窗体上的 帐户Mscrm.Form.account.MainTab选项卡。 帐户窗体上显示的所有选项卡都将具有以开头的 Mscrm.Form.accountID 值。

“基本开始”选项卡

只要由于表上下文或显示规则禁止显示特定页面的备用选项卡,基本主选项卡将显示在主应用程序功能区上。 例如,查看模型驱动应用 帮助时,将显示此选项卡。 基本主选项卡的 ID 为 Mscrm.BasicHomeTab

自定义全局命令栏

可以通过将按钮添加到 Mscrm.GlobalTab 来自定义全局命令栏 (Mscrm.GlobalTab)。 全局命令栏中的现用按钮当前无法修改,但可以添加新按钮。

当设置位置CustomActionLocation="Mscrm.GlobalTab.New.Controls._children时,自定义按钮将显示在页面顶部的全局命令栏中。

注释

此功能仅在统一接口上受支持。

其他功能区

其他几个特殊用途功能区选项卡和上下文组由模型驱动应用定义。 每个选项卡都与控件何时显示的特定 <TabDisplayRule> 选项卡相关联。 下表列出了这些选项卡。

选项卡 根 ID Description
“Web 资源编辑”页选项卡。 Mscrm.WebResourceEditTab 在解决方案中编辑 Web 资源时显示。
“窗体编辑器”选项卡 Mscrm.FormEditorTab 为窗体提供 “保存”、“ 编辑”、“ 选择”“查看 操作组”。
“窗体编辑器插入”选项卡 Mscrm.FormEditorInsertTab 提供用于在窗体中插入 “分区”、“ 选项卡”和 “控件 ”的按钮。
“仪表板主页”选项卡 Mscrm.DashboardTab 显示在 工作区 区域中。
可视化工具上下文组 Mscrm.VisualizationTools 在表网格功能区中显示的“图表”选项卡上选择“新建图表”按钮时显示。
AptbookTab 主页选项卡 Mscrm.AptbookTab 服务区域中查看服务日历时显示。
“高级查找”选项卡 Mscrm.AdvancedFind 显示在 “高级查找” 窗口中。
“仪表板编辑器”选项卡 Mscrm.DashboardEditorTab 编辑仪表板时显示。
“文档”选项卡 Mscrm.DocumentsTab 显示是否为组织启用了SharePoint集成。
“图表编辑器”选项卡 Mscrm.VisualizationDesignerTab 从解决方案窗口编辑图表时显示。
搜索工具上下文组 Mscrm.ArticleSearch 查看 KBarticle 表时显示。

自定义页面的功能区

可以使用 SiteMap 在应用程序导航中显示自定义页面。 这些页面将始终显示 “基本主页”选项卡Mscrm.BasicHomeTab)。

不能使用 a <PageRule> 在自定义页面上启用或显示自定义功能区组件。

另见

自定义功能区
命令栏或功能区演示文稿