Nouveauté 4D v19 ! Vous pouvez associer des collections à des pop-up menus/listes déroulantes. Voir developer.4d.com.
Les pop-up/listes déroulantes sont des objets qui permettent à l’utilisateur de sélectionner un élément dans une liste. Vous gérez les éléments qui apparaissent dans les listes déroulantes à l’aide de tableaux, d’énumérations ou d'actions standard.
Les noms “Pop-up” et “Liste déroulante” désignent le même objet ; “Pop-up” appartient plutôt à la terminologie Mac et “Liste déroulante” à celle de Windows.
Comme le montre l’exemple ci-dessous, l’apparence de ces objets diffère légèrement suivant la plate-forme :
Windows
macOS
Un tableau est une liste de valeurs gardées en mémoire qui sont référencées par le nom du tableau (cf. section Tableaux et objets de formulaire). Un pop-up/liste déroulante affiche le tableau sous la forme d’une liste de valeurs qui apparaît lorsqu’on clique dessus.
Les objets pop-up/listes déroulantes peuvent être initialisés par le chargement d’une liste de valeurs dans un tableau. Vous pouvez réaliser cette opération de plusieurs manières :
Si vous voulez stocker dans un champ le choix de l’utilisateur, il est nécessaire d’écrire du code pour affecter les valeurs et de l’exécuter après la validation de l’enregistrement. Ce code pourrait être le suivant :
Dans la section Evénements des propriétés des objets, vous devez cocher les événements pris en compte dans les Au cas ou de votre code.
Les tableaux contiennent toujours un nombre fini d’éléments. La liste des éléments est dynamique et peut être modifiée par programmation. Les éléments d’un tableau peuvent être modifiés et triés.
Pour plus d’informations sur la création et l’utilisation d’un tableau, reportez-vous au chapitre Tableaux dans le manuel Langage de 4D.
Si vous souhaitez utiliser un pop-up/liste déroulante pour gérer les valeurs d'un champ ou d'une variable énuméré(e), 4D vous permet de référencer directement le champ ou la variable comme source de données de l'objet. Cette possibilité facilite la gestion des champs/variables énuméré(e)s.
Note : Si vous utilisez une énumération hiérarchique, seul le premier niveau sera affiché et sélectionnable.
Par exemple, dans le cas d’un champ "Couleur" pouvant contenir uniquement les valeurs "Blanc", "Bleu", "Vert" ou "Rouge", vous pouvez créer une liste contenant ces valeurs et l’associer à un objet pop up menu qui référence le champ "Couleur". 4D se charge alors de gérer automatiquement la saisie et l’affichage de la valeur courante dans le formulaire.
Pour associer un popup/liste déroulante à un champ ou une variable énuméré(e), il suffit de saisir directement le nom du champ ou de la variable dans la zone Nom de la variable de l’objet :

A l’exécution du formulaire, 4D gère automatiquement le pop up menu ou la combo box en saisie ou à l’affichage : lorsque l’utilisateur choisit une valeur, elle est stockée dans le champ ; à l’affichage, la valeur du champ est affichée dans le pop up menu :

Note : Il n'est pas possible de mixer ce principe avec l'initialisation de l'objet à l'aide d'un tableau. Si vous saisissez un nom de champ dans la zone Nom de la variable, il est nécessaire d'utiliser une énumération.
Lorsque vous avez associé un objet pop-up/liste déroulante à une liste de choix (énumération) et à un champ, vous pouvez utiliser l'option Enregistrer comme Valeur/Référence dans le thème "Sources de données" de la Liste des propriétés.
Cette option permet d'optimiser la taille des données stockées. Pour plus d'informations, reportez-vous à la section Enregistrer comme Valeur ou Référence.
Vous pouvez assigner une action standard à un objet pop up menu/liste déroulante (thème “Action” de la Liste des propriétés). Seules les actions qui affichent une sous-liste d'éléments (à l'exception de l'action Aller à page) sont prises en charge par ce type d'objet. Par exemple, si vous sélectionnez l'action standard "backgroundColor", à l'exécution l'objet affichera une liste automatique de couleurs de fond. Vous pouvez remplacer cette liste automatique par une liste personnalisée en associant à l'objet une énumération dans laquelle chaque élément a lui-même été assigné à une action standard.
Pour plus d'informations, reportez-vous à la section Actions standard.