Aller au contenu principal

Lier un contrôle personnalisé à un champ

Objectif​

Remplacer l’éditeur natif d’un champ de formulaire piloté par modèle par un contrôle personnalisé inscrit, afin que ce champ affiche et modifie sa valeur au moyen du contrôle.

Prérequis​

  • Vous êtes connecté en tant que créateur autorisé à modifier la solution du formulaire.
  • Le champ sur lequel vous voulez utiliser le contrôle existe déjà dans la table et est placé sur le formulaire.
  • Le contrôle personnalisé est inscrit et installé dans l’environnement que vous modifiez (voir Inscrire un contrôle personnalisé), et sa liste de types remplaçables comprend le type de contrôle du champ.

Étapes​

  1. Ouvrez la solution, sélectionnez Tables, ouvrez la table, puis sélectionnez Formulaires. Ouvrez le formulaire dans le concepteur de formulaires.
  2. Faites glisser le champ depuis Champs disponibles dans une section, ou sélectionnez-le s’il est déjà sur le formulaire.
  3. Dans Propriétés, ouvrez Contrôle personnalisé. La liste propose les contrôles personnalisés installés dans cet environnement qui peuvent remplacer le type de données de ce champ (un contrôle qui déclare le type universel Custom est proposé pour tout champ). Aucun garde l’éditeur propre du champ. Le réglage Contrôle au-dessus choisit parmi les éditeurs intégrés ; un contrôle personnalisé remplace celui qu’il désigne.
  4. Choisissez le contrôle, par exemple Badge field.
  5. Sélectionnez Enregistrer.

La liste n’apparaît que si au moins un contrôle installé peut remplacer le champ : un champ sans réglage Contrôle personnalisé n’a encore rien à se voir proposer.

Ce qui se passe en coulisses​

Le formulaire enregistre le nom logique du contrôle pour ce champ. Lorsqu’un utilisateur ouvre le formulaire dans le lecteur d’applications pilotées par modèle, le lecteur fait correspondre le contrôle du champ au contrôle installé dans l’environnement et le monte à la place de l’éditeur natif, en le chargeant comme module distant Module Federation depuis une origine autorisée. Le contrôle personnalisé reçoit la valeur actuelle du champ et renvoie ses modifications par ce même formulaire — la valeur écrite par le contrôle est donc enregistrée exactement comme une valeur saisie dans un champ natif. Si le contrôle référencé n’est pas installé dans l’environnement, le champ revient à son éditeur natif au lieu de casser le formulaire.

Dépannage​

  • Le contrôle n’apparaît pas dans le sélecteur. — le contrôle n’est peut-être pas installé dans cet environnement, ou sa liste de types remplaçables ne comprend pas le type de contrôle de ce champ. Inscrivez ou reconfigurez le contrôle, puis rouvrez le formulaire.
  • Le champ affiche « This control's code is served from a blocked origin ». — l’origine remoteEntry du contrôle ne figure pas dans la liste d’autorisation de l’environnement. Demandez à un administrateur de l’y ajouter.
  • Le champ affiche son éditeur natif au lieu du contrôle après une importation. — le contrôle n’était pas inclus dans la solution importée ou n’est pas encore installé dans l’environnement cible. Importez la solution qui contient le contrôle, puis rouvrez le formulaire.
  • Un bouton du contrôle se déclenche à chaque clic à l'intérieur (un pavé de signature s'efface dès que vous relâchez la souris). — corrigé. Le formulaire entourait chaque champ d'une étiquette, et un clic n'importe où dans une étiquette est transmis au premier bouton qu'elle contient. Un champ doté d'un contrôle personnalisé n'est plus entouré ainsi.

Scénarios associés​

  • Inscrire un contrôle personnalisé.
  • Ajouter un champ à un formulaire.
  • Créer un formulaire.