Aller au contenu principal

Créer un groupe d’options

Objectif​

Créer un groupe d’options — une liste nommée de choix, comme le statut d’une facture — et y lier un champ, afin que les utilisateurs choisissent dans la liste au lieu de saisir du texte libre.

Prérequis​

  • Vous êtes connecté en tant que créateur, avec l’autorisation de modifier la solution.
  • Un environnement et une solution sont sélectionnés.

Étapes​

  1. Ouvrez la solution et sélectionnez Groupes d’options dans la navigation de gauche.

  2. Sélectionnez Nouveau.

  3. Saisissez un nom d’affichage (par exemple Invoice Status) et un nom logique. Le préfixe de l’éditeur est affiché comme libellé fixe — ne saisissez que la partie qui suit (par exemple invoicestatus).

  4. Saisissez éventuellement une description de l’usage du groupe.

  5. Sous Options, saisissez le nom de chaque choix (par exemple Draft, Sent, Paid). Sélectionnez Ajouter une option pour chaque option supplémentaire. L’ordre de saisie est l’ordre que verront les utilisateurs.

  6. Pour changer cet ordre, faites glisser une option par sa poignée, au début de sa ligne. Sans souris : placez le focus sur la poignée, appuyez sur Espace pour saisir l’option, sur les flèches pour la déplacer, puis de nouveau sur Espace pour la déposer.

    Réordonner ne renumérote jamais : chaque option conserve la valeur qui lui a été attribuée, si bien que les enregistrements qui la portent déjà ne sont pas affectés.

  7. Donnez éventuellement à une option une couleur et une icône, à l’aide de la pastille et du bouton d’icône à côté de son nom. Les deux sont facultatives et indépendantes — une option peut avoir une couleur, une icône, les deux, ou aucune.

    La pastille de couleur ouvre un petit panneau : choisissez l’une des douze couleurs rapides, ou utilisez le spectre en dessous pour n’importe quelle couleur — faites glisser sur le carré pour la nuance et le long de la bande pour la teinte, ou saisissez (ou collez) un code hexadécimal dans la zone. Effacer la couleur, en bas du même panneau, la retire. Le bouton d’icône ouvre le sélecteur d’icônes avec recherche, dont le bouton Effacer l’icône se trouve dans le pied. Dans les deux cas, l’effacement se trouve dans le sélecteur — il n’y a pas de ✕ séparé à côté du contrôle.

  8. Sélectionnez Enregistrer. La valeur de chaque option apparaît à côté d’elle une fois l’enregistrement effectué.

Couleur et icône​

Une couleur et une icône permettent de lire un statut d’un coup d’œil plutôt que mot à mot : « En retard » en rouge parmi cent lignes saute aux yeux.

Elles relèvent uniquement de la présentation. Ce que stocke un enregistrement, c’est la valeur de l’option : changer la couleur d’une option ne modifie aucune donnée et ne casse rien de ce qui en dépend — et elles voyagent avec la solution, si bien qu’un groupe importé en test a l’aspect prévu au lieu d’arriver sans mise en forme.

Lorsqu’un groupe donne une couleur ou une icône à l’une de ses options, la liste déroulante d’un formulaire les affiche — l’icône et le libellé prennent la couleur, de sorte qu’une option avec une couleur mais sans icône se distingue quand même. Un groupe dont les options n’ont ni l’une ni l’autre conserve la liste déroulante native du navigateur, ce qui donne à un téléphone son sélecteur habituel.

Lier un champ au groupe​

  1. Ouvrez la table dans Tables et allez dans l’onglet Champs.
  2. Sélectionnez Nouveau, saisissez le nom d’affichage et le nom logique du champ, et réglez son Type de données sur Groupe d’options.
  3. Choisissez le Groupe d’options d’où proviennent les valeurs du champ.
  4. Sélectionnez Enregistrer. Le champ est opérationnel immédiatement.

Le champ apparaît désormais sous forme de liste déroulante des options du groupe partout où il est placé sur un formulaire, et les vues affichent le nom de l’option plutôt que sa valeur stockée.

Ce qui se passe en coulisses​

Chaque option reçoit une valeur — un nombre attribué par la plateforme, qui est ce que la base de données stocke réellement pour un enregistrement.

Les valeurs sont de grands nombres qui commencent dans une plage appartenant à votre éditeur (par exemple 270150000, 270150001, …) plutôt que de compter à partir de zéro. C’est délibéré : si les choix de chaque éditeur commençaient à zéro, importer les solutions de deux éditeurs dans un même environnement ferait que le « Brouillon » de l’un signifierait l’« Annulé » de l’autre. Donner à chaque éditeur sa propre plage rend cela impossible.

Deux conséquences en découlent, qu’il est utile de connaître :

  • Vous ne pouvez pas saisir de valeur, et vous n’en avez pas besoin. La plateforme l’attribue. Vous pouvez la voir — c’est important si un système externe lit vos données —, mais ce n’est pas à vous de la choisir.
  • Renommer une option est sans danger. Sa valeur ne change jamais. Les enregistrements contiennent la valeur, pas le nom : corriger « Envoyée » en « Émise » laisse chaque enregistrement existant signifier exactement ce qu’il signifiait auparavant.

Lorsque la solution est exportée puis importée ailleurs, les valeurs voyagent avec elle : le test et la production s’accordent donc avec le développement sur le sens de chaque nombre. Le groupe d’options fait partie du package de solution et est importé avant les tables dont les champs l’utilisent — promouvoir une table comportant un champ de choix apporte donc les choix avec elle, au lieu d’arriver avec un champ lié à rien.

Vous n’avez pas besoin d’ajouter séparément le groupe d’options à la solution pour que cela fonctionne : un groupe créé pendant qu’une solution est sélectionnée lui appartient, comme une table.

Dépannage​

  • « An option set needs at least one option. » — un groupe dans lequel personne ne peut choisir n’est pas utilisable. Ajoutez au moins une option avant d’enregistrer.

  • « Option … appears more than once in this set. » — deux options portent le même nom, ce qui les rend impossibles à distinguer pour la personne qui choisit. Renommez ou supprimez l’une d’elles.

  • « Option … cannot be removed: records still hold this value. » — des enregistrements utilisent cette option. Passez d’abord ces enregistrements sur une autre option ; la supprimer leur laisserait une valeur qui ne signifie plus rien.

  • « Field … still uses this option set. » — un champ est lié au groupe. Supprimez ou redirigez le champ avant de supprimer le groupe.

  • « No option sets exist yet » lors de l’ajout d’un champ Groupe d’options. — créez d’abord le groupe ; un champ ne peut se lier qu’à un groupe qui existe déjà dans cet environnement.

  • Un enregistrement est rejeté avec « must be one of the … option set's values ». — la valeur écrite ne fait pas partie des options du groupe. C’est le serveur qui refuse une valeur qu’il ne sait pas expliquer ; choisissez une option dans la liste déroulante.

  • Une importation échoue avec « targets option set … which is not in the package ». — une table de la solution comporte un champ de choix dont le groupe d’options ne figure ni dans le package ni déjà dans l’environnement cible. Ajoutez le groupe d’options à la solution et exportez une nouvelle version. Rien n’a été importé : l’environnement cible est intact.

  • Une importation échoue avec « …already exists here, numbered from … but the imported one is numbered from … ». — la cible possède déjà un groupe portant ce nom logique, mais il appartient à un autre éditeur : ce sont donc deux groupes différents qui partagent un nom. Ils ne peuvent pas être fusionnés : les options importées sont numérotées dans une plage que les enregistrements existants ne connaissent pas. Renommez l’un des deux groupes, ou importez dans un environnement qui n’a pas l’autre.

  • Une importation échoue avec « Option … cannot be removed: records still hold this value ». — le groupe importé n’a plus une option que des enregistrements de cet environnement utilisent encore. L’importation met à jour un groupe existant, mais elle ne supprimera pas une option sous les pieds des enregistrements qui la portent. Passez d’abord ces enregistrements sur une autre option, ou remettez l’option dans le groupe importé.

    (Un groupe d’options déjà présent dans la cible est sinon mis à jour, et non refusé : les libellés sont actualisés, les nouvelles options ajoutées, et les options supprimées inutilisées retirées. Les options sont appariées par leur valeur attribuée : renommer une option en amont la met donc à jour ici au lieu d’en créer une seconde.)

  • Une importation échoue avec « Option value … is outside the publisher's range ». — la définition contient des valeurs appartenant à la plage d’un autre éditeur, ce qui signifie généralement que le fichier a été modifié à la main. Les valeurs sont attribuées par la plateforme ; exportez de nouveau le groupe plutôt que de les ajuster à la main.

Scénarios associés​