Aller au contenu principal

Choisir le contrôle d’un champ

Objectif​

Choisir le contrôle de saisie qu’un champ utilise sur un formulaire — une zone de texte, une case à cocher, un interrupteur, un sélecteur de date, une recherche ou une liste déroulante — et configurer les propriétés de ce contrôle, comme le format d’affichage d’une date ou les libellés Oui/Non d’un interrupteur.

Prérequis​

Étapes​

  1. Ouvrez la table dans Tables et allez dans l’onglet Formulaires.
  2. Sélectionnez le formulaire pour ouvrir le concepteur de formulaires.
  3. Sélectionnez le champ placé sur le canevas du formulaire. Le panneau Propriétés affiche les réglages de ce champ.
  4. Ouvrez la liste déroulante Contrôle et choisissez un contrôle :
    • Par défaut pour le type de champ — la plateforme choisit la saisie habituelle pour le type de données du champ. C’est le point de départ de chaque champ.
    • Texte — une zone de texte sur une ligne.
    • Zone de texte — une zone de texte multiligne.
    • Case à cocher — une case à cocher.
    • Interrupteur — un interrupteur.
    • Date, Date et heure, Heure — un sélecteur de date et/ou d’heure.
    • Recherche — un sélecteur d’enregistrement d’une autre table.
    • Liste déroulante — une sélection dans une liste fixe d’options.
  5. Définissez les propriétés du contrôle, qui apparaissent sous la liste déroulante Contrôle et dépendent du contrôle choisi :
    • Zone de texte — Lignes, la hauteur de la zone.
    • Date, Date et heure, Heure (et leurs équivalents persans) — Format de date, la façon dont la valeur est affichée. Utilisez yyyy ou yy pour l’année, MMMM pour le nom du mois, MM pour son numéro, dd pour le jour, HH pour l’heure, mm pour les minutes et ss pour les secondes ; tout autre caractère est affiché tel quel. Par exemple, dd/MM/yyyy affiche le 4 mars 2026 sous la forme 04/03/2026. Un contrôle Heure accepte aussi un format — HH:mm ou HH:mm:ss — et le texte indicatif de la zone montre la forme adaptée au contrôle. Laissez-la vide pour utiliser le format défini au niveau de l’application (Paramètres → Calendrier → Formats de date).
    • Case à cocher, Interrupteur — Libellé Oui et Libellé Non, les mots affichés à côté du contrôle pour chaque état.
    • Recherche — Table de recherche, la table vers les enregistrements de laquelle pointe le champ, choisie dans la liste des tables de l’environnement ; Vue de recherche, qui décide des colonnes affichées dans le sélecteur (laissez-la sur Par défaut (résolue automatiquement), sauf si ce champ précis doit afficher d’autres colonnes que le sélecteur habituel de la table) ; Lignes à afficher, le nombre d’enregistrements que le sélecteur propose à la fois (laissez vide pour la valeur par défaut de 10 ; augmentez-la — 50, 100, jusqu’à 500 — pour une table où l’utilisateur a besoin de faire défiler une longue liste plutôt que de continuer à taper) ; et, une fois les champs de la table cible chargés, Champ du nom, Champ de la seconde ligne et Champ de l’image — le champ qui sert de nom à chaque candidat, la ligne plus petite en dessous, et son image. Chacun reste sur Par défaut (celui de la table), sauf si ce champ de recherche précis doit se lire autrement que le choix habituel de la table. Le sélecteur d’image ne propose que des champs fichier et image.
    • Liste déroulante — Options, une liste des choix à proposer, séparés par des virgules (par exemple Draft, Sent, Paid).
  6. Sélectionnez Enregistrer.

Les champs fichier et image choisissent eux-mêmes​

Un champ fichier ou image affiche toujours le contrôle de fichier de la plateforme, quoi qu’indique la liste déroulante Contrôle. Il n’y a rien à choisir : la colonne contient une référence vers un fichier stocké plutôt qu’un texte qu’un utilisateur pourrait saisir, et une zone de texte par-dessus ne ferait qu’inviter une valeur que la plateforme rejette.

Ce que voit l’utilisateur est décrit dans Ajouter un fichier ou une image à un enregistrement. Deux choses sont utiles à savoir quand vous concevez le formulaire : un fichier est stocké lorsque le formulaire est enregistré, comme toute autre modification — y compris sur un enregistrement qui existe déjà —, et un champ image n’accepte que des images, avec une taille maximale inférieure à celle d’un champ fichier, car une image sur un formulaire est destinée à être affichée plutôt qu’archivée.

Un champ image a une propriété qui mérite d’être définie : Taille de l’image — Petite (par défaut, une miniature de la taille d’un avatar), Moyenne ou Grande. Choisissez Grande pour une photo que vous voulez mettre en avant — le portrait d’une personne, la photo d’un produit — et laissez Petite pour une image de la taille d’une icône, comme un drapeau ou un logo. La taille ne change que la façon dont l’image est affichée ; elle ne modifie pas l’image stockée.

Comment se comporte le contrôle Recherche​

Un champ de recherche stocke l’identifiant d’un enregistrement de la table associée — un identifiant que personne ne pourrait raisonnablement retenir. Le contrôle n’en affiche donc jamais. L’utilisateur sélectionne le champ, saisit une partie du nom de l’enregistrement et choisit parmi les correspondances ; le champ affiche alors le nom de cet enregistrement. Sélectionner le champ sans rien saisir propose les premiers enregistrements : il y a donc toujours quelque chose à choisir.

Le nom affiché est par défaut le champ principal de la table associée — ou, lorsque ce contrôle définit un Champ du nom, le champ que vous y avez choisi. Si ce champ est vide sur un enregistrement, son identifiant est affiché à la place — non pour être saisi, mais pour que deux lignes par ailleurs vides puissent être distinguées.

Remplacer le nom, la seconde ligne et l’image pour un contrôle. Un champ de recherche affiche normalement ce que la table a décidé — son champ principal comme nom, son champ désigné comme seconde ligne, son image d’enregistrement comme image —, de sorte que tous les champs de recherche de cette table se lisent de la même façon. Définissez Champ du nom, Champ de la seconde ligne ou Champ de l’image sur ce contrôle lorsqu’un champ de recherche doit se distinguer : par exemple un champ « Approbateur » qui se lit par e-mail alors que partout ailleurs on lit par nom. Ces réglages ne modifient que ce contrôle ; les choix de la table et tous les autres champs de recherche restent inchangés. Un remplacement qui nomme un champ disparu se rabat discrètement sur le choix de la table plutôt que de vider la ligne.

La table interrogée est celle de la propriété Table de recherche du contrôle si elle est définie, et sinon la table vers laquelle pointe déjà la relation du champ. Un champ de recherche qui n’a ni l’une ni l’autre l’indique sur le formulaire plutôt que de se rabattre sur une zone qui inciterait à saisir un identifiant.

La loupe au bout de la zone est toujours présente, qu’un enregistrement soit sélectionné ou non — elle signale que le champ est une recherche et non une zone de texte, et elle ouvre la Recherche avancée.

Recherche avancée​

Saisir du texte dans la zone ouvre le sélecteur rapide en dessous — quelques enregistrements à la fois, sur deux lignes chacun. La loupe ouvre plutôt la Recherche avancée : les mêmes enregistrements sous forme de tableau complet, avec chaque colonne choisie par la vue de recherche dans sa propre colonne, et Précédent/Suivant pour parcourir toute la table plutôt que les premières correspondances seulement. Utilisez la zone lorsque vous savez à peu près comment s’appelle l’enregistrement, et la loupe lorsque vous avez besoin de chercher.

Une recherche dans la boîte de dialogue repart de la première page, et sélectionner une ligne choisit cet enregistrement et ferme la boîte de dialogue.

Chaque enregistrement du sélecteur est affiché sur deux lignes : son nom et — lorsque la table associée a une vue de recherche — les autres colonnes de cette vue en dessous, afin de distinguer deux enregistrements portant le même nom. Les colonnes sur lesquelles porte la saisie sont définies séparément, par une vue de recherche rapide ; si aucune des deux n’est créée, le sélecteur n’affiche et n’interroge que le champ principal. Voir Créer une vue de recherche et Choisir les colonnes sur lesquelles porte une recherche.

Ce qui se passe en coulisses​

Le contrôle choisi et ses propriétés sont enregistrés dans le formulaire : ils le suivent donc lorsque la solution est exportée puis importée dans un autre environnement. Lorsqu’un utilisateur ouvre le formulaire, c’est le contrôle choisi ici qu’il voit et utilise.

Une propriété qui ne s’applique pas au contrôle actuel est masquée plutôt que supprimée. Si un champ de date passe à Texte puis revient à Date, le format de date configuré auparavant est toujours là.

Un contrôle personnalisé lié au même champ l’emporte sur le contrôle choisi ici (voir Lier un contrôle personnalisé à un champ).

Comment se lit un champ de date​

La propriété Format de date décide de la façon dont la valeur est écrite partout où elle est affichée — dans la zone du sélecteur et sur un champ que l’utilisateur ne peut pas modifier. Cela inclut les horodatages Créé le et Modifié le de la plateforme : placez-en un sur un formulaire, donnez-lui un contrôle de date et un format, et il se lit comme toutes les autres dates du formulaire.

Définissez-le plutôt une fois pour toute l’application. Paramètres → Calendrier → Formats de date contient deux jeux de trois modèles — date, date et heure, et heure —, un jeu pour le calendrier grégorien et un pour le calendrier persan. Chaque contrôle qui ne nomme pas de format propre utilise celui qui correspond. Mettre en forme chaque emplacement à la main, c’est risquer qu’un oubli se lise différemment des autres — précisément ce que ce réglage évite. Un format défini sur un emplacement l’emporte toujours et reste le moyen de faire d’un champ une exception. Laissez une zone vide et les dates se lisent selon le format par défaut de ce calendrier (yyyy/MM/dd HH:mm en grégorien, une date longue comme ۱۲ اردیبهشت ۱۴۰۵ en persan).

Le jeu appliqué suit le calendrier dans lequel la date est réellement affichée, et non le calendrier par défaut de l’application. Ainsi, sur un formulaire qui mélange les deux — un champ fixé en persan à côté d’un champ grégorien —, chacun se lit avec son propre jeu. Les deux sont indépendants à dessein : les zones persanes ne se rabattent pas sur les zones grégoriennes, si bien que changer l’affichage des dates grégoriennes ne modifie jamais en douce celui des dates persanes. Cette indépendance est la raison pour laquelle il y a deux jeux plutôt qu’un.

Les mêmes réglages s’appliquent aux vues, et pas seulement aux formulaires : une colonne de date pour laquelle le concepteur n’a défini aucun format propre se lit avec le modèle du locataire, exactement comme le même champ sur un formulaire.

Le calendrier dans lequel une date est écrite est un choix distinct, et nommer un contrôle le règle. Laissez le contrôle sur Par défaut et le champ suit le réglage de calendrier de l’application (Paramètres → Calendrier) : un seul interrupteur change alors toutes les dates de l’application. Nommez-en un et ce choix l’emporte, dans les deux sens : Date persane et Date et heure persanes fixent le champ sur le calendrier persan quel que soit le réglage, et les simples Date ou Date et heure le fixent sur le grégorien même dans une application réglée en persan — pour le champ qui doit toujours se lire d’une façon précise. Dans tous les cas, la valeur stockée est le même instant ; seule la façon de l’écrire change. Dans le calendrier persan, un format d MMMM yyyy se lit ۱۲ اردیبهشت ۱۴۰۵.

Heure persane en fait partie, et il vaut la peine de préciser ce qu’elle change, car une heure n’a pas de calendrier comme une date : 09:30 reste 09:30 dans les deux. Ce qu’elle change, ce sont les chiffres — une heure persane se lit ۰۹:۳۰ — et le format qu’elle utilise, le format d’heure persan des Paramètres plutôt que le grégorien. Choisissez-la pour une heure placée à côté de dates persanes ; choisissez la simple Heure pour une heure qui doit se lire en chiffres latins quelle que soit la langue de l’application.

Dépannage​

  • Un champ en lecture seule ou système ignore le format. — non : il utilise le format du contrôle avec lequel le champ est placé. Un champ placé sans choix de contrôle utilise le contrôle par défaut de son type de données, puis le format défini au niveau de l’application pour ce type, puis le format par défaut de ce calendrier (yyyy/MM/dd HH:mm en grégorien, une date longue en persan). Définissez Format de date sur l’emplacement pour le modifier.
  • L’application est réglée en persan et un champ réglé sur Date et heure affiche encore le calendrier jalali. — ce n’est plus le cas. Un contrôle nommé fixe son propre calendrier ; seul Par défaut suit Paramètres → Calendrier. Si un champ suit encore le réglage, son contrôle est sur Par défaut — nommez celui que vous voulez.
  • Le contrôle d’un champ image ne peut pas être changé. — en effet, et le panneau l’indique désormais au lieu de proposer une liste déroulante. La plateforme stocke le fichier elle-même : il n’existe aucun autre contrôle pour l’afficher.
  • Une heure se décale après l’enregistrement et l’actualisation. — corrigé. Une heure était auparavant envoyée sans sa date, laissant le serveur en supposer une, et elle était relue avec un décalage. Elle voyage désormais comme un instant complet, exactement comme une date et heure.
  • Le format d’un contrôle Heure n’a aucun effet. — il en a désormais un. Une heure s’écrit avec HH, mm et ss ; un modèle composé uniquement d’éléments de date n’a rien d’une heure à afficher.
  • Une date s’affiche telle que saisie au lieu d’être mise en forme. — la valeur stockée n’est pas une date que la plateforme sait lire. Elle est affichée exactement telle qu’elle est stockée plutôt que vidée, pour que vous voyiez ce qui s’y trouve réellement.
  • La liste Table de recherche est vide. — l’environnement n’a encore aucune autre table vers laquelle pointer. Créez d’abord la table que vous voulez rechercher.
  • Un champ de recherche du formulaire indique « This field has no related table set ». — le champ n’a pas de relation cible et le contrôle n’a pas de propriété Table de recherche. Définissez-en une, ou créez la relation que le champ doit suivre.
  • Un champ de recherche ne trouve aucun enregistrement, quelle que soit la recherche. — la recherche porte uniquement sur le champ principal de la table associée. Rechercher une valeur contenue dans un autre champ de cet enregistrement ne la trouvera pas.
  • Un champ de recherche indique « Could not search the related table ». — la requête de recherche a échoué, ou l’utilisateur connecté n’a pas d’accès en lecture à la table associée. Vérifiez que le rôle de l’utilisateur accorde la lecture sur cette table.
  • La liste déroulante ne propose aucun choix. — aucune option n’est configurée. Saisissez-les dans la propriété Options, séparées par des virgules.
  • Un champ affiche toujours l’ancienne saisie après l’enregistrement. — le formulaire a été enregistré, mais l’application affiche une version en cache. Rouvrez l’enregistrement.

Scénarios associés​