Screen handling in COBOL involves managing user input and output through terminal interfaces. It encompasses displaying information to users, accepting input from keyboards, formatting screens, and creating interactive user interfaces.
Screen handling refers to the techniques and statements used to:
Effective screen handling is essential for creating user-friendly, interactive COBOL applications.
Component | Purpose | Example |
---|---|---|
DISPLAY Statement | Output data to screen | DISPLAY "Hello World" |
ACCEPT Statement | Read user input | ACCEPT USER-NAME |
SCREEN SECTION | Define screen layouts | Screen field definitions |
Cursor Control | Position text on screen | AT LINE, AT COLUMN |
Screen Attributes | Format appearance | HIGHLIGHT, UNDERLINE |
The DISPLAY statement is the primary method for outputting data to the screen, printer, or other output devices. It provides various options for formatting and positioning output.
123456789101112* Basic DISPLAY statement DISPLAY "Hello, World!" * DISPLAY with multiple items DISPLAY "Customer Name: " CUSTOMER-NAME DISPLAY "Account Balance: " ACCOUNT-BALANCE * DISPLAY with positioning DISPLAY "Title" AT LINE 5 AT COLUMN 10 * DISPLAY with formatting DISPLAY "Important Message" WITH HIGHLIGHT
The DISPLAY statement can output literals, variables, and expressions with optional formatting.
Control where text appears on the screen using positioning clauses:
123456789101112131415* Position text at specific coordinates DISPLAY "Menu Options:" AT LINE 3 AT COLUMN 5 DISPLAY "1. Add Customer" AT LINE 5 AT COLUMN 10 DISPLAY "2. View Customer" AT LINE 6 AT COLUMN 10 DISPLAY "3. Exit" AT LINE 7 AT COLUMN 10 * Clear screen and position cursor DISPLAY SPACES AT LINE 1 AT COLUMN 1 DISPLAY "Welcome to Customer System" AT LINE 1 AT COLUMN 1 * Create a formatted header DISPLAY "CUSTOMER MANAGEMENT SYSTEM" AT LINE 1 AT COLUMN 20 WITH HIGHLIGHT DISPLAY "=================================" AT LINE 2 AT COLUMN 20
AT LINE and AT COLUMN provide precise control over screen positioning.
Use attributes to enhance the appearance of displayed text:
123456789101112131415161718* Various display attributes DISPLAY "ERROR MESSAGE" WITH HIGHLIGHT DISPLAY "Warning" WITH LOWLIGHT DISPLAY "Important" WITH REVERSE-VIDEO DISPLAY "Underlined Text" WITH UNDERLINE DISPLAY "Blinking Text" WITH BLINK DISPLAY "Beep Sound" WITH BEEP * Combining attributes DISPLAY "CRITICAL ERROR" WITH HIGHLIGHT REVERSE-VIDEO BLINK * Conditional formatting IF ERROR-FLAG = "Y" DISPLAY "Error occurred" WITH HIGHLIGHT ELSE DISPLAY "Operation successful" WITH LOWLIGHT END-IF
Attributes can be combined to create visually distinct output for different purposes.
Attribute | Effect | Use Case |
---|---|---|
HIGHLIGHT | Bright/bold text | Important information, errors |
LOWLIGHT | Dim text | Secondary information |
REVERSE-VIDEO | Reversed colors | Headers, emphasis |
UNDERLINE | Underlined text | Field labels, titles |
BLINK | Flashing text | Critical alerts |
BEEP | Audible tone | Error notifications |
The ACCEPT statement is used to read data from the keyboard or other input devices. It provides various options for positioning, prompting, and formatting input.
12345678910111213141516* Basic ACCEPT statement ACCEPT USER-NAME * ACCEPT with prompt ACCEPT USER-NAME PROMPT "Enter your name: " * ACCEPT with positioning ACCEPT CUSTOMER-ID AT LINE 10 AT COLUMN 15 * ACCEPT with prompt and positioning ACCEPT CUSTOMER-NAME AT LINE 12 AT COLUMN 15 PROMPT "Customer Name: " * ACCEPT with formatting ACCEPT PASSWORD WITH SECURE
ACCEPT statements can include prompts, positioning, and various input options.
Use PROMPT to provide user guidance:
12345678910111213141516171819202122* Simple prompts ACCEPT CUSTOMER-ID PROMPT "Enter Customer ID: " ACCEPT CUSTOMER-NAME PROMPT "Enter Customer Name: " ACCEPT ORDER-AMOUNT PROMPT "Enter Order Amount: " * Prompts with positioning DISPLAY "Customer Information Entry" AT LINE 5 AT COLUMN 10 ACCEPT CUSTOMER-ID AT LINE 7 AT COLUMN 10 PROMPT "Customer ID: " ACCEPT CUSTOMER-NAME AT LINE 8 AT COLUMN 10 PROMPT "Customer Name: " ACCEPT CUSTOMER-ADDRESS AT LINE 9 AT COLUMN 10 PROMPT "Address: " * Prompts with validation hints ACCEPT PHONE-NUMBER PROMPT "Enter Phone Number (XXX-XXX-XXXX): " ACCEPT EMAIL-ADDRESS PROMPT "Enter Email Address: "
PROMPT provides clear instructions to users about what information to enter.
Various clauses provide additional input control:
1234567891011121314151617181920212223* ACCEPT with SECURE (password input) ACCEPT PASSWORD PROMPT "Enter Password: " WITH SECURE * ACCEPT with NO PROMPT (suppress prompt) ACCEPT CONFIRMATION AT LINE 15 AT COLUMN 10 NO PROMPT * ACCEPT with SIZE clause ACCEPT SHORT-INPUT PROMPT "Enter Code (3 chars): " SIZE 3 * ACCEPT with UPDATE clause ACCEPT CUSTOMER-NAME PROMPT "Customer Name: " WITH UPDATE * ACCEPT with AUTO-SKIP ACCEPT FIELD-1 SIZE 5 AUTO-SKIP ACCEPT FIELD-2 SIZE 10 AUTO-SKIP
These options provide enhanced input control and user experience.
Clause | Purpose | Example |
---|---|---|
PROMPT | Display input prompt | PROMPT "Enter name: " |
AT LINE/COLUMN | Position input field | AT LINE 10 AT COLUMN 15 |
SECURE | Hide input characters | WITH SECURE |
SIZE | Limit input length | SIZE 10 |
AUTO-SKIP | Auto-advance cursor | AUTO-SKIP |
UPDATE | Allow field editing | WITH UPDATE |
The SCREEN SECTION is a specialized part of the DATA DIVISION that defines the visual layout and behavior of user interface screens. It provides a structured way to create formatted, professional-looking screens.
The SCREEN SECTION contains screen descriptions that define field layouts:
1234567891011121314151617181920212223242526272829DATA DIVISION. SCREEN SECTION. 01 CUSTOMER-ENTRY-SCREEN. 05 LINE 5 COLUMN 10 VALUE "CUSTOMER INFORMATION ENTRY". 05 LINE 7 COLUMN 10 VALUE "Customer ID: ". 05 LINE 7 COLUMN 25 PIC X(10) TO CUSTOMER-ID REQUIRED AUTO-SKIP. 05 LINE 8 COLUMN 10 VALUE "Customer Name: ". 05 LINE 8 COLUMN 25 PIC X(30) TO CUSTOMER-NAME REQUIRED AUTO-SKIP. 05 LINE 9 COLUMN 10 VALUE "Address: ". 05 LINE 9 COLUMN 25 PIC X(50) TO CUSTOMER-ADDRESS AUTO-SKIP. 05 LINE 10 COLUMN 10 VALUE "Phone: ". 05 LINE 10 COLUMN 25 PIC X(15) TO CUSTOMER-PHONE AUTO-SKIP. 05 LINE 12 COLUMN 10 VALUE "Press ENTER to save, ESC to cancel". 01 MENU-SCREEN. 05 LINE 3 COLUMN 20 VALUE "CUSTOMER MANAGEMENT SYSTEM" HIGHLIGHT. 05 LINE 5 COLUMN 20 VALUE "1. Add New Customer". 05 LINE 6 COLUMN 20 VALUE "2. View Customer". 05 LINE 7 COLUMN 20 VALUE "3. Update Customer". 05 LINE 8 COLUMN 20 VALUE "4. Delete Customer". 05 LINE 9 COLUMN 20 VALUE "5. Exit". 05 LINE 11 COLUMN 20 VALUE "Enter your choice: ". 05 LINE 11 COLUMN 40 PIC 9 TO MENU-CHOICE REQUIRED AUTO-SKIP.
Screen descriptions define the layout, field positions, and input behavior.
ACCEPT OMITTED displays and processes entire screens:
1234567891011121314151617181920212223242526272829303132PROCEDURE DIVISION. MAIN-PROCESS. PERFORM DISPLAY-MENU PERFORM PROCESS-MENU-CHOICE STOP RUN. DISPLAY-MENU. ACCEPT OMITTED FROM MENU-SCREEN. PROCESS-MENU-CHOICE. EVALUATE MENU-CHOICE WHEN 1 PERFORM ADD-CUSTOMER WHEN 2 PERFORM VIEW-CUSTOMER WHEN 3 PERFORM UPDATE-CUSTOMER WHEN 4 PERFORM DELETE-CUSTOMER WHEN 5 MOVE "Y" TO EXIT-FLAG WHEN OTHER DISPLAY "Invalid choice" AT LINE 15 AT COLUMN 20 END-EVALUATE. ADD-CUSTOMER. ACCEPT OMITTED FROM CUSTOMER-ENTRY-SCREEN IF CUSTOMER-ID NOT = SPACES PERFORM SAVE-CUSTOMER DISPLAY "Customer saved successfully" AT LINE 15 AT COLUMN 20 END-IF.
ACCEPT OMITTED automatically handles screen display and field input.
Screen fields can have various attributes for formatting and behavior:
12345678910111213141516171819202101 DETAILED-SCREEN. 05 LINE 3 COLUMN 10 VALUE "FIELD ATTRIBUTES EXAMPLE" HIGHLIGHT UNDERLINE. 05 LINE 5 COLUMN 10 VALUE "Required Field: ". 05 LINE 5 COLUMN 25 PIC X(20) TO REQUIRED-FIELD REQUIRED AUTO-SKIP. 05 LINE 6 COLUMN 10 VALUE "Password Field: ". 05 LINE 6 COLUMN 25 PIC X(15) TO PASSWORD-FIELD SECURE AUTO-SKIP. 05 LINE 7 COLUMN 10 VALUE "Highlighted Field: ". 05 LINE 7 COLUMN 25 PIC X(20) TO HIGHLIGHT-FIELD HIGHLIGHT AUTO-SKIP. 05 LINE 8 COLUMN 10 VALUE "Reverse Video: ". 05 LINE 8 COLUMN 25 PIC X(20) TO REVERSE-FIELD REVERSE-VIDEO AUTO-SKIP. 05 LINE 9 COLUMN 10 VALUE "Underlined Field: ". 05 LINE 9 COLUMN 25 PIC X(20) TO UNDERLINE-FIELD UNDERLINE AUTO-SKIP. 05 LINE 10 COLUMN 10 VALUE "Blinking Field: ". 05 LINE 10 COLUMN 25 PIC X(20) TO BLINK-FIELD BLINK AUTO-SKIP.
Attributes can be combined to create visually distinct and functional fields.
Clause | Purpose | Example |
---|---|---|
VALUE | Display literal text | VALUE "Enter name: " |
TO | Input field destination | TO CUSTOMER-NAME |
FROM | Output field source | FROM CUSTOMER-NAME |
REQUIRED | Mandatory field | REQUIRED |
AUTO-SKIP | Auto-advance cursor | AUTO-SKIP |
SECURE | Hide input characters | SECURE |
Effective screen formatting creates professional, user-friendly interfaces. Proper layout, spacing, and visual organization improve usability and user experience.
Design screens with clear structure and visual hierarchy:
1234567891011121314151617181920212223242526272829303101 PROFESSIONAL-SCREEN. 05 LINE 1 COLUMN 1 VALUE "================================================". 05 LINE 2 COLUMN 15 VALUE "CUSTOMER MANAGEMENT SYSTEM" HIGHLIGHT. 05 LINE 3 COLUMN 1 VALUE "================================================". 05 LINE 5 COLUMN 10 VALUE "Customer Information Entry Form". 05 LINE 6 COLUMN 10 VALUE "----------------------------------------". 05 LINE 8 COLUMN 10 VALUE "Customer ID: ". 05 LINE 8 COLUMN 25 PIC X(10) TO CUSTOMER-ID REQUIRED AUTO-SKIP. 05 LINE 9 COLUMN 10 VALUE "Customer Name: ". 05 LINE 9 COLUMN 25 PIC X(30) TO CUSTOMER-NAME REQUIRED AUTO-SKIP. 05 LINE 10 COLUMN 10 VALUE "Address: ". 05 LINE 10 COLUMN 25 PIC X(40) TO CUSTOMER-ADDRESS AUTO-SKIP. 05 LINE 11 COLUMN 10 VALUE "City: ". 05 LINE 11 COLUMN 25 PIC X(20) TO CUSTOMER-CITY AUTO-SKIP. 05 LINE 12 COLUMN 10 VALUE "State: ". 05 LINE 12 COLUMN 25 PIC X(2) TO CUSTOMER-STATE AUTO-SKIP. 05 LINE 13 COLUMN 10 VALUE "Zip Code: ". 05 LINE 13 COLUMN 25 PIC X(10) TO CUSTOMER-ZIP AUTO-SKIP. 05 LINE 14 COLUMN 10 VALUE "Phone: ". 05 LINE 14 COLUMN 25 PIC X(15) TO CUSTOMER-PHONE AUTO-SKIP. 05 LINE 16 COLUMN 10 VALUE "----------------------------------------". 05 LINE 18 COLUMN 10 VALUE "F1=Save F2=Cancel F3=Clear ESC=Exit". 05 LINE 20 COLUMN 1 VALUE "================================================".
Professional screens include headers, clear field labels, and navigation instructions.
Create clear, navigable menu systems:
123456789101112131415161718192021222324252627282930313233343501 MAIN-MENU-SCREEN. 05 LINE 1 COLUMN 1 VALUE "================================================". 05 LINE 2 COLUMN 15 VALUE "CUSTOMER MANAGEMENT SYSTEM" HIGHLIGHT. 05 LINE 3 COLUMN 1 VALUE "================================================". 05 LINE 5 COLUMN 20 VALUE "MAIN MENU". 05 LINE 6 COLUMN 20 VALUE "---------". 05 LINE 8 COLUMN 20 VALUE "1. Customer Operations". 05 LINE 9 COLUMN 20 VALUE "2. Report Generation". 05 LINE 10 COLUMN 20 VALUE "3. System Maintenance". 05 LINE 11 COLUMN 20 VALUE "4. User Administration". 05 LINE 12 COLUMN 20 VALUE "5. Exit System". 05 LINE 14 COLUMN 20 VALUE "Enter your choice (1-5): ". 05 LINE 14 COLUMN 45 PIC 9 TO MENU-CHOICE REQUIRED AUTO-SKIP. 05 LINE 16 COLUMN 20 VALUE "----------------------------------------". 05 LINE 18 COLUMN 20 VALUE "F1=Help ESC=Exit". 05 LINE 20 COLUMN 1 VALUE "================================================". 01 CUSTOMER-MENU-SCREEN. 05 LINE 1 COLUMN 1 VALUE "================================================". 05 LINE 2 COLUMN 15 VALUE "CUSTOMER OPERATIONS" HIGHLIGHT. 05 LINE 3 COLUMN 1 VALUE "================================================". 05 LINE 5 COLUMN 20 VALUE "CUSTOMER MENU". 05 LINE 6 COLUMN 20 VALUE "-------------". 05 LINE 8 COLUMN 20 VALUE "1. Add New Customer". 05 LINE 9 COLUMN 20 VALUE "2. View Customer Details". 05 LINE 10 COLUMN 20 VALUE "3. Update Customer". 05 LINE 11 COLUMN 20 VALUE "4. Delete Customer". 05 LINE 12 COLUMN 20 VALUE "5. Search Customers". 05 LINE 13 COLUMN 20 VALUE "6. Return to Main Menu". 05 LINE 15 COLUMN 20 VALUE "Enter your choice (1-6): ". 05 LINE 15 COLUMN 45 PIC 9 TO CUSTOMER-CHOICE REQUIRED AUTO-SKIP.
Well-designed menus provide clear navigation and logical grouping of functions.
Design effective message areas for user feedback:
123456789101112131415161718192001 MESSAGE-SCREEN. 05 LINE 1 COLUMN 1 VALUE "================================================". 05 LINE 2 COLUMN 15 VALUE "CUSTOMER MANAGEMENT SYSTEM" HIGHLIGHT. 05 LINE 3 COLUMN 1 VALUE "================================================". 05 LINE 5 COLUMN 10 VALUE "Customer ID: ". 05 LINE 5 COLUMN 25 PIC X(10) TO CUSTOMER-ID REQUIRED AUTO-SKIP. 05 LINE 6 COLUMN 10 VALUE "Customer Name: ". 05 LINE 6 COLUMN 25 PIC X(30) TO CUSTOMER-NAME REQUIRED AUTO-SKIP. 05 LINE 8 COLUMN 10 VALUE "----------------------------------------". 05 LINE 10 COLUMN 10 VALUE "Status: ". 05 LINE 10 COLUMN 20 PIC X(40) FROM STATUS-MESSAGE. 05 LINE 12 COLUMN 10 VALUE "Error: ". 05 LINE 12 COLUMN 20 PIC X(40) FROM ERROR-MESSAGE HIGHLIGHT. 05 LINE 14 COLUMN 10 VALUE "----------------------------------------". 05 LINE 16 COLUMN 10 VALUE "Press ENTER to continue...". 05 LINE 18 COLUMN 1 VALUE "================================================".
Dedicated message areas provide clear feedback for user actions and errors.
Interactive COBOL programs use screen handling to create user-friendly applications. These examples demonstrate practical screen handling techniques.
A complete customer management program with screen handling:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112IDENTIFICATION DIVISION. PROGRAM-ID. CUSTOMER-MANAGER. ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. 01 MENU-CHOICE PIC 9. 01 EXIT-FLAG PIC X VALUE "N". 88 EXIT-PROGRAM VALUE "Y". 01 CUSTOMER-ID PIC X(10). 01 CUSTOMER-NAME PIC X(30). 01 CUSTOMER-ADDRESS PIC X(50). 01 CUSTOMER-PHONE PIC X(15). 01 STATUS-MESSAGE PIC X(40). 01 ERROR-MESSAGE PIC X(40). SCREEN SECTION. 01 MAIN-MENU-SCREEN. 05 LINE 1 COLUMN 1 VALUE "================================================". 05 LINE 2 COLUMN 15 VALUE "CUSTOMER MANAGEMENT SYSTEM" HIGHLIGHT. 05 LINE 3 COLUMN 1 VALUE "================================================". 05 LINE 5 COLUMN 20 VALUE "MAIN MENU". 05 LINE 6 COLUMN 20 VALUE "---------". 05 LINE 8 COLUMN 20 VALUE "1. Add Customer". 05 LINE 9 COLUMN 20 VALUE "2. View Customer". 05 LINE 10 COLUMN 20 VALUE "3. Update Customer". 05 LINE 11 COLUMN 20 VALUE "4. Delete Customer". 05 LINE 12 COLUMN 20 VALUE "5. Exit". 05 LINE 14 COLUMN 20 VALUE "Enter your choice (1-5): ". 05 LINE 14 COLUMN 45 PIC 9 TO MENU-CHOICE REQUIRED AUTO-SKIP. 01 CUSTOMER-ENTRY-SCREEN. 05 LINE 1 COLUMN 1 VALUE "================================================". 05 LINE 2 COLUMN 15 VALUE "CUSTOMER ENTRY FORM" HIGHLIGHT. 05 LINE 3 COLUMN 1 VALUE "================================================". 05 LINE 5 COLUMN 10 VALUE "Customer ID: ". 05 LINE 5 COLUMN 25 PIC X(10) TO CUSTOMER-ID REQUIRED AUTO-SKIP. 05 LINE 6 COLUMN 10 VALUE "Customer Name: ". 05 LINE 6 COLUMN 25 PIC X(30) TO CUSTOMER-NAME REQUIRED AUTO-SKIP. 05 LINE 7 COLUMN 10 VALUE "Address: ". 05 LINE 7 COLUMN 25 PIC X(50) TO CUSTOMER-ADDRESS AUTO-SKIP. 05 LINE 8 COLUMN 10 VALUE "Phone: ". 05 LINE 8 COLUMN 25 PIC X(15) TO CUSTOMER-PHONE AUTO-SKIP. 05 LINE 10 COLUMN 10 VALUE "Status: ". 05 LINE 10 COLUMN 20 PIC X(40) FROM STATUS-MESSAGE. 05 LINE 12 COLUMN 10 VALUE "Press ENTER to save, ESC to cancel". PROCEDURE DIVISION. MAIN-PROCESS. PERFORM UNTIL EXIT-PROGRAM PERFORM DISPLAY-MAIN-MENU PERFORM PROCESS-MENU-CHOICE END-PERFORM STOP RUN. DISPLAY-MAIN-MENU. ACCEPT OMITTED FROM MAIN-MENU-SCREEN. PROCESS-MENU-CHOICE. EVALUATE MENU-CHOICE WHEN 1 PERFORM ADD-CUSTOMER WHEN 2 PERFORM VIEW-CUSTOMER WHEN 3 PERFORM UPDATE-CUSTOMER WHEN 4 PERFORM DELETE-CUSTOMER WHEN 5 MOVE "Y" TO EXIT-FLAG WHEN OTHER MOVE "Invalid choice - please try again" TO ERROR-MESSAGE DISPLAY ERROR-MESSAGE AT LINE 16 AT COLUMN 20 END-EVALUATE. ADD-CUSTOMER. MOVE SPACES TO CUSTOMER-ID MOVE SPACES TO CUSTOMER-NAME MOVE SPACES TO CUSTOMER-ADDRESS MOVE SPACES TO CUSTOMER-PHONE MOVE SPACES TO STATUS-MESSAGE ACCEPT OMITTED FROM CUSTOMER-ENTRY-SCREEN IF CUSTOMER-ID NOT = SPACES AND CUSTOMER-NAME NOT = SPACES PERFORM SAVE-CUSTOMER-DATA MOVE "Customer saved successfully" TO STATUS-MESSAGE ELSE MOVE "Customer ID and Name are required" TO STATUS-MESSAGE END-IF. SAVE-CUSTOMER-DATA. * Here you would add code to save to file or database DISPLAY "Saving customer data..." AT LINE 15 AT COLUMN 10. VIEW-CUSTOMER. MOVE "View customer functionality not implemented" TO STATUS-MESSAGE DISPLAY STATUS-MESSAGE AT LINE 15 AT COLUMN 10. UPDATE-CUSTOMER. MOVE "Update customer functionality not implemented" TO STATUS-MESSAGE DISPLAY STATUS-MESSAGE AT LINE 15 AT COLUMN 10. DELETE-CUSTOMER. MOVE "Delete customer functionality not implemented" TO STATUS-MESSAGE DISPLAY STATUS-MESSAGE AT LINE 15 AT COLUMN 10.
This complete program demonstrates menu-driven interaction with proper screen handling.
A secure login screen with password handling:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565701 LOGIN-SCREEN. 05 LINE 1 COLUMN 1 VALUE "================================================". 05 LINE 2 COLUMN 15 VALUE "SYSTEM LOGIN" HIGHLIGHT. 05 LINE 3 COLUMN 1 VALUE "================================================". 05 LINE 5 COLUMN 20 VALUE "Username: ". 05 LINE 5 COLUMN 30 PIC X(20) TO USERNAME REQUIRED AUTO-SKIP. 05 LINE 6 COLUMN 20 VALUE "Password: ". 05 LINE 6 COLUMN 30 PIC X(15) TO PASSWORD SECURE REQUIRED AUTO-SKIP. 05 LINE 8 COLUMN 20 VALUE "----------------------------------------". 05 LINE 10 COLUMN 20 VALUE "Press ENTER to login, ESC to exit". 05 LINE 12 COLUMN 20 VALUE "Status: ". 05 LINE 12 COLUMN 30 PIC X(30) FROM LOGIN-STATUS. 05 LINE 14 COLUMN 1 VALUE "================================================". WORKING-STORAGE SECTION. 01 USERNAME PIC X(20). 01 PASSWORD PIC X(15). 01 LOGIN-STATUS PIC X(30). 01 LOGIN-ATTEMPTS PIC 9(2) VALUE 0. 01 MAX-ATTEMPTS PIC 9(2) VALUE 3. PROCEDURE DIVISION. LOGIN-PROCESS. PERFORM UNTIL LOGIN-ATTEMPTS >= MAX-ATTEMPTS PERFORM DISPLAY-LOGIN-SCREEN PERFORM VALIDATE-LOGIN IF LOGIN-SUCCESSFUL PERFORM MAIN-APPLICATION EXIT PERFORM ELSE ADD 1 TO LOGIN-ATTEMPTS MOVE "Invalid username or password" TO LOGIN-STATUS END-IF END-PERFORM IF LOGIN-ATTEMPTS >= MAX-ATTEMPTS MOVE "Too many login attempts - exiting" TO LOGIN-STATUS DISPLAY LOGIN-STATUS AT LINE 15 AT COLUMN 20 END-IF STOP RUN. DISPLAY-LOGIN-SCREEN. MOVE SPACES TO USERNAME MOVE SPACES TO PASSWORD MOVE SPACES TO LOGIN-STATUS ACCEPT OMITTED FROM LOGIN-SCREEN. VALIDATE-LOGIN. * Simple validation - in real applications, check against database IF USERNAME = "ADMIN" AND PASSWORD = "PASSWORD123" MOVE "Login successful" TO LOGIN-STATUS MOVE "Y" TO LOGIN-SUCCESSFUL ELSE MOVE "N" TO LOGIN-SUCCESSFUL END-IF.
This login screen demonstrates secure password input and validation.
Following these best practices ensures that your COBOL screen handling creates professional, user-friendly, and maintainable applications.
Aspect | Check Item | Status |
---|---|---|
Layout | Consistent spacing and alignment | □ |
Navigation | Clear menu options and exit paths | □ |
Validation | Required fields and data validation | □ |
Feedback | Status messages and error handling | □ |
Security | Password protection and access control | □ |
Usability | Intuitive design and user guidance | □ |
1. What is the primary purpose of the DISPLAY statement in COBOL screen handling?
2. Which statement is used to accept user input from the keyboard in COBOL?
3. What is the purpose of the AT LINE and AT COLUMN clauses in DISPLAY statements?
4. What is a screen section in COBOL?
5. Which COBOL feature helps create formatted, user-friendly screens?
Understanding the ACCEPT statement for user input.
Using DISPLAY for screen output and formatting.
Validating user input in COBOL programs.
Creating interactive COBOL applications.
Designing user-friendly COBOL interfaces.