| Previous | Contents | Index |
The Screen Section feature provides an efficient alternative to the ACCEPT and DISPLAY extensions for designing video forms. Screen Section, which is based on the X/Open CAE Specification for COBOL, is also a Compaq extension to the ANSI Standard. It enables you to design video forms in a single section of your Compaq COBOL program. Then, in the Procedure Division, you can accept or display an entire screen of data with a single ACCEPT or DISPLAY statement, instead of multiple statements.
You can design your form as follows:
SPECIAL-NAMES.
CURSOR IS CURSOR-POSITION
CRT STATUS IS CRT-STATUS.
|
SCREEN SECTION.
01 MENU-SCREEN BLANK SCREEN FOREGROUND-COLOR 7 BACKGROUND-COLOR 1.
02 MENU-SCREEN-2.
03 TITLE-BAR
FOREGROUND-COLOR 7 BACKGROUND-COLOR 4.
04 LINE 1 PIC X(80) FROM EMPTY-LINE.
04 LINE 1 COLUMN 32 VALUE "Daily Calendar".
|
DISPLAY MENU-SCREEN.
.
.
.
ACCEPT MENU-SCREEN.
|
You design your screens with screen description entries in the Screen Section of the Data Division of your program. Three formats are available for a screen description entry (and are completely defined in the Data Division chapter of the Compaq COBOL Reference Manual):
Table 11-4 shows the optional clauses you can use in a screen description entry to specify character attributes, the formats to which they apply, and a summary of their functions. (They are completely described in the Data Division chapter of the Compaq COBOL Reference Manual.)
| Clause | Formats | Function |
|---|---|---|
| AUTO | 1,3 | Moves the cursor to the next field when the last character of a field is entered. |
| BACKGROUND-COLOR | 1, 2, 3 | Specifies by number (in the range 0--7) the screen item's background color (see the color list that follows). |
| BELL | 2, 3 | Sounds the audio tone on the workstation or terminal. |
| BLANK LINE | 2, 3 | Clears the line before displaying the screen item. |
| BLANK SCREEN | 1, 2, 3 | Clears the screen before displaying the screen item. |
| BLANK WHEN ZERO[ES] | 3 | Replaces zeros with spaces when a screen item's value is zero. |
| BLINK | 2, 3 | Causes the displayed item to blink. |
| COLUMN NUMBER | 2, 3 | Specifies the horizontal position of an item on the screen. |
| ERASE EOL | 2, 3 | Clears the line from the cursor position to the end. |
| ERASE EOS | 2, 3 | Clears the screen from the cursor position to the end. |
| FOREGROUND-COLOR | 1, 2, 3 | Specifies by number (in range 0--7) the screen item's foreground color. See the color list that follows. |
| FULL | 1, 3 | Specifies that a screen item must either be left completely empty or be entirely filled with data. |
| HIGHLIGHT | 2, 3 | Specifies that the field is to appear on the screen with the highest intensity. |
| JUSTIFIED RIGHT | 3 | Specifies nonstandard data positioning. This can cause truncation of the leftmost characters if the sending item is too large. Otherwise, this aligns the data at the rightmost character position. |
| LINE NUMBER | 2, 3 | Specifies the vertical position of an item on the screen. |
| LOWLIGHT | 2, 3 | Specifies that the field is to appear on the screen with the lowest intensity. If only two levels of intensity are available, LOWLIGHT is the same as normal. |
| REQUIRED | 1, 3 | Specifies that at least one character must be entered in the input or update field. |
| REVERSE-VIDEO | 2, 3 | Specifies that the foreground and background colors be exchanged. |
| SECURE | 1, 3 | Specifies that no characters are displayed when the input field is entered. |
| SIGN LEADING [SEPARATE] | 1, 3 | Specifies the existence of a sign character as the leading character in the field. The SEPARATE option is always in effect if the screen item has an 'S' in the PICTURE clause. Therefore, for a screen item, the sign character never shares its position with a digit. |
| SIGN TRAILING [SEPARATE] | 1, 3 | Specifies the existence of a sign character as the trailing character in the field. The SEPARATE option is always in effect if the screen item has an 'S' in the PICTURE clause. Therefore, for a screen item, the sign character never shares its position with a digit. |
| UNDERLINE | 2, 3 | Specifies that each character of the field is to be underlined when displayed. |
| USAGE DISPLAY | 1, 3 | Specifies the internal format of a data item as DISPLAY (the default). |
When you specify the foreground and background colors for a screen item, you use numbers in the range 0--7, which represent specific colors as described in Table 11-5. Note that these colors are supported only on terminals that support ANSI Standard color sequences.1
| Color | Color Value | Color | Color Value |
|---|---|---|---|
| Black | 0 | Red | 4 |
| Blue | 1 | Magenta | 5 |
| Green | 2 | Yellow/Brown | 6 |
| Cyan | 3 | White | 7 |
This section points out some of the major differences and similarities between the Screen Section and non-Screen Section extensions to help you determine which to use.
There are significant similarities between the Screen Section feature and that of the non-Screen Section screen formats, as follows:
In a number of cases, a clause that you can use in the Screen Section of the Data Division, in the screen description entry, accomplishes the same purpose as a clause in the Procedure Division's ACCEPT or DISPLAY statement (in a non-Screen Section extended format). The difference is in the clauses' names (not interchangeable) and where you use them: in the Data Division's Screen Section, or in the Procedure Division with the ACCEPT or DISPLAY statement. The following table shows these clauses:
| Screen Section Clause | ACCEPT or DISPLAY Clause with Equivalent Effect |
|---|---|
| AUTO | AUTOTERMINATE |
| BLANK LINE | ERASE LINE |
| BLANK SCREEN | ERASE SCREEN |
| BLINK | WITH BLINKING |
| ERASE EOL | ERASE TO END OF LINE |
| ERASE EOS | ERASE TO END OF SCREEN |
| HIGHLIGHT | BOLD |
| REVERSE-VIDEO | REVERSED |
| SECURE | WITH NO ECHO |
| UNDERLINE | UNDERLINED |
There are also significant differences between the Screen Section (Alpha) and the non-Screen Section screen formats. With the Screen Section:
+---------------+
| |
| |
| |
| |
| |
+---------------+
|
+---------------+
| |
| +-----------+
| | |
| | |
| | |
+---+-----------+
|
Refer to Section 11.2, and also the Compaq COBOL Reference Manual Data Division chapter's section on Screen Description and clauses, for details on these features.
In Example 11-12 (Alpha only), a video form is designed for a daily calendar. With it you can display appointments, schedule new appointments, cancel appointments, and print appointments.
| Example 11-12 Designing a Video Form for a Daily Calendar (Alpha) |
|---|
IDENTIFICATION DIVISION.
PROGRAM-ID. MENU.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
* The SPECIAL-NAMES paragraph that follows provides for the
* capturing of the F10 function key and for positioning of the
* cursor.
SPECIAL-NAMES.
SYMBOLIC CHARACTERS
FKEY-10-VAL
ARE 11
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 VALUE FKEY-10-VAL.
03 filler PIC X.
* 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 ACCEPT-ITEM1 PIC X.
01 APPT-NAME PIC X(160).
01 APPT-DAY PIC XX.
01 APPT-MONTH PIC XX.
01 APPT-YEAR PIC XX.
01 APPT-HOUR PIC XX.
01 APPT-MINUTE PIC XX.
01 APPT-MERIDIEM PIC XX.
01 APPT-VERIFY PIC X.
01 EMPTY-LINE PIC 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-COLOR 7 BACKGROUND-COLOR 1.
02 MENU-SCREEN-2.
03 TITLE-BAR
FOREGROUND-COLOR 7 BACKGROUND-COLOR 4.
04 LINE 1 PIC X(80) FROM EMPTY-LINE.
04 LINE 1 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 LINE 1 PIC X(80) FROM EMPTY-LINE.
03 LINE 1 COLUMN 30 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(160) TO APPT-NAME.
03 LINE 9 COLUMN 36 PIC XX USING APPT-DAY.
03 LINE 9 COLUMN 39 PIC XX USING APPT-MONTH.
03 LINE 9 COLUMN 42 PIC XX USING APPT-YEAR.
03 LINE 11 COLUMN 36 PIC XX USING APPT-HOUR.
03 LINE 11 COLUMN 39 PIC XX 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..." LINE 22.
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.
END PROGRAM MENU.
|
Figure 11-14 MENU-SCREEN Output (Alpha)
+------------------------------------------------------------------------------+
| Daily Calendar |
| |
| |
| |
| |
| |
| Show appointments for a day |
| |
| Schedule an appointment |
| |
| Cancel an appointment |
| |
| Print your appointments |
| |
| |
| |
| |
| |
| Use the arrow keys to move the cursor among menu items. |
| Press <Return> when the cursor is at the desired item. |
| Press <F10> to exit. |
| |
| |
| |
| |
+------------------------------------------------------------------------------+
|
Figure 11-15 SCHEDULE-SCREEN Output (Alpha)
+------------------------------------------------------------------------------+
| Schedule Appointment |
| |
| |
| |
| Description of Appointment: |
|Meeting with Bill and Susan |
| |
| |
| Date of Appointment (DD/MM/YY): 01/03/94 |
| |
| Time of Appointment (HH:MM mm): 11:00 AM |
| |
| |
| |
| |
| Use Cursor Keys to move within the fields. |
| Press <Tab> to enter next field. |
| Press <Return> when finished. |
| |
| |
| |
| |
| |
| |
+------------------------------------------------------------------------------+
|
1 This does not include the VT100, VT200, VT300, VT400, and VT500 series terminals. On workstations that emulate these terminal types, this restriction may not apply. |
| Previous | Next | Contents | Index |