Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert une autorisation. Vous pouvez essayer de modifier des répertoires.
Les formulaires dans les applications basées sur des modèles fournissent l’interface utilisateur que les utilisateurs utilisent pour créer, afficher ou modifier des enregistrements de table. Cet article explique comment créer ou modifier des formulaires par programmation à l’aide de la table et du SystemForm concepteur de formulaires dans les outils de personnalisation. Vous apprenez à accéder aux définitions de formulaires, à comprendre les propriétés de formulaire et à implémenter des formulaires par le biais d’exemples de code.
Accès aux définitions de formulaire
La SystemForm table stocke les formulaires ainsi que les tableaux de bord et les visualisations. Vous pouvez inspecter les définitions de formulaire d’une table de deux façons :
Incluez la table dans une solution non gérée et exportez la solution.
Interrogez la table
SystemForm.
Afficher FormXML à partir d’une table exportée
Une solution managée exportée inclut uniquement les définitions des formulaires système que vous personnalisez. Pour afficher la définition d’un formulaire système, vous devez modifier le formulaire 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 customizations.xml fichier. Vous trouvez la définition des formulaires dans ImportExportXml>Entities>Entity>FormXml.
Dans le <FormXml> nœud, chaque type de formulaire est regroupé dans un <forms> élément avec le type paramètre 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éfinissez cette propriété lorsque vous créez un nouveau formulaire en utilisant Enregistrer sous pour un formulaire existant ou en utilisant le SDK .NET pour la classe CopySystemFormRequest ou l'action CopySystemForm de l'API Web. |
CanBeDeleted |
<CanBeDeleted> |
Informations qui spécifient si ce composant peut être supprimé. Cette propriété gérée s’applique uniquement si vous créez le formulaire en important une solution managée. |
Description |
<Descriptions> |
Description représente une chaîne et <Descriptions> contient les étiquettes localisées de la description du formulaire.Vous pouvez récupérer les étiquettes localisé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 valides : -0 : Inactive-1 : Active |
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 |
Sans objet | 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 s’applique uniquement si vous créez le formulaire en important une solution managée. |
IsDefault |
N/D | Information indiquant si le formulaire ou le tableau de bord est le système par défaut. |
Name |
<LocalizedNames> |
Name est une chaîne de caractères et <LocalizedNames> contient les étiquettes localisées du nom du formulaire.Vous pouvez récupérer les étiquettes localisées à l’aide du 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 ne pouvez créer de formulaires que pour les tables où EntityMetadata.CanCreateForms l’autorise .
Créez des formulaires en les créant directement ou en utilisant le CopySystemForm message. Utilisez le Kit de développement logiciel (SDK) pour la classe .NET CopySystemFormRequest ou l’action CopySystemForm de l’API web. Lorsque vous utilisez le CopySystemForm message ou Enregistrer sous dans l’éditeur de formulaires, il n’existe aucun héritage entre les formulaires. Par conséquent, les modifications apportées au formulaire de base ne s’appliquent pas automatiquement aux formulaires créés à partir de celui-ci.
Vous pouvez modifier les définitions de formulaire en exportant une solution gérée, en modifiant les définitions de formulaire, puis en réimportant la solution. Lorsque vous modifiez manuellement des formulaires, utilisez un éditeur XML qui prend en charge la validation de schéma. Pour plus d’informations, consultez Modifier le fichier XML des personnalisations avec la validation du schéma.
Ouvrir le formulaire principal dans une boîte de dialogue à l’aide de l’API cliente
Pour ouvrir le formulaire principal dans une boîte de dialogue à l’aide de l’API cliente, appelez la méthode Xrm.Navigation.navigateTo . La méthode API Xrm.Navigation.navigateTo ouvre la boîte de dialogue avec plusieurs options, notamment la taille et la position.
Note
La méthode Xrm.Navigation.openForm ne prend pas en charge l’ouverture d’un formulaire principal en tant que boîte de dialogue.
Exemple : 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 s’affiche au centre en utilisant jusqu’à 50 % de l’espace disponible de la fenêtre comme modale au-dessus du formulaire à partir duquel elle a été appelée.
var pageInput = {
pageType: "entityrecord",
entityName: "account",
formType: 2,
};
var navigationOptions = {
target: 2,
width: {value: 50, unit:"%"},
position: 1
};
Xrm.Navigation.navigateTo(pageInput, navigationOptions);
Exemple : 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 n’importe quelle valeur d’ID d’enregistrement pour ouvrir l’enregistrement dans la boîte de dialogue.
var pageInput = {
pageType: "entityrecord",
entityName: "account",
formType: 2,
entityId: "00aa00aa-bb11-cc22-dd33-44ee44ee44ee" //replace with actual ID
};
var navigationOptions = {
target: 2,
width: {value: 80, unit:"%"},
position: 1
};
Xrm.Navigation.navigateTo(pageInput, navigationOptions);
Exemple : Ouvrir 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. Vous pouvez obtenir ce comportement à l’aide des options de pixel.
var pageInput = {
pageType: "entityrecord",
entityName: "account",
formType: 2,
};
var navigationOptions = {
target: 2,
width: {value: 500, unit:"px"},
position: 2
};
Xrm.Navigation.navigateTo(pageInput, navigationOptions);
Exemple : Ouvrir un formulaire principal dans une boîte de dialogue avec la méthode de rappel
Cet exemple montre comment appeler une boîte de dialogue de formulaire principale 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 SystèmeForm
Schéma XML du formulaire
Xrm.Navigation.navigateTo