openForm (客户端 API 参考)

打开实体窗体或快速创建窗体。

注释

若要以对话框的形式打开主窗体,请改用 navigateTo 方法。 详细信息:使用客户端 API 在对话框中打开主窗体

Syntax

Xrm.Navigation.openForm(entityFormOptions, formParameters).then(successCallback, errorCallback);

参数

Name 类型 必选 Description
entityFormOptions 物体 是的 用于打开窗体的窗体选项。 请参阅 entityFormOptions 对象
formParameters 物体 一个 Dictionary 对象,用于将额外参数传递给表单。 无效的参数将导致错误。

有关将参数传递到窗体的信息,请参阅 使用传递给窗体的参数设置列值 ,并 配置窗体以接受自定义查询字符串参数
successCallback 功能 在快速创建窗体中保存记录时要执行的函数。此函数作为参数传递对象。 该对象具有以下 savedEntityReference 属性的数组,用于标识显示或创建的记录:
- entityType:表的逻辑名称。
- id:记录的 GUID 值的字符串表示形式。
- name:显示或创建的记录的主列值。

注意
successCallback- 打开现有或新记录的窗体时,不会执行该函数。
successCallback- 仅当使用 openForm 方法打开的快速创建窗体中保存记录时,才会执行该函数。
errorCallback 功能 作失败时要执行的函数。

entityFormOptions 对象

该对象包含以下值:

Name 类型 必选 Description
entityName String 是的 要为其显示窗体的表的逻辑名称。
entityId String 要为其显示窗体的表记录的 ID。
formId String 要显示的窗体实例的 ID。
cmdbar 布尔值 指示是否显示命令栏。 如果未指定此参数,则默认显示命令栏。 需要将 openInNewWindow 参数作为 true 传递。
createFromEntity 查找 指定一条记录,该记录将根据映射的列值提供默认值。 查找对象具有以下字符串属性: entityTypeidname (可选)。
openInNewWindow 布尔值 指示是在新窗口中显示窗体还是在新选项卡中显示窗体。如果您指定 true 和未指定高度或宽度的值,窗体将显示在新选项卡中。在新窗口中打开窗体或新选项卡会使窗体呈现速度较慢,而不是在同一选项卡上打开窗体;请考虑改为在主窗体对话框中打开窗体。 快速创建窗体当前不支持此属性,因为无法在新窗口或选项卡中打开它们。
height 编号 要显示的窗体窗口的高度(以像素为单位)。 需要将 openInNewWindow 参数作为 true 传递。
width 编号 要显示的表单窗口的宽度(以像素为单位)。 需要将 openInNewWindow 参数作为 true 传递。
navbar String 控制是否显示导航栏,以及是否可以使用站点地图中定义的区域和子区域进行应用程序导航。 有效值为: onoffentity。 需要将 openInNewWindow 参数作为 true 传递。
- on:显示导航栏。 如果未使用导航栏参数,则这是默认行为。
- off:不显示导航栏。 用户可以使用其他用户界面元素或后退和前进按钮进行导航。
- entity:在窗体上,只有相关表的导航选项可用。 导航到相关表后,导航栏中会显示一个后退按钮,以允许返回到原始记录。
relationship 物体 定义关系对象以在窗体上显示相关记录。 查看 关系对象
selectedStageId String 业务流程实例中所选阶段的 ID。
useQuickCreateForm 布尔值 指示是否打开快速创建窗体。 该表必须启用“ 允许快速创建 ”选项才能显示快速创建窗体,并且还必须将表和快速创建窗体添加到应用。 如果未指定值 useQuickCreateForm,则默认值将设置为 false

relationship 对象

该对象具有以下值。

Name 类型 Description
attributeName String 用于关系的列的名称。
name String 用于关系的列的名称。
navigationPropertyName String 用于关系的列的名称。
relationshipType 编号 关系类型。 指定以下值之一:
- 0:OneToMany
- 1:ManyToMany
roleType 编号 关系中的角色类型。 指定以下值之一:
- 1:引用
- 2:AssociationEntity

注解

必须使用此方法打开表或快速创建表单,而不是弃用的 Xrm.Utility.openEntityFormXrm.Utility.openQuickCreate 方法。

使用 setActiveProcess 显示特定的业务流程, setActiveProcessInstance 在窗体上显示特定的业务流程实例。

例子

示例 1:打开现有记录的窗体

以下示例代码将打开联系人窗体以显示现有联系人记录:

var entityFormOptions = {};
entityFormOptions["entityName"] = "contact";
entityFormOptions["entityId"] = "00aa00aa-bb11-cc22-dd33-44ee44ee44ee";

// Open the form.
Xrm.Navigation.openForm(entityFormOptions).then(
    function (success) {
        console.log(success);
    },
    function (error) {
        console.log(error);
    });

示例 2:打开新记录的窗体

以下示例代码将打开一个联系人表单,其中包含一些预先填充的值以创建新记录:

var entityFormOptions = {};
entityFormOptions["entityName"] = "contact";

// Set default values for the Contact form
var formParameters = {};
formParameters["firstname"] = "Sample";
formParameters["lastname"] = "Contact";
formParameters["fullname"] = "Sample Contact";
formParameters["emailaddress1"] = "contact@adventure-works.com";
formParameters["jobtitle"] = "Sr. Marketing Manager";
formParameters["donotemail"] = "1";
formParameters["description"] = "Default values for this record were set programmatically.";

// Set lookup column
formParameters["preferredsystemuserid"] = "3493e403-fc0c-eb11-a813-002248e258e0"; // ID of the user.
formParameters["preferredsystemuseridname"] = "Admin user"; // Name of the user.
// End of set lookup column

// Open the form.
Xrm.Navigation.openForm(entityFormOptions, formParameters).then(
    function (success) {
        console.log(success);
    },
    function (error) {
        console.log(error);
    });

示例 3:打开新记录的窗体(复杂查找)

以下示例代码将打开一个活动窗体,其中包含一些预先填充的值(包括复杂查找),以创建新记录:

var entityFormOptions = {};
entityFormOptions["entityName"] = "email";

// Set default values for the Contact form
var formParameters = {};
formParameters["subject"] = "Sample";
formParameters["description"] = "Default values for this record were set programmatically.";

// Set lookup column
formParameters["regardingobjectid"] = "3493e403-fc0c-eb11-a813-002248e258e0"; // ID of the user.
formParameters["regardingobjectidname"] = "Admin user"; // Name of the user.
formParameters["regardingobjectidtype"] = "systemuser"; // Table name. 
// End of set lookup column

// Open the form.
Xrm.Navigation.openForm(entityFormOptions, formParameters).then(
    function (success) {
        console.log(success);
    },
    function (error) {
        console.log(error);
    });

示例 4:打开快速创建表单

以下示例代码将打开一个快速创建联系人表单,其中包含一些预先填充的值:

var entityFormOptions = {};
entityFormOptions["entityName"] = "contact";
entityFormOptions["useQuickCreateForm"] = true;

// Set default values for the Contact form
var formParameters = {};
formParameters["firstname"] = "Sample";
formParameters["lastname"] = "Contact";
formParameters["fullname"] = "Sample Contact";
formParameters["emailaddress1"] = "contact@adventure-works.com";
formParameters["jobtitle"] = "Sr. Marketing Manager";
formParameters["donotemail"] = "1";
formParameters["description"] = "Default values for this record were set programmatically.";

// Set lookup column
formParameters["preferredsystemuserid"] = "3493e403-fc0c-eb11-a813-002248e258e0"; // ID of the user.
formParameters["preferredsystemuseridname"] = "Admin user"; // Name of the user.
formParameters["preferredsystemuseridtype"] = "systemuser"; // Table name.
// End of set lookup column

// Open the form.
Xrm.Navigation.openForm(entityFormOptions, formParameters).then(
    function (success) {
        console.log(success);
    },
    function (error) {
        console.log(error);
    });

Xrm.Navigation