Comparteix via


openForm (Referència de l'API del client)

Obre un formulari d'entitat o un formulari de creació ràpida.

Nota

Per obrir un formulari principal com a diàleg, utilitzeu el mètode navigateTo . Més informació: Obre el formulari principal en un diàleg mitjançant l'API del client

Sintaxi

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

Paràmetres

Nom Tipus Necessari Descripció
entityFormOptions Objecte Opcions de formulari per obrir el formulari. Vegeu l'objecte entityFormOptions
formParameters Objecte No Objecte de diccionari que passa paràmetres addicionals al formulari. Els paràmetres no vàlids provocaran un error.

Per obtenir informació sobre com passar paràmetres a un formulari, vegeu Definir valors de columna mitjançant paràmetres passats a un formulari i Configurar un formulari per acceptar paràmetres de cadena de consulta personalitzats.
successCallback Function No Funció que s'executarà quan es desa el registre al formulari de creació ràpida. A aquesta funció se li passa un objecte com a paràmetre. L'objecte té una savedEntityReference matriu amb les propietats següents per identificar els registres que es mostren o creen:
- entityType: El nom lògic de la taula.
- id: Representació de cadena d'un valor GUID per al registre.
- name: el valor de la columna principal del registre visualitzat o creat.

NOTA:
- La successCallback funció no s'executa quan obriu un formulari per a un registre existent o nou.
- La successCallback funció només s'executa quan deseu un registre en un formulari de creació ràpida que s'ha obert mitjançant el mètode openForm.
errorCallback Function No Una funció que s'ha d'executar quan l'operació falla.

objecte entityFormOptions

L'objecte conté els valors següents:

Nom Tipus Necessari Descripció
entityName Corda Nom lògic de la taula per a la qual es mostrarà el formulari.
entityId Corda No ID del registre de taula per al qual es mostrarà el formulari.
formId Corda No ID de la instància del formulari que es mostrarà.
cmdbar Bool No Indica si s'ha de mostrar la barra d'ordres. Si no especifiqueu aquest paràmetre, la barra d'ordres es mostra per defecte. Requereix passar openInNewWindow el paràmetre com a true.
createFromEntity Cerca No Designa un registre que proporcionarà valors per defecte basats en els valors de columna assignats. L'objecte de cerca té les propietats String següents: entityType, idi name (opcional).
openInNewWindow Bool No Indica si es mostra el formulari en una finestra nova o en una pestanya nova. Si especifiqueu i no especifiqueu true valors per a l'alçada o l'amplada, el formulari es mostrarà en una pestanya nova. Obrir un formulari en una finestra nova o una pestanya nova fa que la representació del formulari sigui lenta en comparació amb obrir el formulari a la mateixa pestanya. Aquesta propietat actualment no s'admet per als formularis de creació ràpida, ja que no es poden obrir en una finestra o pestanya nova.
height Nombre No Alçada de la finestra del formulari que es mostrarà en píxels. Requereix passar openInNewWindow el paràmetre com a true.
width Nombre No Amplada de la finestra del formulari que es mostrarà en píxels. Requereix passar openInNewWindow el paràmetre com a true.
navbar Corda No Controla si es mostra la barra de navegació i si la navegació de l'aplicació està disponible mitjançant les àrees i subàrees definides al mapa del lloc. Els valors vàlids són: on, offo entity. Requereix passar el paràmetre openInNewWindow com a true.
- on: Es mostra la barra de navegació. Aquest és el comportament per defecte si no s'utilitza el paràmetre de la barra de navegació.
- off: La barra de navegació no es mostra. La gent pot navegar utilitzant altres elements de la interfície d'usuari o els botons enrere i endavant.
- entity: En un formulari, només hi ha disponibles les opcions de navegació de les taules relacionades. Després de navegar a una taula relacionada, es mostra un botó enrere a la barra de navegació per permetre tornar al registre original.
relationship Objecte No Definiu un objecte de relació per visualitzar els registres relacionats al formulari. Veure l'objecte de relació
selectedStageId Corda No ID de la fase seleccionada a la instància del procés de negoci.
useQuickCreateForm Bool No Indica si s'ha d'obrir un formulari de creació ràpida. La taula ha de tenir habilitada l'opció Permet la creació ràpida perquè es mostri el formulari de creació ràpida i també heu d'afegir la taula i el formulari de creació ràpida a l'aplicació. Si no especifiqueu el valor de , el valor per useQuickCreateFormdefecte s'establirà com a false.

Objecte relació

L'objecte té els valors següents.

Nom Tipus Descripció
attributeName Corda Nom de la columna utilitzada per a la relació.
name Corda Nom de la columna utilitzada per a la relació.
navigationPropertyName Corda Nom de la columna utilitzada per a la relació.
relationshipType Nombre Tipus de relació. Especifiqueu un dels valors següents:
- 0:OneToMany
- 1:ManyToMany
roleType Nombre Tipus de rol a la relació. Especifiqueu un dels valors següents:
- 1:Referències
- 2:Entitat d'associació

Observacions

Heu d'utilitzar aquest mètode per obrir formularis de taula o de creació ràpida en lloc dels mètodes obsolets Xrm.Utility.openEntityForm i Xrm.Utility.openQuickCreate .

Utilitzeu setActiveProcess per visualitzar un procés de negoci concret i setActiveProcessInstance per visualitzar una instància de procés de negoci concreta al formulari.

Exemples

Exemple 1: Obrir un formulari per al registre existent

El codi d'exemple següent obre un formulari de contacte per mostrar un registre de contacte existent:

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);
    });

Exemple 2: Obrir un formulari per a un registre nou

El codi d'exemple següent obre un formulari de contacte amb alguns valors emplenats prèviament per crear un registre nou:

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);
    });

Exemple 3: Obrir un formulari per a un registre nou (cerca complexa)

El codi d'exemple següent obre un formulari d'activitat amb alguns valors emplenats prèviament (inclosa una cerca complexa) per crear un registre nou:

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);
    });

Exemple 4: Obrir un formulari de creació ràpida

El codi d'exemple següent obre un formulari de contacte de creació ràpida amb alguns valors emplenats prèviament:

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.Navegació