Binding support for nested/structured RECORDs within INPUT/DISPLAY ARRAY is also important to us for screens with a master/detail/detail relationship, where we have a detail table dependent on another detail table.
Currently without binding support for structured RECORDs, we need to take care of the deletion/appending manually on APPEND/DELETE actions to keep the two detail tables in sync.
With structured RECORDs, the relationship is inherit so deleting/appending rows will automatically take care of the dependent detail table.
The DIALOG/INPUT code would be simpler and protect the program from future problems.
---
(Idea) Maybe we should be able to specify the columns for an INPUT/DISPLAY ARRAY without having to specify the whole RECORD (.*).
It would make the master/detail/detail even easier, because you could have something like:
DEFINE rec DYNAMIC ARRAY OF RECORD
field_1 STRING,
field_2 STRING,
depend_rec DYNAMIC ARRAY RECORD
dep_field_1 STRING,
dep_field_2 STRING
END RECORD,
END RECORD
DIALOG ATTRIBUTES(...)
-- MASTER/HEADER
INPUT ...
END INPUT
-- DETAIL
INPUT ARRAY rec.field_1, rec.field_2 FROM s_rec.field_1, s_rec.field_2
...
END INPUT
-- DETAIL (DEPENDENT)
INPUT ARRAY rec[DIALOG.getCurrentRow("s_rec")].depend_rec.* FROM s_depend_rec.*
...
END INPUT
...
END DIALOG
... That's probably taking it a bit far but it would allow the developer to completely avoid manually handling the logic around the dependent detail table, temp dynamic records, TEMP DB tables, etc.