You can now associate an XTREE column with an ID number which is not affected by either the physical column number (position in the coldef array) or logical column number (display position). This can be potentially useful for associating validation or other column-related logic with columns in trees containing many editable columns, especially during development, when the column numbers are likely to be fluid.
To associate an ID number with a column, add the new Advanced Coldef Option to its coldef definition:
ID=###
where ### is an integer in the range of 1-255, e.g. ID=25.
On exit from the tree, a new field at the end of the XTRCTL structure, will be set to the column ID corresponding to the physical column set in XTR'XCOL, i.e. the exit column (if relevant).
The XTRCTL map and structure definitions in XTREE.SDF and XTREE.MAP have been updated according. The end of the structure now looks like this...
map2 XTR'SHOWROWHDR,B,1 ! [129] see XTRHF_xxx
map2 XTR'CTLID,B,2 ! [132] A-Shell ctl #
map2 XTR'LEFTINDEX,B,1 ! [133] Left-most visible column
map2 XTR'SHOWFOOTER,B,1 ! [134] Show footer
map2 XTR'FOOTERSTYLE,B,1 ! [134] same xxx flags as HEADERSTYLE
map2 XTR'COLID,B,1 ! [135] column ID (6.5.1689.0+)
map2 XTR'UNUSED2,X,12 ! [135] was 12
Note that there is no requirement to define column ID's for every column, nor any rule against using the same ID for multiple columns, which might make sense if they share common validation or other processing logic.