本文介绍在模型驱动应用中定义和修改功能区的位置。 使用它标识表、网格、子网格、子网格、窗体、全局和自定义页面功能区更改的 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}.RelatedTab 具有“ 添加”标签。
Mscrm.Form.{!EntityLogicalName}.DeveloperTab 具有标签 “自定义”。
Mscrm.HomepageGrid.{!EntityLogicalName}.MainTabTab 在标签中显示复数表显示名称。
Mscrm.HomepageGrid.{!EntityLogicalName}.ViewTab 具有标签 视图。
Mscrm.HomepageGrid.{!EntityLogicalName}.RelatedTab 具有“ 添加”标签。
Mscrm.HomepageGrid.{!EntityLogicalName}.DeveloperTab 具有标签 “自定义”。
Mscrm.SubGrid.{!EntityLogicalName}.ContextualTabs当窗体或图表中的子网格具有焦点时,上下文选项卡将显示带有标签 列表工具。
Mscrm.SubGrid.{!EntityLogicalName}.MainTabTab 显示复数表显示名称。
查看特定表的功能区定义时,会看到该表的名称通常替换
{!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> 在自定义页面上启用或显示自定义功能区组件。