Hi,

I converted it to use dynamic variables for the listbox columns insert, passing 
in nil pointers for the header and footer variables. It works great for regular 
columns but I can’t get it to work for footers.

Specifically:

LISTBOX SET FOOTER CALCULATION(*;Object name;listbox footer sum)

where the object name is either the column name or footer name, gives me 
incompatible type.

And
LISTBOX SET FOOTER CALCULATION(variable_Ptr->;listbox footer sum)

where variable_Ptr-> is a pointer to the the column name, column variable 
pointer, or footer

variable_Ptr:=OBJECT Get pointer(Object named;name returned by dynamic variable 
assignment obtained via listbox get arrays) 
gives incompatible type even though column is real
or
$ColumnPtr:=OBJECT Get pointer(Object named;column name)
etc.

Footers are turned on in the listbox properties.

I can’t get any combination to work.

Seems like it should be simple, but I’m missing something.

I’d appreciate an example from anyone who has this working.

Michael





> On Jul 26, 2018, at 7:48 AM, Kirk Brooks via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Michael,
> 
> On Thu, Jul 26, 2018 at 6:32 AM mferguson--- via 4D_Tech <
> 4d_tech@lists.4d.com> wrote:
> 
>> We have a memory leak in our v15.6 Windows database and have narrowed it
>> down to a listbox where the columns are dynamically added using LISTBOX
>> INSERT COLUMN.
>> The header and footer variables are nil pointers, in accordance with the
>> documentation.
>> And to reference these variables for the assignment of properties, per the
>> documentation:
>> 
>> $FtrVar_P:=OBJECT Get pointer(Object named;FTR_Names_aT{$Ndx})
>> $HdrVar_P:=OBJECT Get pointer(Object named;HDR_Names_aT{$Ndx})
>> 
>> However, the get object pointer above returns nil pointers, so we can’t
>> assign properties.
>> 
> ​I was just writing about using Listbox get arrays for this purpose when I
> saw Olivier's post. I suggest this approach as well. ​
> 
> 
>> So, we set up our own variable manager that declares and reuses header and
>> footer variables for the listbox, using execute formula.  The variable
>> manager has been tested and the number of variables for the form does not
>> grow. However, the apparent search speed preceding the display gets slower
>> and slower. The queries themselves are fast, but the re-display seems to be
>> the culprit eating up memory.
>> 
> 
> Using EXECUTE ... is probably not the best solution for what you are
> attempting to do. ​4D is pretty good at managing these variables. It sounds
> like you're working with 4D interpreted. There are a lot of tricks you can
> get away with using Execute in an interpreted db that fail if you plan on
> compiling it later.
> 
> A few weeks ago another developer was having speed issues with listboxes as
> well. In that case he was rebuilding the listboxes every time there was a
> change and found the LISTBOX INSERT ARRAY command was slow. When I build
> listboxes dynamically I handle the chores of configuring the listbox (that
> is, inserting the columns, headers and footers) and populating them
> independently. Changes in the data may require a REDRAW command but usually
> not re-configuring the whole listbox. The point is once he changed his
> approach he found the speed issue disappeared and overall management was
> easier.
> 
> -- 
> Kirk Brooks
> San Francisco, CA
> =======================
> 
> *We go vote - they go home*
> **********************************************************************
> 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
> **********************************************************************

**********************************************************************
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