A menu is defined with a LAYOUT SCREEN definition. The LAYOUT SCREEN definition is a group of statements that are specified in a Process Module (PM) Declare Section, a Global Storage (GS), or a Code Segment (CS). The following define the syntax and description of the statements in the LAYOUT SCREEN definition.
The menu_name field following the LAYOUT SCREEN statement identifies the menu. This menu_name field is later used as an input to the GENERATE statement/command to create the menu. The naming convention of menu_name is the same as that of any other user-defined field. If the layout of the menu is defined in GS, the menu_name field must follow the naming convention of a GS field and be preceded by a percent sign (%).
The menu definition begins with the LAYOUT SCREEN statement and ends with the LAYOUT END statement.
The statements between LAYOUT SCREEN and LAYOUT END must begin with a slash (/). Spaces preceding or following the slash (/) are allowed for readability. Note that a line can contain a slash without a statement to enhance readability
Comments begin with an exclamation point (!) and are allowed on lines by themselves or at the end of the statements.
Spaces, tabs or commas can be used to separate statement items.
The "@SCN_" prefix for screen attributes (renditions) are optional. The attributes may be specified as @NORMAL, @BOLD, @UNDERLINE, @BLINK, and @REVERSE. The use of @SCN_ is obsolete but still accepted.
LAYOUT SCREEN menu_name
/MENU row column number_of_rows number_of_columns rendition
/SELECTION item_display keyword_length rendition
/[BORDER [rendition title]]
/[FUNCTION function_trigger_name]
/[MESSAGE row column rendition text]...
/[LINE start_row start_column end_row end_column rendition]...
/[PROMPT row column rendition text]...
/[RECTANGLE top_left_row top_left_column bottom_right_row
bottom_right_column rendition]
/[TITLE row column rendition text]…
/ITEM row column rendition text
/[KEYWORD row column rendition text]
/[PERFORM trigger_name [/ALWAYS/ BEFORE]]...
/[HELP row column number_of_rows number_of_columns rendition]
{/TEXT text }...
/[HELP]
{/PERFORM help_trigger_name}
LAYOUT END