Master Mainframe Technologies - COBOL, JCL, DB2, VSAM, CICS & More
ABEND Codes SQLCODEs File Status Interview Prep Contact
← Back to Tables & Arrays
Tables & Arrays | Intermediate | COBOL

Table with DEPENDING ON

Problem Description

Create variable-length table using OCCURS DEPENDING ON.

Expected Output

Dynamic array sizing

Hints

OCCURS n TO m DEPENDING ON var for variable length.

Solution

IDENTIFICATION DIVISION. PROGRAM-ID. VARLEN. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-MAX-ITEMS PIC 9(2) VALUE 20. 01 WS-ITEM-COUNT PIC 9(2) VALUE 0. 01 WS-ITEMS. 05 WS-ITEM OCCURS 1 TO 20 TIMES DEPENDING ON WS-ITEM-COUNT. 10 WS-ITEM-CODE PIC X(5). 10 WS-ITEM-DESC PIC X(20). 10 WS-ITEM-QTY PIC 9(3). 01 WS-I PIC 9(2). 01 WS-TOTAL-QTY PIC 9(5) VALUE 0. PROCEDURE DIVISION. * Add items dynamically ADD 1 TO WS-ITEM-COUNT. MOVE "A001" TO WS-ITEM-CODE(1). MOVE "WIDGET" TO WS-ITEM-DESC(1). MOVE 100 TO WS-ITEM-QTY(1). ADD 1 TO WS-ITEM-COUNT. MOVE "A002" TO WS-ITEM-CODE(2). MOVE "GADGET" TO WS-ITEM-DESC(2). MOVE 50 TO WS-ITEM-QTY(2). ADD 1 TO WS-ITEM-COUNT. MOVE "A003" TO WS-ITEM-CODE(3). MOVE "GIZMO" TO WS-ITEM-DESC(3). MOVE 75 TO WS-ITEM-QTY(3). * Process only active items DISPLAY "INVENTORY (" WS-ITEM-COUNT " ITEMS):". PERFORM VARYING WS-I FROM 1 BY 1 UNTIL WS-I > WS-ITEM-COUNT DISPLAY WS-ITEM-CODE(WS-I) " - " WS-ITEM-DESC(WS-I) " QTY: " WS-ITEM-QTY(WS-I) ADD WS-ITEM-QTY(WS-I) TO WS-TOTAL-QTY END-PERFORM. DISPLAY "TOTAL QUANTITY: " WS-TOTAL-QTY. STOP RUN.

Explanation:

OCCURS n TO m DEPENDING ON var creates variable length table.