Seb,
Don't worry, this code never made it to production as it never worked. We were missing the CALL
ui.Interface.XXX() to update the 4GL variables with the value of the corresponding value attribute in the DOM tree.
Without such a routine we had to hand-code the save and get of field values e.g.
INPUT field1, field2, field3 ...
ON ACTION save_field_values
# some header
# save field1 value
# save field2 value
# save field3 value
# some trailer
ON ACTION get_field_values
# some header
LET field1 = # get saved value for field1
LET field2 = # get saved value for field2
LET field3 = # get saved value for field3
... all of which meant that this functionality
a) was only applied to certain screens
b) any change to those screens in terms of fields being added/removed meant the save and get routines had to be edited.
The key thing from Snorris comment was "
ability to write (complex maybe) generic routines". An ISV developer doesn't want to have to hand-code the same thing over and over again. Snorri was looking for an extension to base.TypeInfo, I was looking for an extension to ui.Interface, to effectively end up with the same generic result, that is to change the value of a variable without necessarily typing that variable into the code. Maybe we could achieve what we want with LET variable() = value() ?