User interface programming / Table views |
In list dialogs such as the INPUT ARRAY or DISPLAY ARRAY, the screen array identifies the record list element in the current form to be bound to the program array used by the dialog.
INPUT ARRAY custarr FROM custlist.*
The screen array members will be associated to the program array record members by position. The order and number of the screen array elements matters, because these are bound by position to the members the program array. The position of the TABLE columns, however, can differ from the members of the screen array and program array.
To omit columns in the TABLE layout, yet include them in the definition of the screen array, and define the columns as PHANTOM fields in the form definition file.
DEFINE custarr DYNAMIC ARRAY OF RECORD LIKE customer.*
SCHEMA shop DEFINE a_items DYNAMIC ARRAY OF RECORD item_data RECORD LIKE items.*, it_image STRING, it_count INTEGER END RECORD ... DISPLAY ARRAY a_items TO sr.* ...
When using a grid-based layout, the TABLE container is bound to a screen array defined in the INSTRUCTION section, by the name of the form fields used in the screen array definition.
LAYOUT ... TABLE { [c1 |c2 |c3 ] [c1 |c2 |c3 ] [c1 |c2 |c3 ] [c1 |c2 |c3 ] } END ... ATTRIBUTES EDIT c1 = customer.cust_num; EDIT c2 = customer.cust_name, EDIT c3 = customer.cust_cdate; ...
SCREEN RECORD custlist( cust_num, cust_name, cust_cdate );
LAYOUT STACK TABLE custlist (STYLE="regular") EDIT customer.cust_num; EDIT customer.cust_name, EDIT customer.cust_cdate; END END END
This identified is mandatory for TABLE stack items.