Utiliser des événements de formulaire et de champ
Date de publication : janvier 2017
S’applique à : Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Vous pouvez ajouter des scripts pour les événements OnLoad et OnSave pour les formulaires et les événements OnChange de chaque champ. Les onglets ont un événement TabStateChange et les IFRAMES ont un événement OnReadyStateComplete. Les gestionnaires de l'événement PreSearch et des événements déclenchés par le contrôle de flux des processus d'entreprise peuvent être ajoutés ou supprimés uniquement à l'aide des méthodes des contrôles respectifs.
Notes
Les événements du formulaire sont désactivés pour le formulaire de modification en bloc. Le formulaire de modifications en bloc est affiché lorsque plusieurs enregistrements d’une liste sont modifiés.
Contenu de la rubrique
Événement OnLoad
Événement OnSave
Événement OnChange
Événement TabStateChange
Événement OnReadyStateComplete
Événement PreSearch
Événements de contrôle du flux des processus d'entreprise
Événement OnLoad
L’événement OnLoad se produit après le chargement du formulaire. Vous ne pouvez pas empêcher le chargement de la fenêtre. Utilisez l’événement OnLoad pour préparer les données dans le formulaire afin de les utiliser. Les actions qui peuvent être effectuées à l’aide de l’événement OnLoad sont notamment :
Effectuer des calculs basés sur des valeurs qui varient.
Alerter un utilisateur dans une situation donnée.
Désactiver les champs qui ne doivent pas être mis à jour.
Pour plus d'informations :Événement OnLoad
Événement OnSave
L’événement OnSave ne correspond pas à l’événement OnSubmit HTML standard. L’événement OnSave se produit lorsque :
L’utilisateur clique sur le bouton dans le coin inférieur droit du formulaire, même lorsqu’il n’existe aucune donnée modifiée à enregistrer.
Le code exécute la méthode Xrm.Page.data.entity.Enregistrer, même lorsqu’il n’existe aucune donnée modifiée à enregistrer.
L’utilisateur quitte le formulaire et qu’il existe des données non enregistrées dans le formulaire.
Lorsque l’enregistrement automatique est actif, 30 secondes après la modification de données et lorsqu’il existe des données non enregistrées dans le formulaire.
Le code exécute la méthode Xrm.Page.data.Enregistrer et qu’il existe des données non enregistrées dans le formulaire.
Le code exécute la méthode Xrm.Page.data.refresh qui passe une valeur true en tant que premier paramètre et qu’il existe des données non enregistrées dans le formulaire.
Vous pouvez détecter l’action qui a été effectuée pour enregistrer le formulaire en utilisant la méthode getSaveMode dans les arguments de l’événement d’enregistrement récupérés à partir du contexte d’exécution de la méthode getEventArgs. Quitter un formulaire lorsqu’il contient des données non enregistrées correspond au comportement « Enregistrer et fermer » de certains formulaires pour les entités qui n’ont pas été mises à jour.
L’événement OnSave peut être annulé pour empêcher l’enregistrement des données. C’est pour cette raison qu’il est très courant d’utiliser l’événement OnSave pour valider les données.
Pour plus d'informations :Événement OnSave
Événement OnChange
L’événement OnChange est disponible sur chaque champ. En général, l’événement OnChange nécessite deux conditions pour être true :
Les données du champ doivent être modifiées.
Le champ doit être désactivé.
Notes
Il existe une exception à ceci, qui s’applique aux champs à deux options (booléens) qui sont formaté pour utiliser des cases d’option ou des cases à cocher. Dans le cas de ces contrôles, l'événement se produit immédiatement.
Cet événement se produit également lorsque des modifications de données sur le serveur sont récupérées pour mettre à jour un champ lorsque le formulaire est actualisé, par exemple après la sauvegarde d'un enregistrement.
Avec l'attribut Xrm.Page.data.entity. La méthode fireOnChange génère également cet événement.
L’événement OnChange ne se produit pas si le champ est modifié par programme à l’aide de la méthode setValue. Si vous souhaitez que des gestionnaires d’événements pour l’événement OnChange s’exécutent une fois que vous avez défini la valeur, vous devez utiliser la méthode fireOnChange dans votre code.
Après l’événement, les données du champ sont revalidées. Cela signifie que vous ne pouvez pas utiliser l’événement pour entrer des données invalides.
Les actions qui peuvent être effectuées à l’aide de OnChange sont notamment :
Effectuer des calculs pour modifier d’autres champs en fonction de valeurs qui varient.
Modifier la mise en forme des champs, par exemple les numéros de téléphone.
Pour plus d'informations :Événement OnChange de champ
Événement TabStateChange
Cet événement se produit lorsqu’un onglet est développé ou réduit. Vous pouvez souhaiter différer l’exécution du code jusqu’à ce qu’un onglet soit développé.
Notes
Cet événement ne se produit jamais dans Microsoft Dynamics 365 pour tablettes, car les onglets de ce client ne peuvent pas être réduits.
Cet événement est important si vous utilisez un script pour modifier la propriété src d’un contrôle IFRAME. Un IFRAME sera actualisé lorsque l’onglet est développé. Toute modification apportée à la propriété src sera supprimée. Si vous interagissez avec la propriété src d’un IFRAME, vous devez toujours inclure ce code dans l’événement TabStateChange au lieu de l’événement Onload.
Pour plus d'informations :Événement TabStateChange de l'onglet
Événement OnReadyStateComplete
Tout script qui interagit avec un IFRAME échouera, sauf si le chargement du contenu de l’IFRAME est terminé. Cet événement fournit un emplacement dans lequel inclure le script qui s’exécute dès que le chargement du contenu de l’IFRAME est terminé.
Pour plus d'informations :Événement OnReadyStateComplete IFRAME
Événement PreSearch
Utilisez la méthode addPreSearch pour ajouter un gestionnaire d’événements à un contrôle pour un attribut de recherche. Il n’existe aucune interface utilisateur pour ajouter un gestionnaire d’événements manuellement. Utilisez cet événement avec les méthodes addCustomFilter, addCustomView et setDefaultView pour contrôler les vues ouvertes lorsqu’un enregistrement est recherché pour servir de valeur à un champ de recherche.
Pour plus d'informations :Événement PreSearch de contrôle de recherche
Événements de contrôle du flux des processus d'entreprise
Microsoft Dynamics 365 (Online et local) propose trois événements pour l'interaction utilisateur avec le contrôle de flux des processus d'entreprise.
OnStageChange
Se produit lorsqu'une phase change.Pour plus d'informations :Événement OnStageChange.OnStageSelected
Se produit lorsqu'une phase est sélectionnée.Pour plus d'informations :Événement OnStageSelected.OnProcessStatusChange
Se produit lorsque le statut d'une instance de processus change.Pour plus d'informations :Événement OnProcessStatusChange.
Il n'existe aucune interface utilisateur pour enregistrer les scripts de ces événements. Utilisez les méthodes suivantes dans les fonctions enregistrées dans l'événement OnLoad de formulaire pour enregistrer vos fonctions pour ces événements.
Xrm.Page.data.process.addOnStageChange
Xrm.Page.data.process.addOnStageSelected
Xrm.Page.data.process.removeOnStageChange
Xrm.Page.data.process.removeOnStageSelected
Xrm.Page.data.process.addOnProcessStatusChange
Xrm.Page.data.process.removeOnProcessStatusChange
Chacune de ces méthodes accepte une fonction comme paramètre à ajouter ou à supprimer du gestionnaire d'événements.Pour plus d'informations :Méthodes pour gérer des gestionnaires d'événements.
Voir aussi
Écrire du code pour les formulaires Microsoft Dynamics 365
Utiliser le modèle d’objet Xrm.Page
Référence rapide des scripts de formulaires
Utilisation de JavaScript avec Microsoft Dynamics 365
Référence par programmation côté client
Événements de formulaire (référence côté client)
<events> (FormXml)
Microsoft Dynamics 365
© 2017 Microsoft. Tous droits réservés. Copyright