Afficher une collection dans une boîte de liste

Traduit automatiquement de Deepl

Récemment, 4D a introduit un nouveau type de variable : les collections, ainsi qu’un large éventail de méthodes pour les manipuler. Avec 4D v17, les possibilités des collections s’élargissent en permettant d’afficher facilement le contenu d’une collection. Comment ? Des boîtes de liste de type collection!

Le grand avantage de l’utilisation des collections est que vous pouvez afficher des données hétérogènes dans la même colonne. Par exemple, disons que vous avez une collection avec un champ « libre » pour l’utilisateur final. Selon le contexte, l’utilisateur peut parfois saisir un nombre, parfois un texte, parfois une date. Maintenant, vous pouvez tout afficher dans une colonne de boîte de liste sans avoir à forcer un cast.

Pas besoin de convertir votre collection en tableau. Pas de code. Rien de plus simple !

Boîtes de liste de collection : exemple

Comment configurer la boîte de liste

Tout d’abord, choisissez le type de boîte de liste « Collection ». Ensuite, comme source de données, entrez une variable ou une expression qui renvoie une collection.

Vous devez ensuite définir la source de données pour chaque colonne de votre boîte de liste. C’est simple, il suffit de saisir une expression pour chaque colonne de la liste de propriétés, comme vous le feriez pour une liste de type sélection courante.

Pour ce faire, vous devez utiliser la nouvelle commande This . Elle renvoie un objet contenant l’élément qui est en train d’être redessiné. Dans une boîte de liste, cette commande est évaluée pour chaque ligne et permet d’accéder à tous les attributs de l’élément de la collection courante.

Mise en forme du contenu à l’aide d’une expression

Si une boîte de liste de type sélection vous permet de saisir une expression pour définir la couleur de la police, la couleur d’arrière-plan, le style de police, l’état sélectionnable et activé, vous devez toujours indiquer une méthode de projet ou une expression pour chaque action. Avec les boîtes de liste de type collection, c’est encore plus facile, vous pouvez simplement définir tous ces paramètres dans une méthode de projet UNIQUE, la méta-expression.

La meta expression est évaluée pour chaque ligne affichée et renvoie un objet contenant les attributs suivants :

  • fillEntrez une couleur CSS pour définir la couleur d’arrière-plan.
  • strokeEntrez une couleur CSS pour définir la couleur de la police.
  • fontStyleDéfinir la valeur comme « italique » pour appliquer le style italique, sinon la définir comme « normale ».
  • fontWeightset value as « bold » to apply the bold style, else set it to « normal » : set value as « bold » to apply the bold style, else set it to « normal ».
  • textDecoration: définissez la valeur « underline » pour appliquer le style de soulignement, sinon définissez-la à « normal ».
  • unselectable: entrez un booléen pour définir si la ligne est sélectionnable ou non.
  • disabledEntrez un booléen pour activer ou désactiver la ligne.

Si l’attribut n’existe pas, 4D utilise la valeur par défaut.

Par exemple, vous pouvez lier la méta-expression « Decorate » à la zone de liste. La méthode Decorate contient le code suivant :

If (This.value>10)
$0 :=New object("fill" ; "red" ; "stroke" ; "white" ; "fontWeight" ; "bold")
Else
$0 :=New object("fill" ; "blue")
End if

Dans cet exemple, si l’attribut « value » est supérieur à 10, l’arrière-plan de la ligne sera rouge avec du texte blanc en gras. Si l’attribut « value » est inférieur à 10, l’arrière-plan de la ligne sera bleu.

Récupérer le ou les éléments sélectionnés

Avec les propriétés « Current item » et « Current item position », vous pouvez récupérer les objets de l’élément courant de la collection, ainsi que leur position.

La propriété « Selected items » permet de récupérer une collection des éléments sélectionnés dans la zone de liste. Vous pouvez même définir cette nouvelle collection comme source de données pour une autre boîte de liste. Ainsi, sans une seule ligne de code, vous pouvez afficher le sous-ensemble d’une boîte de liste dans une autre.

blank

Du côté des commandes 4D

Les commandes 4D du thème « List box » ont été mises à jour pour prendre en charge le type de collection. Quelques exemples : LISTBOX SORT COLUMN, LISTBOX INSERT COLUMN FORMULA, LISTBOX SET COLUMN FORMULA, etc. Pour plus de détails, consultez la liste complète des commandes 4D du thème « List box ».

Vanessa Talbot
- Product Owner -Vanessa Talbot a rejoint l'équipe du programme 4D en juin 2014. En tant que Product Owner, elle est chargée de rédiger les user stories puis de les traduire en spécifications fonctionnelles. Son rôle est également de s'assurer que l'implémentation des fonctionnalités livrées répond aux besoins des clients.Depuis son arrivée, elle a travaillé à la définition des fonctionnalités clés de 4D. Elle a travaillé sur la plupart des nouvelles fonctionnalités de multithreading préemptif et aussi sur un sujet très complexe : la nouvelle architecture pour les applications enginées. Vanessa est diplômée de Telecom Saint-Etienne. Elle a commencé sa carrière à l'Institut de Recherche Criminelle en tant que développeur pour le département audiovisuel. Elle a également travaillé dans les domaines des médias et du médical en tant qu'experte en support technique, en production ainsi qu'en documentation de nouvelles fonctionnalités.