The FORMAT clause is used to specify formatting rules for data display and output operations in COBOL. This clause controls how data is presented, including field alignment, padding, width, and other display characteristics to ensure consistent and professional-looking output.
FORMAT enables professional and consistent data presentation in COBOL programs.
The FORMAT clause follows specific syntax patterns and is used within data description entries and display operations.
12345678910111213141516171819202122* Basic FORMAT clause syntax 01 data-item PIC X(20) FORMAT IS format-specification. * Examples 01 CUSTOMER-NAME PIC X(30) FORMAT IS "LEFT-JUSTIFIED". 01 ACCOUNT-BALANCE PIC 9(8)V99 FORMAT IS "RIGHT-JUSTIFIED". 01 REPORT-DATE PIC X(10) FORMAT IS "CENTERED". 01 CURRENCY-AMOUNT PIC 9(8)V99 FORMAT IS "CURRENCY". * Complete example with multiple formats DATA DIVISION. WORKING-STORAGE SECTION. 01 REPORT-HEADER. 05 COMPANY-NAME PIC X(40) FORMAT IS "CENTERED". 05 REPORT-TITLE PIC X(30) FORMAT IS "CENTERED". 05 REPORT-DATE PIC X(10) FORMAT IS "RIGHT-JUSTIFIED". 01 CUSTOMER-DATA. 05 CUSTOMER-ID PIC 9(5) FORMAT IS "LEFT-JUSTIFIED". 05 CUSTOMER-NAME PIC X(30) FORMAT IS "LEFT-JUSTIFIED". 05 ACCOUNT-BALANCE PIC 9(8)V99 FORMAT IS "CURRENCY". 05 LAST-TRANSACTION PIC X(10) FORMAT IS "CENTERED".
FORMAT is used in data description entries to specify display formatting.
Format Type | Description | Use Case |
---|---|---|
LEFT-JUSTIFIED | Align data to the left | Text fields and labels |
RIGHT-JUSTIFIED | Align data to the right | Numeric fields and amounts |
CENTERED | Center data in field | Headers and titles |
CURRENCY | Format as currency | Monetary amounts |
DATE | Format as date | Date fields |
12345678910111213141516171819* Using FORMAT in display operations PROCEDURE DIVISION. * Display formatted data DISPLAY "Customer Report" FORMAT IS "CENTERED" DISPLAY "=================" FORMAT IS "CENTERED" * Display customer information with formatting DISPLAY "ID: " CUSTOMER-ID FORMAT IS "LEFT-JUSTIFIED" DISPLAY "Name: " CUSTOMER-NAME FORMAT IS "LEFT-JUSTIFIED" DISPLAY "Balance: " ACCOUNT-BALANCE FORMAT IS "CURRENCY" DISPLAY "Date: " LAST-TRANSACTION FORMAT IS "CENTERED" * Display formatted report line DISPLAY CUSTOMER-ID " " CUSTOMER-NAME " " ACCOUNT-BALANCE " " LAST-TRANSACTION FORMAT IS "LEFT-JUSTIFIED, LEFT-JUSTIFIED, CURRENCY, CENTERED" * Display with custom formatting DISPLAY "Total: " TOTAL-AMOUNT FORMAT IS "RIGHT-JUSTIFIED, CURRENCY"
FORMAT is used in DISPLAY statements to control output formatting.
FORMAT is commonly used in specific scenarios where controlled data presentation is needed.
1234567891011121314151617181920212223242526272829303132333435363738394041424344* Report generation with FORMAT DATA DIVISION. WORKING-STORAGE SECTION. 01 REPORT-HEADER. 05 COMPANY-NAME PIC X(40) FORMAT IS "CENTERED". 05 REPORT-TITLE PIC X(30) FORMAT IS "CENTERED". 05 REPORT-DATE PIC X(10) FORMAT IS "RIGHT-JUSTIFIED". 01 REPORT-LINE. 05 PRODUCT-ID PIC 9(5) FORMAT IS "LEFT-JUSTIFIED". 05 PRODUCT-NAME PIC X(20) FORMAT IS "LEFT-JUSTIFIED". 05 QUANTITY PIC 9(4) FORMAT IS "RIGHT-JUSTIFIED". 05 UNIT-PRICE PIC 9(6)V99 FORMAT IS "CURRENCY". 05 TOTAL-PRICE PIC 9(8)V99 FORMAT IS "CURRENCY". PROCEDURE DIVISION. MAIN-LOGIC. * Display report header DISPLAY COMPANY-NAME FORMAT IS "CENTERED" DISPLAY REPORT-TITLE FORMAT IS "CENTERED" DISPLAY "Date: " REPORT-DATE FORMAT IS "RIGHT-JUSTIFIED" DISPLAY "==========================================" * Display column headers DISPLAY "ID Product Name Qty Unit Price Total" DISPLAY "---- -------------------- ---- ----------- --------" * Display report data PERFORM DISPLAY-REPORT-LINE UNTIL END-OF-FILE = 'Y' * Display totals DISPLAY "==========================================" DISPLAY "Total: " GRAND-TOTAL FORMAT IS "RIGHT-JUSTIFIED, CURRENCY" STOP RUN. DISPLAY-REPORT-LINE. DISPLAY PRODUCT-ID " " PRODUCT-NAME " " QUANTITY " " UNIT-PRICE " " TOTAL-PRICE FORMAT IS "LEFT-JUSTIFIED, LEFT-JUSTIFIED, RIGHT-JUSTIFIED, CURRENCY, CURRENCY" READ PRODUCT-FILE AT END MOVE 'Y' TO END-OF-FILE END-READ.
Use FORMAT for professional report generation with consistent formatting.
12345678910111213141516171819202122232425262728293031323334353637383940* Data display with FORMAT DATA DIVISION. WORKING-STORAGE SECTION. 01 CUSTOMER-DISPLAY. 05 CUSTOMER-ID PIC 9(5) FORMAT IS "LEFT-JUSTIFIED". 05 CUSTOMER-NAME PIC X(30) FORMAT IS "LEFT-JUSTIFIED". 05 ACCOUNT-BALANCE PIC 9(8)V99 FORMAT IS "CURRENCY". 05 LAST-TRANSACTION PIC X(10) FORMAT IS "CENTERED". 01 TRANSACTION-DISPLAY. 05 TRANSACTION-ID PIC 9(6) FORMAT IS "LEFT-JUSTIFIED". 05 TRANSACTION-DATE PIC X(10) FORMAT IS "CENTERED". 05 TRANSACTION-AMOUNT PIC 9(8)V99 FORMAT IS "CURRENCY". 05 TRANSACTION-TYPE PIC X(10) FORMAT IS "LEFT-JUSTIFIED". PROCEDURE DIVISION. MAIN-LOGIC. * Display customer information DISPLAY "Customer Information" DISPLAY "===================" DISPLAY "ID: " CUSTOMER-ID FORMAT IS "LEFT-JUSTIFIED" DISPLAY "Name: " CUSTOMER-NAME FORMAT IS "LEFT-JUSTIFIED" DISPLAY "Balance: " ACCOUNT-BALANCE FORMAT IS "CURRENCY" DISPLAY "Last Transaction: " LAST-TRANSACTION FORMAT IS "CENTERED" * Display transaction history DISPLAY "Transaction History" DISPLAY "===================" PERFORM DISPLAY-TRANSACTION UNTIL END-OF-TRANSACTIONS = 'Y' STOP RUN. DISPLAY-TRANSACTION. DISPLAY TRANSACTION-ID " " TRANSACTION-DATE " " TRANSACTION-AMOUNT " " TRANSACTION-TYPE FORMAT IS "LEFT-JUSTIFIED, CENTERED, CURRENCY, LEFT-JUSTIFIED" READ TRANSACTION-FILE AT END MOVE 'Y' TO END-OF-TRANSACTIONS END-READ.
Use FORMAT for consistent data display and user-friendly output.
123456789101112131415161718192021222324252627282930313233* Formatted input/output with FORMAT DATA DIVISION. WORKING-STORAGE SECTION. 01 INPUT-FORMAT. 05 INPUT-PROMPT PIC X(20) FORMAT IS "LEFT-JUSTIFIED". 05 INPUT-FIELD PIC X(30) FORMAT IS "LEFT-JUSTIFIED". 01 OUTPUT-FORMAT. 05 OUTPUT-LABEL PIC X(15) FORMAT IS "RIGHT-JUSTIFIED". 05 OUTPUT-VALUE PIC X(20) FORMAT IS "LEFT-JUSTIFIED". PROCEDURE DIVISION. MAIN-LOGIC. * Display formatted prompts DISPLAY "Enter customer name: " FORMAT IS "LEFT-JUSTIFIED" ACCEPT CUSTOMER-NAME DISPLAY "Enter account number: " FORMAT IS "LEFT-JUSTIFIED" ACCEPT ACCOUNT-NUMBER * Display formatted results DISPLAY "Customer: " CUSTOMER-NAME FORMAT IS "LEFT-JUSTIFIED" DISPLAY "Account: " ACCOUNT-NUMBER FORMAT IS "LEFT-JUSTIFIED" DISPLAY "Balance: " ACCOUNT-BALANCE FORMAT IS "CURRENCY" * Display formatted menu DISPLAY "Select option:" FORMAT IS "CENTERED" DISPLAY "1. View Balance" FORMAT IS "LEFT-JUSTIFIED" DISPLAY "2. Make Deposit" FORMAT IS "LEFT-JUSTIFIED" DISPLAY "3. Make Withdrawal" FORMAT IS "LEFT-JUSTIFIED" DISPLAY "4. Exit" FORMAT IS "LEFT-JUSTIFIED" STOP RUN.
Use FORMAT for professional input/output interfaces.
Following these best practices ensures effective use of the FORMAT clause for proper data presentation.
Pitfall | Problem | Solution |
---|---|---|
Inconsistent formatting | Confusing and unprofessional output | Use consistent formatting patterns |
Over-formatting | Cluttered and hard to read output | Keep formatting simple and clean |
Inappropriate alignment | Poor readability and visual appeal | Use appropriate alignment for data types |
Ignoring field width | Data overflow and display issues | Consider field width in formatting |
Performance neglect | Slow output with complex formatting | Balance formatting with performance |
Use Case | FORMAT Suitability | Reasoning |
---|---|---|
Report generation | Excellent | Perfect for professional report formatting |
Data display | Excellent | Ideal for user-friendly data presentation |
User interfaces | Good | Good for formatted user interfaces |
Performance-critical output | Poor | Formatting overhead may be too high |
Simple data output | Poor | Overkill for simple output needs |
Usage | Syntax | Example |
---|---|---|
Basic format | FORMAT IS format-type | FORMAT IS "LEFT-JUSTIFIED" |
Left alignment | FORMAT IS "LEFT-JUSTIFIED" | FORMAT IS "LEFT-JUSTIFIED" |
Right alignment | FORMAT IS "RIGHT-JUSTIFIED" | FORMAT IS "RIGHT-JUSTIFIED" |
Center alignment | FORMAT IS "CENTERED" | FORMAT IS "CENTERED" |
Currency format | FORMAT IS "CURRENCY" | FORMAT IS "CURRENCY" |
1. What is the primary purpose of the FORMAT clause in COBOL?
2. Where is the FORMAT clause typically used?
3. What is the main benefit of using FORMAT?
4. When is the FORMAT clause most useful?
5. How does FORMAT relate to data display?
Understanding the PICTURE clause for data definition.
Understanding the DISPLAY statement for output.
Complete guide to data definition in COBOL.
Understanding report writing in COBOL.
Understanding data formatting techniques.