* ==== TYPE: ST-SEARCH-ALL ==== * FEATURE: SEARCH ALL on OCCURS table * STATEMENT: SEARCH ALL * BRANCHES: 0, DECISIONS: 0 * NOTE: SEARCH ALL parsing can break subsequent IF branch counting IDENTIFICATION DIVISION. PROGRAM-ID. SRCHAL. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-TABLE. 05 WS-ENTRY OCCURS 5 TIMES. 10 WS-KEY PIC 9(2). 10 WS-DATA PIC X(5). 01 WS-SEARCH-KEY PIC 9(2) VALUE 3. 01 WS-FOUND PIC X VALUE 'N'. 01 WS-IDX PIC 9(2) VALUE 1. PROCEDURE DIVISION. MAIN. MOVE 1 TO WS-KEY(1) MOVE 'ALPHA' TO WS-DATA(1). MOVE 3 TO WS-KEY(2) MOVE 'BETA' TO WS-DATA(2). MOVE 5 TO WS-KEY(3) MOVE 'GAMMA' TO WS-DATA(3). SEARCH ALL WS-ENTRY AT END DISPLAY 'NOT FOUND' WHEN WS-KEY(WS-IDX) = WS-SEARCH-KEY MOVE 'Y' TO WS-FOUND. IF WS-FOUND = 'Y' DISPLAY 'OK: SEARCH ALL' ELSE DISPLAY 'ERROR: SEARCH ALL'. STOP RUN.