Collection et Listbox - masquer des lignes

Bonjour

Question bête du matin, pour masquer des lignes dans une Listbox collection, on recalcule la Collection ou bien, il y a aussi un équivalent qui permet de masquer les lignes sans avoir à recalculer ?

Patrick

Désolé, mais je me perds un peu dans tous ces types de listbox…
Elle a quel type, la listbox : tableau ou entier long ?
Si tableau, comme les listbox tableau, sinon comme les listbox sélection, j’imagine.

longint :mrgreen:

Elle est de type Collection

Bonjour Patrick,

Non, désolé, on ne peut pas “masquer” un item d’une collection à l’intérieur d’une listbox.

On peut par contre le rendre “non sélectionnable” et “non saisissable” en passant par la “meta expression” qui est une nouvelle propriété des listbox collection ou entity selection.

L’expression doit renvoyer un objet décrit https://doc.4d.com/4Dv17R3/4D/17-R3/Proprietes-specifiques-des-List-box.300-3961393.fr.htmlici> (en bas de page).


Cela dit…pour afficher ou non certains éléments, le mieux serait sans doute d’utiliser la fonction “filter”.
Donc l’expression dans la listbox ne serait pas “myCollecion”, mais "myCollecion.filter(…)
(a priori, pas la peine d’en créer une autre collection à côté, c’est une "shallow copy, donc ça doit marcher…et rester saisissable si besoin)

Voir ici la doc de https://doc.4d.com/4Dv17R3/4D/17-R3/collectionfilter.305-3907477.fr.htmlfilter>.

Cordialement

Roland Lannuzel

there are no ways to hide a row like array based listboxes,
because they are evaluated on demand; similar to selection based listboxes.

but you can keep the original collection (Form.somewhere) and swap with a filtered sub-selection.

Bonjour Roland,

c’est bien ce qu’il me semblait. Je vais donc, procéder autrement, avoir la version full dans un coin et afficher une seconde dans la LB.

Merci

Hi Keisuke

Thanks a lot. I will do something like that.

Patrick

: Keisuke MIYAKO

there are no ways to hide a row like array based listboxes,
Interesting! Does 4D consider, in next version, to provide us with a such feature?

non, voir mon post, je l’ai édité

cf : .filter plutot que de créer une aute collection !

Merci Roland,

je vais me penser sur cette fonction qui semble répondre à mon besoin

Patrick

Merci Roland,

c’est non seulement la fonction à utiliser, mais elle permet en plus de s’affranchir d’un For Each / End For Each !

Bonne fin de journée