Fuzziness is a good description, but things stand in sharper relief today.  I 
was more focused on the syntax than the mechanics and for no particular reason 
started out with collections.  Converting the app to an entity selection 
approach is turning out to be much easier than expected, and much easier than 
converting from an array based approach to a record selection approach would 
have been.

The collection listbox that was crashing was also in a subform.  I did not 
think that was important, but it may have contributed to the failure when 
highlighting records.  The subform was unnecessary, as was using collections 
for this purpose, and abandoning those two approaches has resolved the crashing 
and some performance issues.

The 40k example was a stress testing step.  Most lists should be very much 
smaller, and cueing the user with a visual highlight will be more practical.  
Thanks to the way 4D implemented the Highlight Set in the past, highlighting 
has been a very useful tool that seemed to have no cost.


Keith - CDI

> On Apr 16, 2019, at 11:58 PM, JPR via 4D_Tech <4d_tech@lists.4d.com> wrote:
> [JPR]
> Hi Keith,
> a) It seems that there is some fuzziness in the way Entity Selections and 
> Collections are understood. Let's try to make it more precise:
> - An Entity selection doesn't 'contain' the Entities, it's a List of Entity 
> References (in this case, a reference is a 4D internal référence on the 
> Record which is referenced by the Entity)
> - A Collection has to fit in memory, for each element is a memory object 
> contained (if scalar) or referenced (if not scalar) by the corresponding 
> Collection Element.
> During the WT2019, I've demonstrated (1st day), and explained (2nd day) that 
> you can mix these notions into Collections of entity references (for 
> instance).
> b) The best way to Highlight elements in a ListBox is LISTBOX SELECT 
> ROW(*;"listBox";0;lk add to selection)! If it crashes 4D when the listbox 
> contains a large number of lines, it's a bug.
> c) If the listbox contains a large number of lines, I wonder why it would be 
> necessary to highlight all, for highlighting is just for UI...(But this is 
> just a remark ;-)
> Anyway, from the feedback I got from the East part of the WT in US, it seems 
> that you may find an interest to come to one of the next events, and get some 
> more information about how it works, and why it works like this, and how to 
> choose the best technique without playing Blind Man's Bluff with ORDA. We are 
> here (the Team and myself) to share all the experience we acquired by 
> exploring and opening up the different paths. 
> Anyway, the first day is for free, you will see many technical demos, and a 
> glance on the future, on the evolution of 4D and what's coming next, you will 
> get a lot of demos and source code, and also lunch and coffee!
> And if you find it interesting enough,if you think that you still have 
> something useful to learn, if you feel that you are not yet at the top of 
> your capabilities, you can then register for the second day, where we dive 
> deeply into the code and techniques. We will try to answer your questions, we 
> will do our best to illuminate the road of men who have become lost in their 
> code, and (like it did for most of the previous attendees), it will save you 
> a precious and valuable time when you'll be back home.
> I hope to meet you in Austin, Seattle, or San José!
> My very best,
>> On 16 Apr 2019, at 17:49, 4d_tech-requ...@lists.4d.com wrote:
>> I'm looking for a fast way to highlight a selection of rows in an entity 
>> selection listbox.  The way I am aware of works OK unless the listbox gets a 
>> large number of rows.
>> Adding records to the Selected Items name in the Property list does not 
>> highlight the listbox contents.  The equivalent of adding records to the 
>> "UserSet" is not available with entity selection listboxes.
>> Highlighting all with LISTBOX SELECT ROW(*;"listBox";0;lk add to selection) 
>> crashes 4D if the listbox contains enough records.
>> LISTBOX SELECT ROW(*;"listBox";$position;lk add to selection) crashes if put 
>> in a fast FOR loop.  If the loop is executed more slowly there is success.  
>> The slowness comes from looking for entitySelected[i] within the entity 
>> selection and highlighting its position in the listbox.
>> Is there a better way to get there?

4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com

Reply via email to