Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com

Accueil

 
4D v20 R7
Pop-ups/Listes déroulantes

Pop-ups/Listes déroulantes  


 

 

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 :

  • Saisir une liste de valeurs par défaut dans les propriétés de l’objet. Pour cela, dans le thème “Sources de données” de la Liste des propriétés, cliquez sur le bouton Edition... Pour plus d’informations sur ce point, reportez-vous au paragraphe Listes de valeurs par défaut. Les valeurs par défaut sont automatiquement chargées dans un tableau. Vous pouvez faire référence à ce tableau par l’intermédiaire du nom de la variable associée à l’objet.
  • Avant que l’objet ne soit affiché, exécutez une méthode qui affecte des valeurs au tableau. Par exemple :
     ARRAY TEXT(tVilles;6)
     tVilles{1}:="Bordeaux"
     tVilles{2}:="Lacanau"
     tVilles{3}:="Paris"
     tVilles{4}:="Ste Hélène"
     tVilles{5}:="Cannes"
     tVilles{6}:="Ivry"

    Dans ce cas, le nom de la variable associée à l’objet dans le formulaire doit être tVilles.
    Ce code peut être placé dans la méthode formulaire et être exécuté lorsque l’événement formulaire On Load se produit.
  • Avant que l’objet ne soit affiché, chargez les valeurs d’une énumération dans le tableau à l’aide de la commande LIST TO ARRAY. Par exemple :
     LIST TO ARRAY("Villes";tVilles)

    Dans ce cas également, le nom de la variable associée à l’objet dans le formulaire doit être tVilles.
    Ce code peut être exécuté à la place de celui proposé plus haut.

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 :

 Case of
    :(Form event code=On Load)
       LIST TO ARRAY("Villes";tVilles)
       If(Is new record([Personnes]))  `Nouvel enregistrement
          tVilles:=3 `Affichage d’une valeur par défaut
       Else  `Enregistrement existant, on affiche la valeur stockée
          tVilles:=Find in array(tVilles;Ville)
       End if
    :(Form event code=On Clicked)  `La sélection est modifiée
       Ville:=tVilles{tVilles}  `La nouvelle valeur est assignée au champ
    :(Form event code=On Validate)
       Ville:=tVilles{tVilles}
    :(Form event code=Sur libération)
       CLEAR VARIABLE(tVilles)
 End case

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.

 
PROPRIÉTÉS 

Produit : 4D
Thème : Travailler avec les objets actifs

 
PAGE CONTENTS 
 
HISTORIQUE 

Modifié : 4D v16 R4

 
UTILISATION DE L'ARTICLE

4D - Mode Développement ( 4D v20 R7)