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 

                                                       -------- 

 

Note: The manual specification of row and column numbers and "text" is not required. The screen design facility can be used to modify an "automatic" design much more quickly and easily. Refer to The Screen Design Facility in the LANSA for i User Guide for details of how to use the screen design facility.

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)