Subscribe for automatic updates: RSS icon RSS

Login icon Sign in for full access | Help icon Help
Advanced search

Pages: [1]
  Reply  |  Print  
Author Topic: INPUT ARRAY with DYNAMIC ARRAY  (Read 10125 times)
Tim B.
Posts: 67


« on: December 04, 2008, 01:17:45 pm »

Not sure if this a feature or a bug.  I have changed a static array to a dynamic array, and now the INPUT ARRAY behaviour when appending rows is different.

Previously with a static array, when moving to a new row at bottom of an array it would process (assuming array is pre-populated with 20 rows):-

  BEFORE ROW (with ARR_COUNT=20)
  BEFORE INSERT (with ARR_COUNT=21)
press up arrow
  AFTER ROW (with ARR_COUNT()=20)
  BEFORE ROW (with ARR_COUNT=20)

So effectively the new row 21 was removed automatically.

Now with a dynamic array it will process:-

  BEFORE ROW (with getLength() = 21) (has already appended the new row)
  BEFORE INSERT (with getLength() = 21)
press up arrow
  AFTER ROW (with getLength() = 20) (seems to have removed element)
  BEFORE ROW (with getLength() = 21) (has appended element back again)

The logic in the control blocks hasn't changed at all.  The only difference is the dynamic array, removal of set_count and addition of the UNBUFFERED attribute.

Is the the expected behaviour?  Do I have to somehow manage the removal of unused elements myself or have I missed something?

Sebastien F.
Four Js
Posts: 545


« Reply #1 on: December 04, 2008, 01:56:59 pm »

Tim,

I believe you are using element 21 of the array somewhere (AFTER ROW?).

For example, by doing:

   DISPLAY arr[arr_curr()].*

... the runtime system will automatically create a new element in the dynamic array.

For more details:

https://4js.com/techdocs/genero/fgl/devel/DocRoot/User/InputArray.html#after-row-block

https://4js.com/techdocs/genero/fgl/devel/DocRoot/User/MultipleDialogs.html#after-row-block

Seb
Tim B.
Posts: 67


« Reply #2 on: December 04, 2008, 02:14:44 pm »

You're correct.  We reference the new row in the AFTER ROW when we compare the row to and old copy to check if it has changed.  I'd assumed that you needed to call appendelement(), not just reference it.  This explains something that happened last week which I didn't understand :)

We'll obviously need to be careful when switching to dynamic arrays because it isn't just a straight switch over.  There are some changes in behaviour to account for.
Pages: [1]
  Reply  |  Print  
 
Jump to:  

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines