7.36.3 DISPLAY Examples
Example 1: Display fields #ORDNUM, #CUSTNUM and #DATEDUE to the user.
DISPLAY FIELDS(#ORDNUM #CUSTNUM #DATEDUE)
or, identically:
GROUP_BY NAME(#ORDERHEAD) FIELDS(#ORDNUM #CUSTNUM #DATEDUE)
DISPLAY FIELDS(#ORDERHEAD)
both use default values for all parameters and field attributes and thus would cause a screen something like this to be designed automatically:
Order number : 99999999 Customer no : 999999 Date due : 99/99/99
Example 2: Modify the previous example to design the screen across ways and use column headings to identify the fields:
GROUP_BY NAME(#ORDERHEAD) FIELDS(#ORDNUM #CUSTNUM #DATEDUE) DISPLAY FIELDS(#ORDERHEAD) DESIGN(*ACROSS) IDENTIFY(*COLHDG)
which would cause a screen something like this to be designed automatically:
Company Order Date Order Customer Order Number Number Due 99999999 999999 99/99/99
Example 3: Display #ORDNUM #CUSTNUM and #DATEDUE and also specify specific positions and identification methods as field attributes.
For details of field attributes, refer to Field Attributes and their Use.
When specific positions for a field are nominated the automatic design facility is effectively "disabled".
GROUP_BY NAME(#ORDERHEAD) FIELDS((#ORDNUM *COLHDG *L3 *P3 ) (#CUSTNUM *LABEL *L3 *P24) (#DATEDUE *NOID *L7 *P37))
DISPLAY FIELDS(#ORDERHEAD) DESIGN(*ACROSS) TEXT(('--DATE--' 6 37) ('--------' 8 37))
which would cause a screen something like this to be designed:
Company Customer no : 999999 Order Number 99999999 --DATE-- 99/99/99 --------
After the screen design facility has been used on a DISPLAY command the associated FIELDS parameter (in the DISPLAY or GROUP_BY command) will be automatically re-written with the required row, column and method of identification attributes. Remember, if an expandable group expression was used, LANSA will substitute the expression with the fields that constitute it.
In addition the TEXT parameter of the DISPLAY command will also be automatically re-written.
Example 4: Display the order header details used in the previous example and all the associated invoice lines nominated in a list named #ORDERLINE:
GROUP_BY NAME(#ORDERHEAD) FIELDS(#ORDNUM #CUSTNUM #DATEDUE) DEF_LIST NAME(#ORDERLINE) FIELDS(#ORDLIN #PRODUCT #QUANTITY #PRICE) DISPLAY FIELDS(#ORDERHEAD) BROWSELIST(#ORDERLINE)
Since default values were used for all parameters and no field attributes were specified a screen something like this would be designed automatically:
Order number : 99999999 Customer no : 999999 Date due : 99/99/99 Line No Product Quantity Price 99 9999999 99999 99999.99 99 9999999 99999 99999.99 99 9999999 99999 99999.99 99 9999999 99999 99999.99 99 9999999 99999 99999.99 99 9999999 99999 99999.99
Example 5: Display the order header details used in the previous example and all the associated invoice lines nominated in a list named #ORDERLINE which only has 4 entries. Display invoice line totals (which can be adjusted) below the invoice lines:
GROUP_BY NAME(#ORDERHEAD) FIELDS(#ORDNUM #CUSTNUM #DATEDUE) DEF_LIST NAME(#ORDERLINE) FIELDS(#ORDLIN #PRODUCT #QUANTITY #PRICE) DISPLAY FIELDS(#ORDERHEAD) BROWSELIST(#ORDERLINE 4) OPTIONS(*NOREAD) REQUEST FIELDS(#TOTQTY #TOTPRICE) OPTIONS(*OVERLAY)
after screen painting to adjust the field positions to avoid overlapping, the resulting screen (after executing the above code) would look something like this:
Order number : 99999999 Customer no : 999999 Date due : 99/99/99 Line No Product Quantity Price 99 9999999 99999 99999.99 99 9999999 99999 99999.99 99 9999999 99999 99999.99 99 9999999 99999 99999.99 Total Qty : 9999999 Total Price : 9999999.99
Example 6 : Use an expandable group expression and redesign the layout using the screen design facility:
GROUP_BY NAME(#XG_ORDHDG) FIELDS(#ORDNUM #CUSTNUM #DATEDUE)
DISPLAY FIELDS(#XG_ORDHDG) DESIGN(*ACROSS) IDENTIFY(*COLHDG)
The screen designed automatically would look like this:
Company Order Date Order Customer Order Number Number Due 99999999 999999 99/99/99
If the layout is changed using the screen design facility to look like this:
Company Order Order Customer Number Number 99999999 999999 Date Order Due : 99/99/99
then the DISPLAY command FIELDS parameter will be expanded as follows:
DISPLAY FIELDS((#ORDNUM *L2 *P3) (#CUSTNUM *L2 *P37) (#DATEDUE *L5 *P26 *LAB)) DESIGN(*ACROSS) IDENTIFY(*COLHDG)