Data sections organize different types of data within the Data Division of COBOL programs. Learn Working Storage Section, File Section, Linkage Section, Local Storage Section, and Screen Section for effective data organization.
123456789101112131415161718192021222324252627WORKING-STORAGE SECTION. 01 WORKING-STORAGE-EXAMPLES. 05 PROGRAM-CONSTANTS. 10 C-MAX-RECORDS PIC 9(4) VALUE 1000. 10 C-COMPANY-NAME PIC X(20) VALUE 'ACME CORPORATION'. 10 C-DEFAULT-STATUS PIC X VALUE 'A'. 05 PROGRAM-VARIABLES. 10 WS-RECORD-COUNT PIC 9(6) VALUE 0. 10 WS-TOTAL-AMOUNT PIC 9(9)V99 VALUE 0. 10 WS-PROCESSING-FLAG PIC X VALUE 'N'. 88 WS-PROCESSING-COMPLETE VALUE 'Y'. 05 WORK-AREAS. 10 TEMP-BUFFER PIC X(100). 10 CALCULATION-AREA PIC 9(9)V99. 10 ERROR-MESSAGE PIC X(50). PROCEDURE DIVISION. PERFORM DEMONSTRATE-WORKING-STORAGE DEMONSTRATE-WORKING-STORAGE. DISPLAY 'Working Storage Section demonstration:' DISPLAY 'Max Records: ' C-MAX-RECORDS DISPLAY 'Company Name: ' C-COMPANY-NAME DISPLAY 'Default Status: ' C-DEFAULT-STATUS DISPLAY 'Record Count: ' WS-RECORD-COUNT DISPLAY 'Total Amount: ' WS-TOTAL-AMOUNT DISPLAY 'Processing Flag: ' WS-PROCESSING-FLAG.
The Working Storage Section contains program variables, constants, and work areas that persist throughout program execution. Data is initialized when the program starts and retains values between procedure calls.
1234567891011121314151617181920212223242526272829303132333435363738394041424344FILE SECTION. FD CUSTOMER-MASTER-FILE LABEL RECORDS ARE STANDARD RECORDING MODE IS F BLOCK CONTAINS 0 RECORDS. 01 CUSTOMER-MASTER-RECORD. 05 CUSTOMER-ID PIC 9(6). 05 CUSTOMER-NAME PIC X(30). 05 CUSTOMER-ADDRESS PIC X(50). 05 CUSTOMER-PHONE PIC X(12). 05 CUSTOMER-BALANCE PIC 9(9)V99. FD TRANSACTION-FILE LABEL RECORDS ARE STANDARD RECORDING MODE IS F BLOCK CONTAINS 0 RECORDS. 01 TRANSACTION-RECORD. 05 TRANSACTION-ID PIC 9(8). 05 TRANSACTION-DATE PIC 9(8). 05 TRANSACTION-AMOUNT PIC 9(9)V99. 05 TRANSACTION-DESCRIPTION PIC X(50). FD REPORT-FILE LABEL RECORDS ARE OMITTED RECORDING MODE IS F BLOCK CONTAINS 0 RECORDS. 01 REPORT-LINE PIC X(132). PROCEDURE DIVISION. PERFORM DEMONSTRATE-FILE-SECTION DEMONSTRATE-FILE-SECTION. OPEN INPUT CUSTOMER-MASTER-FILE OPEN INPUT TRANSACTION-FILE OPEN OUTPUT REPORT-FILE DISPLAY 'File Section demonstration:' DISPLAY 'Customer Master File opened' DISPLAY 'Transaction File opened' DISPLAY 'Report File opened' CLOSE CUSTOMER-MASTER-FILE CLOSE TRANSACTION-FILE CLOSE REPORT-FILE.
The File Section defines file descriptions (FD) and record layouts for input/output files. Each FD describes file characteristics like record format, labels, and blocking, followed by record structure definitions.
12345678910111213141516171819202122232425262728LINKAGE SECTION. 01 LINKAGE-PARAMETERS. 05 INPUT-PARAMETER-AREA. 10 INPUT-PARAMETER-LENGTH PIC S9(4) COMP. 10 INPUT-PARAMETER-DATA PIC X(100). 05 OUTPUT-PARAMETER-AREA. 10 OUTPUT-PARAMETER-RETURN-CODE PIC 9(4). 10 OUTPUT-PARAMETER-MESSAGE PIC X(50). 05 SHARED-DATA-AREA. 10 SHARED-CUSTOMER-ID PIC 9(6). 10 SHARED-CUSTOMER-NAME PIC X(30). 10 SHARED-CUSTOMER-BALANCE PIC 9(9)V99. PROCEDURE DIVISION USING INPUT-PARAMETER-AREA OUTPUT-PARAMETER-AREA SHARED-DATA-AREA. PERFORM DEMONSTRATE-LINKAGE-SECTION DEMONSTRATE-LINKAGE-SECTION. DISPLAY 'Linkage Section demonstration:' DISPLAY 'Input Parameter Length: ' INPUT-PARAMETER-LENGTH DISPLAY 'Input Parameter Data: ' INPUT-PARAMETER-DATA DISPLAY 'Shared Customer ID: ' SHARED-CUSTOMER-ID DISPLAY 'Shared Customer Name: ' SHARED-CUSTOMER-NAME DISPLAY 'Shared Customer Balance: ' SHARED-CUSTOMER-BALANCE MOVE 0 TO OUTPUT-PARAMETER-RETURN-CODE MOVE 'PROCESSING COMPLETED' TO OUTPUT-PARAMETER-MESSAGE.
The Linkage Section defines parameters passed between programs and shared data areas. Data in this section is provided by the calling program and represents the interface between programs.
12345678910111213141516171819202122232425262728LOCAL-STORAGE SECTION. 01 LOCAL-STORAGE-DATA. 05 LOCAL-VARIABLES. 10 LOCAL-COUNTER PIC 9(4) VALUE 0. 10 LOCAL-TEMP-VALUE PIC 9(6)V99 VALUE 0. 10 LOCAL-PROCESSING-FLAG PIC X VALUE 'N'. 05 LOCAL-WORK-AREAS. 10 LOCAL-BUFFER PIC X(200). 10 LOCAL-CALCULATION PIC 9(9)V99. 10 LOCAL-ERROR-CODE PIC 9(3). PROCEDURE DIVISION. PERFORM DEMONSTRATE-LOCAL-STORAGE DEMONSTRATE-LOCAL-STORAGE. DISPLAY 'Local Storage Section demonstration:' DISPLAY 'Local Counter: ' LOCAL-COUNTER DISPLAY 'Local Temp Value: ' LOCAL-TEMP-VALUE DISPLAY 'Local Processing Flag: ' LOCAL-PROCESSING-FLAG ADD 1 TO LOCAL-COUNTER MOVE 1500.50 TO LOCAL-TEMP-VALUE MOVE 'Y' TO LOCAL-PROCESSING-FLAG DISPLAY 'After modification:' DISPLAY 'Local Counter: ' LOCAL-COUNTER DISPLAY 'Local Temp Value: ' LOCAL-TEMP-VALUE DISPLAY 'Local Processing Flag: ' LOCAL-PROCESSING-FLAG.
The Local Storage Section provides automatic storage that is allocated when a program is called and deallocated when the program returns. Each call gets fresh storage, making it useful for recursive programs.
123456789101112131415161718192021222324252627282930SCREEN SECTION. 01 MAIN-SCREEN. 05 BLANK SCREEN. 05 LINE 1 COLUMN 1 VALUE 'CUSTOMER MANAGEMENT SYSTEM'. 05 LINE 3 COLUMN 1 VALUE 'Customer ID:'. 05 LINE 3 COLUMN 15 PIC 9(6) TO CUSTOMER-ID. 05 LINE 4 COLUMN 1 VALUE 'Customer Name:'. 05 LINE 4 COLUMN 15 PIC X(30) TO CUSTOMER-NAME. 05 LINE 5 COLUMN 1 VALUE 'Account Balance:'. 05 LINE 5 COLUMN 15 PIC 9(9)V99 TO CUSTOMER-BALANCE. 05 LINE 7 COLUMN 1 VALUE 'Press ENTER to continue or ESC to exit'. 01 CONFIRMATION-SCREEN. 05 BLANK SCREEN. 05 LINE 1 COLUMN 1 VALUE 'CONFIRMATION'. 05 LINE 3 COLUMN 1 VALUE 'Customer ID: '. 05 LINE 3 COLUMN 15 PIC 9(6) FROM CUSTOMER-ID. 05 LINE 4 COLUMN 1 VALUE 'Customer Name: '. 05 LINE 4 COLUMN 15 PIC X(30) FROM CUSTOMER-NAME. 05 LINE 5 COLUMN 1 VALUE 'Account Balance: '. 05 LINE 5 COLUMN 15 PIC 9(9)V99 FROM CUSTOMER-BALANCE. PROCEDURE DIVISION. PERFORM DEMONSTRATE-SCREEN-SECTION DEMONSTRATE-SCREEN-SECTION. DISPLAY 'Screen Section demonstration:' DISPLAY 'Main Screen defined' DISPLAY 'Confirmation Screen defined' DISPLAY 'Screen layouts ready for use'.
The Screen Section defines interactive screen layouts for terminal-based applications. It specifies screen positioning, field definitions, and user interaction elements for data entry and display.
1234567891011121314151617181920212223242526272829303132333435363738394041424344IDENTIFICATION DIVISION. PROGRAM-ID. DATA-SECTIONS-DEMO. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT CUSTOMER-FILE ASSIGN TO 'CUSTOMER.DAT'. DATA DIVISION. FILE SECTION. FD CUSTOMER-FILE LABEL RECORDS ARE STANDARD. 01 CUSTOMER-RECORD PIC X(100). WORKING-STORAGE SECTION. 01 PROGRAM-CONSTANTS. 05 C-MAX-RECORDS PIC 9(4) VALUE 1000. 01 PROGRAM-VARIABLES. 05 WS-RECORD-COUNT PIC 9(6) VALUE 0. LINKAGE SECTION. 01 LINKAGE-PARAMETERS. 05 INPUT-DATA PIC X(50). 05 OUTPUT-DATA PIC X(50). LOCAL-STORAGE SECTION. 01 LOCAL-DATA. 05 LOCAL-COUNTER PIC 9(4) VALUE 0. SCREEN SECTION. 01 INPUT-SCREEN. 05 LINE 1 COLUMN 1 VALUE 'Enter Data:'. 05 LINE 1 COLUMN 15 PIC X(50) TO INPUT-DATA. PROCEDURE DIVISION USING LINKAGE-PARAMETERS. PERFORM DEMONSTRATE-SECTION-ORGANIZATION DEMONSTRATE-SECTION-ORGANIZATION. DISPLAY 'Data Section Organization:' DISPLAY 'File Section: File definitions' DISPLAY 'Working Storage: Program variables' DISPLAY 'Linkage Section: Parameters' DISPLAY 'Local Storage: Local variables' DISPLAY 'Screen Section: Screen layouts'.
Organize data sections in the proper order: File Section first, then Working Storage Section, followed by Linkage Section, Local Storage Section, and Screen Section. Each section serves specific purposes in program data organization.
12345678910111213141516171819202122WORKING-STORAGE SECTION. 01 SECTION-USAGE-GUIDELINES. 05 CONSTANTS. 10 C-MAX-RECORDS PIC 9(4) VALUE 1000. 10 C-COMPANY-NAME PIC X(20) VALUE 'ACME CORP'. 05 VARIABLES. 10 WS-RECORD-COUNT PIC 9(6) VALUE 0. 10 WS-TOTAL-AMOUNT PIC 9(9)V99 VALUE 0. 05 WORK-AREAS. 10 TEMP-BUFFER PIC X(100). 10 CALCULATION-AREA PIC 9(9)V99. PROCEDURE DIVISION. PERFORM DEMONSTRATE-USAGE-GUIDELINES DEMONSTRATE-USAGE-GUIDELINES. DISPLAY 'Section Usage Guidelines:' DISPLAY 'Working Storage: Use for program variables and constants' DISPLAY 'File Section: Use for file and record definitions' DISPLAY 'Linkage Section: Use for program parameters' DISPLAY 'Local Storage: Use for recursive or reentrant programs' DISPLAY 'Screen Section: Use for interactive terminal applications'.
Follow usage guidelines: Working Storage for program variables, File Section for file definitions, Linkage Section for parameters, Local Storage for recursive programs, and Screen Section for terminal applications.
12345678910111213141516171819202122232425WORKING-STORAGE SECTION. 01 DATA-SECTION-BEST-PRACTICES. 05 ORGANIZED-CONSTANTS. 10 C-MAX-RECORDS PIC 9(4) VALUE 1000. 10 C-DEFAULT-VALUE PIC X(10) VALUE 'DEFAULT'. 10 C-ERROR-MESSAGE PIC X(50) VALUE 'ERROR OCCURRED'. 05 ORGANIZED-VARIABLES. 10 WS-RECORD-COUNT PIC 9(6) VALUE 0. 10 WS-TOTAL-AMOUNT PIC 9(9)V99 VALUE 0. 10 WS-PROCESSING-FLAG PIC X VALUE 'N'. 05 ORGANIZED-WORK-AREAS. 10 TEMP-BUFFER PIC X(100). 10 CALCULATION-AREA PIC 9(9)V99. 10 ERROR-BUFFER PIC X(200). PROCEDURE DIVISION. PERFORM DEMONSTRATE-BEST-PRACTICES DEMONSTRATE-BEST-PRACTICES. DISPLAY 'Data Section Best Practices:' DISPLAY 'Group related data items together' DISPLAY 'Use meaningful names with appropriate prefixes' DISPLAY 'Initialize variables with appropriate values' DISPLAY 'Document data section purposes' DISPLAY 'Use consistent naming conventions'.
Follow best practices: group related data items, use meaningful names with prefixes (C- for constants, WS- for variables), initialize variables appropriately, document purposes, and maintain consistent naming conventions.
1234567891011121314151617181920212223WORKING-STORAGE SECTION. 01 PERFORMANCE-CONSIDERATIONS. 05 EFFICIENT-DATA-TYPES. 10 COMP-NUMERIC PIC 9(6) COMP. 10 DISPLAY-NUMERIC PIC 9(6). 10 PACKED-DECIMAL PIC 9(6)V99 COMP-3. 05 APPROPRIATE-SIZES. 10 SMALL-FIELD PIC X(10). 10 MEDIUM-FIELD PIC X(50). 10 LARGE-FIELD PIC X(200). 05 MEMORY-OPTIMIZATION. 10 GROUPED-DATA PIC X(100). 10 ALIGNED-DATA PIC X(100). PROCEDURE DIVISION. PERFORM DEMONSTRATE-PERFORMANCE-CONSIDERATIONS DEMONSTRATE-PERFORMANCE-CONSIDERATIONS. DISPLAY 'Performance Considerations:' DISPLAY 'Use COMP for calculations, DISPLAY for I/O' DISPLAY 'Choose appropriate field sizes' DISPLAY 'Group related data for better memory usage' DISPLAY 'Consider data alignment for performance'.
Consider performance when organizing data sections: use COMP for calculations, DISPLAY for I/O operations, choose appropriate field sizes, group related data, and consider data alignment for optimal performance.