Redessiner Listbox collection

Bonjour,
contexte : dans un formulaire de saisie d’expédition, on reçoit le poids de colis d’une balance via USB.

Dans la Table “COMMANDES”, j’ai un champ Objet (nom = o_Infos) qui contient toutes les infos sous forme de collection d’objets (un objet par colis).
Dans le formulaire d’entrée de COMMANDES, on a une Listbox qui affiche cette Collection.

La balance est gérée par un process séparé, et la fenêtre de premier plan [COMMANDES];Entrée reçoit le poids via l’événement “on outside call”.

Tout fonctionne parfaitement, mais je n’arrive pas à rafraichir la Listbox (collection de mon champ [COMMANDES]o_Infos). Si je sauvegarde l’enregistrement et le recharge, ça marche

J’ai beau essayé un REDRAW de ma Listbox et du champ o_Infos, ou un REDRAW WINDOW, rien n’y fait…

si quelqu’un a une idée…

Pour rafraîchir une listbox “ORDA”, la seule façon c’est de réaffecter l’objet à lui-même. Malheureusement, il y a un bug qui faisait que même cela pouvait ne pas fonctionner cela a été corrigé que récemment dans une des dernières N.B. de la v18. On en parlait dans https://forums.4d.com/Post/FR/25926235/0/0/ce fil>.

Donc, soit passer dans une des dernières v18, sinon il ne faut pas utiliser de Listbox (ORDA) avec élément courant de renseigné.

Rappel du bug :
Dès qu’on affecte une expression dans la rubrique “élément courant” le rafraîchissement de la listbox via un Form.data:=Form.data ne fonctionne plus ! On est obligé de cliquer dans la listbox pour qu’elle se rafraîchisse correctement…

Bonjour,

Pour une LB entity selection, il faut (?) écrire MonEntitySelection:=MonEntitySelection. Tu peux essayer MaCollection:=MaCollection ?..

Bonjour,

ll s’agit bien d’une listbox de type Collection ?

Est-ce que ré affecter la collection sur elle même fonctionne ? (Form.collection:=Form.collection) ?

Bonjour Manuel et Eric et merci à tous les deux, ca fonctionne parfaitement. :smiley: :smiley:

Je ne peux malheureusement pas écrire la base en v18. J’avais commencé mais j’ai du repasser en v17 car les postes Windows sont des postes industriels fonctionnant encore sous Windows 8.1 (4Dv18 requiert Win 10).

Cool 8-), mais attention donc avec les listbox entité selection ne pas utiliser le paramètre element courant sous peine de ne pas pouvoir rafraîchir via cette solution.