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-n
is a data element, literal, or data returned from a function call.mnemonic-name-1
is 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-1
must beCONSOLE
,CRT
,PRINTER
, or a user defined name associated withCONSOLE
,CRT
, orPRINTER
inSPECIAL NAMES
.- All
mnemonic-name-1
are interpreted asCONSOLE
. - In the absence of the
UPON
clause,UPON CONSOLE
is applied as the default. WITH NO ADVANCING
removes 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-NUMBER
is recognized syntax, but is otherwise treated as commentary. A subsequentACCEPT FROM ARGUMENT-NUMBER
does not return the value ofidentifier-1
.DISPLAY identifier-1 UPON COMMAND-LINE
modifies theCOMMAND-LINE
.- A subsequent
ACCEPT FROM COMMAND-LINE
statement returns the value ofidentifier-1
. - Creating an environment variable, and assigning it a value can be done with the
DISPLAY
verb, as follows:DISPLAY identifier-1 UPON ENVIRONMENT-NAME
DISPLAY 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-2
can be retrieved from the environment variable namedidentifier-1
using theACCEPT FROM ENVIRONMENT
statement. DISPLAY identifier-1 UPON PRINTER
, when used with a file defined with theCOB_DISPLAY PRINTER
environment variable, performsOPEN
andWRITE
statements 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-n
is a data element, literal, or data returned from a function call.identifier-4
is 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 10
is synonymous withDISPLAY [ identifier-1 ] AT 1010
.numeric-n
is a literal or data item that is numeric.
General Rules:
- A field-level
DISPLAY
is positioned with the use of anAT
statement, which is used to designate the line number and the column number. This can be done either through the separate use of the keywordsLINE
andCOLUMN
, or with a single 4-byte numeric value that represents the location of theDISPLAY
with aLine-Column
designation, 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 separateDISPLAY
statement, and theAUTO UPDATE
clause 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-n
is the name of a screen element described in the Screen Section.identifier-n
is a data element, literal, or data returned from a function call.identifier-4
is 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 10
is 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.