Comparteix a través de


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 invàlids causen 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 Una funció per executar quan el registre està desat en el formulari de creació ràpida. Aquesta funció accepta un objecte com a paràmetre. L'objecte té un savedEntityReference array amb les següents propietats per identificar els registres mostrats o creats:
- 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 obres 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 especifiques aquest paràmetre, la barra de comandes es mostra per defecte. Requereix passar openInNewWindow el paràmetre com a true.
createFromEntity Cerca No Designa un registre que proporciona valors per defecte basats en valors de columna assignats. L'objecte de cerca té les propietats String següents: entityType, idi name (opcional).
openInNewWindow Bool No Indica si s'ha de mostrar el formulari en una finestra nova o en una pestanya nova. Si especifiques true i no especifiques valors per a l'alçada o l'amplada, el formulari es mostra en una nova pestanya. Obrir un formulari en una nova finestra o pestanya nova fa que la representació del formulari sigui lenta en comparació amb obrir-lo a la mateixa pestanya; considera obrir un formulari al diàleg principal del formulari en comptes d'això. Aquesta propietat actualment no és compatible amb 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 especifiques el valor de useQuickCreateForm, el valor per defecte s'estableix 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:MoltsA Molts
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 següent codi d'exemple obre un formulari d'activitat amb alguns valors preomplerts (incloent-hi una consulta complexa) per crear un nou registre:

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ó