DISPLAY Statement
The DISPLAY statement causes data stored in an identifier (literal, data item, or output from a function call) to be displayed on the terminal screen at the specified location, with the specified attributes.
Format 1
DISPLAY {identifier-1} … UPON mnemonic-name-1
[WITH NO ADVANCING]
[END-DISPLAY]
Syntax:
identifier-nis a data element, literal, or data returned from a function call.mnemonic-name-1is a system name associated with a hardware device, or a user name associated with a system name in the Special Names area.
General Rules:
mnemonic-name-1must beCONSOLE,CRT,PRINTER, or a user defined name associated withCONSOLE,CRT, orPRINTERinSPECIAL NAMES.- All
mnemonic-name-1are interpreted asCONSOLE. - In the absence of the
UPONclause,UPON CONSOLEis applied as the default. WITH NO ADVANCINGremoves carriage return/line feed sequences from the end of theDISPLAY.
Format 2
DISPLAY {identifier-1} … UPON {ARGUMENT-NUMBER }
{COMMAND-LINE }
{ENVIRONMENT-NAME }
{ENVIRONMENT-VALUE}
{PRINTER}
[END-DISPLAY]
Syntax:
identifier-n is a data element, literal, or data returned from a function call.
General Rules:
DISPLAY identifier-1 UPON ARGUMENT-NUMBERis recognized syntax, but is otherwise treated as commentary. A subsequentACCEPT FROM ARGUMENT-NUMBERdoes not return the value ofidentifier-1.DISPLAY identifier-1 UPON COMMAND-LINEmodifies theCOMMAND-LINE.- A subsequent
ACCEPT FROM COMMAND-LINEstatement returns the value ofidentifier-1. - Creating an environment variable, and assigning it a value can be done with the
DISPLAYverb, as follows:DISPLAY identifier-1 UPON ENVIRONMENT-NAMEDISPLAY identifier-2 UPON ENVIRONMENT-VALUE- This sequence of statements is the equivalent of the
SET ENVIRONMENT “ENVIRONMENT-NAME” TO “ENVIRONMENT-VALUE”statement.
- The value of
identifier-2can be retrieved from the environment variable namedidentifier-1using theACCEPT FROM ENVIRONMENTstatement. DISPLAY identifier-1 UPON PRINTER, when used with a file defined with theCOB_DISPLAY PRINTERenvironment variable, performsOPENandWRITEstatements on the file, and the file isCLOSE'd after eachDISPLAY.
Format 3
DISPLAY identifier-1
[AT {[LINE NUMBER {identifier-2}]}]
{COLUMN} NUMBER {identifier-3}
{COL }
{identifier-4}
[ [WITH] NO ADVANCING ]
[ [WITH] {BELL} ]
{BEEP}
[ [WITH] {BLINKING} ]
{BLINK }
[ {HIGHLIGHT} ]
{LOWLIGHT }
[ REVERSE-VIDEO ]
[ UNDERLINE ]
[ OVERLINE ]
[ FOREGROUND-COLOR is numeric-1 ]
[ BACKGROUND-COLOR is numeric-2 ]
[ SCROLL {UP } numeric-3 LINES ]
{DOWN}
[ BLANK LINE ]
[ BLANK SCREEN ]
[END-DISPLAY]
Syntax:
identifier-nis a data element, literal, or data returned from a function call.identifier-4is a 4 byte numeric value where the first two bytes represent the line number and the second 2 bytes represent the column number. This provides an alternative way to position aDISPLAY. In effect,DISPLAY [ identifier-1 ] LINE 10 COLUMN 10is synonymous withDISPLAY [ identifier-1 ] AT 1010.numeric-nis a literal or data item that is numeric.
General Rules:
- A field-level
DISPLAYis positioned with the use of anATstatement, which is used to designate the line number and the column number. This can be done either through the separate use of the keywordsLINEandCOLUMN, or with a single 4-byte numeric value that represents the location of theDISPLAYwith aLine-Columndesignation, where bytes 1-2 represent the line number, and bytes 3-4 represent the column number. DISPLAY field1 LINE 1 COLUMN 3 Field2 AUTO UPDATE
Prior to this enhancement, each field had to be the target of a separateDISPLAYstatement, and theAUTO UPDATEclause was supported asWITH AUTO UPDATE.- For information regarding the
DISPLAY ATTRIBUTES, see the Screen Attributes section.
Format 4
DISPLAY screen-name-1
[AT {[LINE NUMBER {identifier-2}]}]
{COLUMN} NUMBER {identifier-3}
{COL }
{identifier-4}
[END-DISPLAY]
Syntax:
screen-name-nis the name of a screen element described in the Screen Section.identifier-nis a data element, literal, or data returned from a function call.identifier-4is a 4-byte numeric value where the first two bytes represent the line number and the second 2-bytes represent the column number. This provides an alternative way to position aDISPLAY. In effect,DISPLAY [screen] LINE 10 COLUMN 10is synonymous withDISPLAY [screen] AT 1010.
General Rules:
For information regarding the DISPLAY ATTRIBUTES, see the Screen Attributes section.
Code Sample:
IDENTIFICATION DIVISION.
PROGRAM-ID. DISPLAY-3.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
* THE SPECIAL-NAMES PARAGRAPH THAT FOLLOWS PROVIDES FOR THE
* CAPTURING OF THE F10 FUNCTION KEYAND FOR POSITIONING OF THE
* CURSOR.
SPECIAL-NAMES.
CURSOR IS CURSOR-POSITION
CRT STATUS IS CRT-STATUS.
DATA DIVISION.
WORKING-STORAGE SECTION.
* CURSOR-LINE SPECIFIES THE LINE AND CURSOR-COL SPECIFIES THE
* COLUMN OF THE CURSOR POSITION.
01 CURSOR-POSITION.
02 CURSOR-LINE PIC 99.
02 CURSOR-COL PIC 99.
* NORMAL TERMINATION OF THE ACCEPT STATEMENT WILL RESULT IN A VALUE
* OF '0' IN KEY1. WHEN THE USER PRESSES F10, THE VALUE IN KEY1 WILL
* BE '1' AND FKEY-10 WILL BE TRUE.
01 CRT-STATUS.
03 KEY1 PIC X.
03 KEY2 PIC X.
88 FKEY-10 VALUE11.
03 FILLER PIC XX.
* THE FOLLOWING DATA ITEMS ARE FOR A "DAILY CALENDAR." IT SHOWS
* THE DAY'S APPOINTMENTS AND ALLOWS APPOINTMENTS TO BE MADE,
* CANCELED, AND PRINTED.
01 DATA-STORE.
03 ACCEPT-ITEM1 PIC X.
03 APPT-NAME PIC X(80).
03 APPT-DESC PIC X(80).
03 APPT-DATE.
05 APPT-DAY PIC 99 COMP.
05 APPT-MONTH PIC 99 COMP.
05 APPT-YEAR PIC 99 COMP.
03 APPT-TIME.
05 APPT-HOUR PIC 99.
05 APPT-MINUTE PIC 99.
05 APPT-MERIDIEM PIC XX.
03 APPT-VERIFY PIC X.
03 EMPTY-LINEPIC X(80).
* THE SCREEN SECTION DESIGNS THE DAILY CALENDAR, WITH A MENU
* SCREEN FROM WHICH THE USER SELECTS AN OPTION: TO SHOW
* APPOINTMENTS, SCHEDULE AN APPOINTMENT, CANCEL AN APPOINTMENT,
* AND PRINT THE APPOINTMENTS.
SCREEN SECTION.
01 MENU-SCREEN BLANK SCREEN
FOREGROUND-COLOR7BACKGROUND-COLOR1.
02 MENU-SCREEN-2.
03 TITLE-BAR
FOREGROUND-COLOR7BACKGROUND-COLOR4.
04 LINE1 PIC X(80) FROM EMPTY-LINE.
04 LINE1 COLUMN 32 VALUE "DAILY CALENDAR".
03 LINE 7 COLUMN 26
PIC X TO ACCEPT-ITEM1.
03 VALUE " SHOW APPOINTMENTS FOR A DAY ".
03 LINE 9 COLUMN 26
PIC X TO ACCEPT-ITEM1.
03 VALUE " SCHEDULE AN APPOINTMENT ".
03 LINE 11 COLUMN 26
PIC X TO ACCEPT-ITEM1.
03 VALUE " CANCEL AN APPOINTMENT ".
03 LINE 13 COLUMN 26
PIC X TO ACCEPT-ITEM1.
03 VALUE " PRINT YOUR APPOINTMENTS ".
03 HELP-TEXT
FOREGROUND-COLOR 6 BACKGROUND-COLOR 0.
04 LINE 19 COLUMN 12
VALUE
" USE THE ARROW KEYS TO MOVE THE CURSOR AMONG MENU ITEMS. ".
04 LINE 20 COLUMN 12
VALUE
" PRESS <RETURN> WHEN THE CURSOR IS AT THE DESIRED ITEM. ".
04 LINE 21 COLUMN 12
VALUE
" PRESS <F10> TO EXIT. ".
01 SCHEDULE-SCREEN BLANK SCREEN.
02 TITLE-BAR
FOREGROUND-COLOR 7 BACKGROUND-COLOR 4.
03 LINE1 PIC X(80) FROM EMPTY-LINE.
03 LINE1 COLUMN30 VALUE "SCHEDULE APPOINTMENT".
02 FIELDS-TEXT
FOREGROUND-COLOR 7 BACKGROUND-COLOR 1.
03 LINE 5 VALUE " DESCRIPTION OF APPOINTMENT: ".
03 LINE PLUS 4 VALUE " DATE OF APPOINTMENT (DD/MM/YY): ".
03 COLUMN PLUS 5 VALUE"/ /".
03 LINE PLUS 2 VALUE " TIME OF APPOINTMENT (HH:MM MM): ".
03 COLUMN PLUS 5 VALUE ":".
02 FIELDS-INPUT
FOREGROUND-COLOR 7 BACKGROUND-COLOR 0 AUTO.
03 LINE 6 PIC X(80) TO APPT-NAME REQUIRED.
03 LINE 7 PIC X(80) TO APPT-DESC.
03 LINE 9 COLUMN 36 PIC 99 USING APPT-DAYFULL .
03 LINE 9 COLUMN 39 PIC 99 USING APPT-MONTH FULL.
03 LINE 9 COLUMN 42 PIC 99 USING APPT-YEAR.
03 LINE 11 COLUMN 36 PIC 99 USING APPT-HOUR.
03 LINE 11 COLUMN 39 PIC 99 USING APPT-MINUTE.
03 LINE 11 COLUMN 42 PIC XX USING APPT-MERIDIEM.
02 HELP-TEXT
FOREGROUND-COLOR 6 BACKGROUND-COLOR 0.
03 LINE 16 COLUMN 18
VALUE " USE CURSOR KEYS TO MOVE WITHIN THE FIELDS. ".
03 LINE 17 COLUMN 18
VALUE " PRESS <TAB> TO ENTER NEXT FIELD. ".
03 LINE 18 COLUMN 18
VALUE" PRESS <RETURN> WHEN FINISHED. ".
01 VERIFY-SUBSCREEN FOREGROUND-COLOR 7 BACKGROUND-COLOR 1.
02 LINE 16 COLUMN 1 ERASE EOS.
02 LINE 17 COLUMN 25 VALUE " IS THIS ENTRY CORRECT? (Y/N): ".
02 PIC X USING APPT-VERIFY AUTO.
PROCEDURE DIVISION.
P0.
#
DISPLAY MENU-SCREEN.
* THE CURSOR POSITION IS NOT WITHIN AN ITEM ON THE SCREEN, SO THE
* FIRST ITEM IN THE MENU WILL BE ACCEPTED FIRST.
MOVE 0 TO CURSOR-LINE, CURSOR-COL.
* THE USER MOVES THE CURSOR WITH THE ARROW KEYS TO THE
* DESIRED MENU ITEM (TO SHOW, SCHEDULE, CANCEL, OR PRINT
* APPOINTMENTS) AND SELECTS THE ITEM BY PRESSING <RETURN>.
* IF THE USER WISHES TO EXIT WITHOUT SELECTING AN OPTION,
* THE USER CAN PRESS THE F10 FUNCTION KEY.
ACCEPT MENU-SCREEN.
IF KEY1 EQUAL "0"
PERFORM OPTION_CHOSEN
ELSE IF KEY1 EQUAL "1" AND FKEY-10
DISPLAY "YOU PRESSED THE F10 KEY; EXITING..." LINE22.
STOP RUN.
OPTION_CHOSEN.
* FOR BREVITY, THE SAMPLE PROGRAM INCLUDES COMPLETE CODE
* FOR THE "SCHEDULE APPOINTMENT" SCREEN ONLY. A COMPLETE
* PROGRAM FOR A CALENDAR WOULD ALSO INCLUDE CODE FOR
* DISPLAYING, CANCELING, AND PRINTING THE DAY'S APPOINTMENTS.
IF CURSOR-LINE = 7
DISPLAY "YOU SELECTED SHOW APPOINTMENTS" LINE 22.
IF CURSOR-LINE = 9
MOVE "01" TO APPT-DAY
MOVE "01" TO APPT-MONTH
MOVE "94" TO APPT-YEAR
MOVE "12" TO APPT-HOUR
MOVE "00" TO APPT-MINUTE
MOVE "AM" TO APPT-MERIDIEM
DISPLAY SCHEDULE-SCREEN
* THE USER TYPES THE DESCRIPTION, DATE, AND TIME OF THE
* APPOINTMENT.
ACCEPT SCHEDULE-SCREEN
MOVE "Y" TO APPT-VERIFY
DISPLAY VERIFY-SUBSCREEN
* THE USER IS ASKED, "IS THIS ENTRY CORRECT?" ANSWER IS
* Y OR N.
ACCEPT VERIFY-SUBSCREEN.
IF CURSOR-LINE = 11
DISPLAY "YOU SELECTED CANCEL APPOINTMENTS" LINE 22.
IF CURSOR-LINE = 13
DISPLAY "YOU SELECTED PRINT APPOINTMENTS" LINE 22.
ENDPROGRAM SCREEN2.