Personnaliser les formulaires

Les formulaires constituent une interface utilisateur qui permet aux utilisateurs de créer, d′afficher ou de modifier les enregistrements de tables. Utilisez le concepteur de formulaire dans les outils de personnalisation pour créer et modifier les formulaires. Pour plus d′informations : Créer et concevoir des formulaires pour obtenir des informations sur les tâches liées à l′utilisation des formulaires dans l′application.

Cette rubrique fournira des informations requises pour créer ou modifier des formulaires par programme.

Accès aux définitions de formulaire

Les formulaires sont enregistrés dans la table SystemForm avec les tableaux de bord et les visualisations. Il existe deux méthodes pour inspecter les définitions de formulaire pour une table :

  • Incluez la table dans une solution non gérée et exportez la solution.

  • Interroger la table SystemForm

Afficher FormXML à partir d′une table exportée

Seules les définitions des formulaires système qui ont été personnalisées sont incluses dans la solution gérée exportée. Pour afficher la définition d′un formulaire système, vous devez la modifier d′une façon ou d′une autre, ou créer un formulaire en enregistrant le formulaire existant avec un nouveau nom.

Après avoir exporté la solution, extrayez le contenu et affichez le fichier customizations.xml. Vous trouverez la définition des formulaires dans ImportExportXml > Entities > Entity > FormXml. Dans le nœud <FormXml>, chaque type de formulaire est regroupé dans un élément <forms> avec le paramètre type spécifiant le type de formulaire.

Propriétés du formulaire

Le tableau suivant décrit les colonnes de table SystemForm clés et les données correspondantes incluses dans les éléments XML exportés avec la solution.

Propriété SystemForm Élément FormXML Description
AncestorFormId <ancestor> Identificateur unique du formulaire parent. Défini lorsque vous créez un formulaire à l’aide d’Enregistrer sous pour un formulaire existant ou en utilisant CopySystemFormRequest.
CanBeDeleted <CanBeDeleted> Information qui indique si ce composant peut être supprimé. Cette propriété gérée est appliquée uniquement si le formulaire a été créé en important une solution gérée.
Description <Descriptions> Description représente une chaîne et <Descriptions> contient les étiquettes localisées de la description du formulaire.

Les étiquettes localisées peuvent être récupérées à l′aide de RetrieveLocLabelsRequest.
FormActivationState <FormActivationState> Spécifie l′état du formulaire.

Seuls les formulaires du type « principal » peuvent être désactivés.

Valeurs correctes :

- 0 : Inactif
- 1 : Actif
FormId <formid> Identificateur unique du formulaire
FormPresentation <FormPresentation> Indique si ce formulaire figure dans la disposition d′interface utilisateur mise à jour dans Microsoft Dataverse.
FormXml <form> Représentation XML de la disposition du formulaire.
IntroducedVersion <IntroducedVersion> Version de la solution à laquelle le formulaire a été ajouté.
IsAIRMerged S.o. Indique si ce formulaire est fusionné avec la disposition d′interface utilisateur mise à jour dans Dataverse.
IsCustomizable <IsCustomizable> Information indiquant si ce composant est personnalisable.

Cette propriété gérée est appliquée uniquement si le formulaire a été créé en important une solution gérée.
IsDefault N/D Information indiquant si le formulaire ou le tableau de bord est le système par défaut.
Name <LocalizedNames> Name représente une chaîne et <LocalizedNames> contient les étiquettes localisées du nom du formulaire.

Les étiquettes localisées peuvent être récupérées à l′aide de RetrieveLocLabelsRequest.
ObjectTypeCode Le formulaire est un descendant de l′élément Entity. La valeur ObjectTypeCode est le nom logique de la table.
Type Élément <forms> paramètre type Les valeurs valides pour les formulaires sont :

- 2 : main
- 5 : mobile
- 6 : quick
- 7 : quickCreate

Créer et modifier des formulaires

Vous pouvez uniquement créer des formulaires pour une table où EntityMetadata. CanCreateForms le permet.

Vous pouvez créer des formulaires avec CreateRequest ou CopySystemFormRequest. Lorsque vous utilisez CopySystemFormRequest ou Enregistrer sous dans l′éditeur de formulaires, notez qu′aucun héritage n′a lieu entre les formulaires. Par conséquent, les modifications apportées au formulaire de base ne sont pas automatiquement appliquées à tous les formulaires créés à partir de celui-ci.

La modification des définitions de formulaires d’une solution gérée exportée, puis la réimportation de la solution est une méthode prise en charge pour modifier les formulaires. Lors de la modification manuelle des formulaires, utilisez un éditeur XML qui permet la validation de schéma. Pour plus d′informations : Modifier le fichier XML de personnalisations avec une validation de schéma

Ouvrir le formulaire principal dans une boîte de dialogue à l′aide de l′API client

Pour ouvrir le formulaire principal dans une boîte de dialogue à l′aide de l′API client, vous devez invoquer l′appel en utilisant la méthode Xrm.Navigation.navigateTo. La méthode de l′API Xrm.Navigation.navigateTo vous permet d′ouvrir la boîte de dialogue avec plusieurs options, y compris la taille et la position.

Notes

La méthode Xrm.Navigation.openForm n′est pas prise en charge pour ouvrir un formulaire principal en tant que boîte de dialogue.

Exemples

Ouvrir un nouvel enregistrement

Dans cet exemple, la boîte de dialogue ouvre un nouveau formulaire de compte pour créer un nouvel enregistrement. La boîte de dialogue apparaît dans le centre en utilisant jusqu′à 50 % de la fenêtre disponible comme un modal sur le dessus de la forme, il a été invoqué ou appelé à partir de cet emplacement.

var pageInput = {
    pageType: "entityrecord",
    entityName: "account",
    formType: 2,
};
var navigationOptions = {
    target: 2,
    width: {value: 50, unit:"%"},
    position: 1
};
Xrm.Navigation.navigateTo(pageInput, navigationOptions);

Ouvrir un nouvel enregistrement.

Ouvrir un enregistrement existant

Dans cet exemple, la boîte de dialogue ouvre un enregistrement de compte existant à l′aide de la valeur d′ID de compte sur le formulaire de contact. Remplacez l′ID par toute valeur d′ID d′enregistrement dont vous souhaitez ouvrir l′enregistrement dans la boîte de dialogue.

var pageInput = {
    pageType: "entityrecord",
    entityName: "account",
    formType: 2,
    entityId: "5a57f2c3-5672-ea11-a812-000d3a339706" //replace with actual ID
};
var navigationOptions = {
    target: 2,
    width: {value: 80, unit:"%"},
    position: 1
};
Xrm.Navigation.navigateTo(pageInput, navigationOptions);

Ouvrir un enregistrement existant.

Ouvrez un nouvel enregistrement dans le volet latéral

Dans cet exemple, la boîte de dialogue ouvre un nouvel enregistrement dans le coin droit de la fenêtre. Cela peut être réalisé en utilisant les options de pixels.

var pageInput = {
    pageType: "entityrecord",
    entityName: "account",
    formType: 2,
};
var navigationOptions = {
    target: 2,
    width: {value: 500, unit:"px"},
    position: 2
};
Xrm.Navigation.navigateTo(pageInput, navigationOptions);

Ouvrir un enregistrement existant dans le volet latéral.

Ouvrir le formulaire principal dans une boîte de dialogue avec la méthode de rappel

Cet exemple montre comment une boîte de dialogue de formulaire principal est invoqué avec une méthode de rappel après avoir enregistré un enregistrement et fermé la boîte de dialogue.

var pageInput = {
    pageType: "entityrecord",
    entityName: "account",
    formType: 2
};
var navigationOptions = {
    target: 2,
    width: {value: 80, unit:"%"},
    position: 2  
};
Xrm.Navigation.navigateTo(pageInput, navigationOptions).then(
    function success(result) {
            console.log("Record created with ID: " + result.savedEntityReference[0].id + 
            " Name: " + result.savedEntityReference[0].name)
            // Handle dialog closed
    },
    function error() {
            // Handle errors
    }
);

Voir aussi

Créer et concevoir des formulaires
Table SystemForm
Schéma XML du formulaire
Xrm.Navigation.navigateTo

Notes

Pouvez-vous nous indiquer vos préférences de langue pour la documentation ? Répondez à un court questionnaire. (veuillez noter que ce questionnaire est en anglais)

Le questionnaire vous prendra environ sept minutes. Aucune donnée personnelle n’est collectée (déclaration de confidentialité).