Hi Seb,
Rodrigo actually attached some example code, the email notification still doesn't tell us if there is an attachment :-(.
In summary he has ...
DIALOG ATTRIBUTES(UNBUFFERED)
DISPLAY ARRAY arr TO sa.*...
INPUT BY NAME arr2[DIALOG.getCurrentRow("sa")].*
END DIALOG
... I'm guessing as he moves up/down the array, the variable used in the INPUT is actually changing, as opposed to the value of the variable in the INPUT. The INPUT stays as INPUT BY NAME arr2[1].* and correctly responds to any changes in arr2[1].*
I suspect something like...
TYPE arr2Type RECORD
r RECORD
reg1 INTEGER,
reg2 CHAR(20)
END RECORD
END RECORD
DEFINE arr2 DYNAMIC ARRAY OF arr2Type
DEFINE rec2 arr2Type
DIALOG ATTRIBUTES (UNBUFFERED)
DISPLAY ARRAY arr TO sa.*
BEFORE ROW
LET fnc_arr = DIALOG.getCurrentRow("sa")
LET rec2.r.* = arr2[fnc_arr].r.*
....
INPUT BY NAME rec2.r.* ATTRIBUTES(WITHOUT DEFAULTS)
ON CHANGE reg1
LET arr2[fnc_arr].r.reg1 = rec2.r.reg1
ON CHANGE reg2
LET arr2[fnc_arr].r.reg2 = rec2.r.reg2
... will do the job in the interim so that the variable (but not necessarily the value) used in the INPUT is constant. Wether the unbuffered DIALOG should respond to a change in variable, as opposed to a change in variable value, I'll leave upto you and the team.
Reuben