Additional features
Miscellaneous features of dynamic dialogs.
Defining cell attributes
In order to display array cells with
colors in a list controlled by a dynamic dialog, you can define a two-dimensional dynamic
array to hold cell attributes:
DEFINE attrs DYNAMIC ARRAY WITH DIMENSION 2 OF STRING
...
LET attrs[row,col] = "red reverse"
...
CALL d.setArrayAttributes("custlist", attrs)Note: If all cells of the array must get the same display attributes, use a simple 
DYNAMIC
ARRAY OF STRING.Handling rowset sorting
With a dynamic dialog controlling a list container that allows rowset sorting (like a
TABLE), the sort event can be detected with the "ON SORT" event
name.
When the 
"ON SORT" event occurs, the dynamic dialog can perform the same
operations as when in a static DISPLAY ARRAY or INPUT ARRAY using
the ON SORT interaction
block:    CALL d.addTrigger("ON SORT")
    ...
    WHILE (t := d.nextEvent()) IS NOT NULL
        CASE t
            ...
            WHEN "ON SORT"
                MESSAGE SFMT( "Row: %1/%2",
                    d.arrayToVisualIndex( "sr", d.getCurrentRow("sr") ),
                    d.getArrayLength( "sr" )
                )
    ...