4D v16.3

Pop-ups/Listes déroulantes

Accueil

 
4D v16.3
Pop-ups/Listes déroulantes

Pop-ups/Listes déroulantes  


 

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 ou d’énumérations. 

Les noms “Pop-up” et “Liste déroulante” désignent le même objet ; “Pop-up” appartient plutôt à la terminologie Mac OS 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
Mac OS

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=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=On Clicked)  `La sélection est modifiée
       Ville:=tVilles{tVilles}  `La nouvelle valeur est assignée au champ
    :(Form event=On Validate)
       Ville:=tVilles{tVilles}
    :(Form event=On Unload)
       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 associer l’action standard Aller à page à un objet de type pop-up/liste déroulante (thème “Action” de la Liste des propriétés). Lorsque cette action est activée, 4D affiche automatiquement la page du formulaire correspondant au numéro de l’élément sélectionné dans la liste. 

Par exemple, si l’utilisateur sélectionne le 3e élément de la liste, 4D affichera la page 3 du formulaire courant (si elle existe).
Si vous souhaitez gérer vous-même l’effet de la sélection d’un élément, conservez l’option par défaut Pas d’action.

 
PROPRIÉTÉS 

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

 
HISTORIQUE 

 
UTILISATION DE L'ARTICLE

4D - Mode Développement ( 4D v16)
4D - Mode Développement ( 4D v16.1)
4D - Mode Développement ( 4D v16.3)