Program that illustrates the Use of Control Break.
IDENTIFICATION DIVISION. PROGRAM-ID. ASS13. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT IN12 ASSIGN TO DISK ORGANIZATION IS LINE SEQUENTIAL. SELECT OUT12 ASSIGN TO DISK ORGANIZATION IS LINE SEQUENTIAL. DATA DIVISION. FD IN12 LABEL RECORDS ARE STANDARD VALUE OF FILE-ID IS "IN12.TXT". 01 IN12-REC. 05 DAY-IN PIC X. 05 SP-NO-IN PIC X(3). 05 AMT-IN PIC 9(5)V99. FD OUT12 LABEL RECORDS ARE STANDARD VALUE OF FILE-ID IS "OUT12.TXT". 01 OUTREC PIC X(80). WORKING-STORAGE SECTION. 01 H1. 05 STAR PIC X(80) VALUE ALL '*'. 01 H2. 05 DEPT PIC X(4) VALUE "DAY". 05 FILLER PIC X(1). 05 AMT PIC X(12) VALUE "TOTAL SALES". 01 H3. 05 SP1 PIC X(80) VALUE ALL SPACES. 01 TOTAL-REC. 05 DAY-OUT PIC X(3). 05 FILLER PIC X(3). 05 TOTAL-OUT PIC $Z(7).99. 77 A-T-M-REC PIC XXX VALUE 'YES'. 77 FIRST-REC PIC XXX VALUE 'YES'. 77 WS-DAY-HOLD PIC X. 77 WS-TOTAL PIC 9(7)V99 VALUE 0. PROCEDURE DIVISION. MAIN-PARA. OPEN INPUT IN12 OUTPUT OUT12 WRITE OUTREC FROM H1 WRITE OUTREC FROM H2 WRITE OUTREC FROM H1 WRITE OUTREC FROM H3 PERFORM UNTIL A-T-M-REC = 'NO' READ IN12 AT END MOVE 'NO' TO A-T-M-REC NOT AT END PERFORM PARA-1 END-READ END-PERFORM PERFORM PARA-CTRBREAK CLOSE IN12 OUT12 STOP RUN. MAIN-PARA. PARA-1. IF FIRST-REC = 'YES' MOVE DAY-IN TO WS-DAY-HOLD MOVE 'NO' TO FIRST-REC END-IF. IF DAY-IN NOT = WS-DAY-HOLD PERFORM PARA-CTRBREAK END-IF. EVALUATE DAY-IN WHEN 1 MOVE "MON" TO DAY-OUT WHEN 2 MOVE "TUE" TO DAY-OUT WHEN 3 MOVE "WED" TO DAY-OUT WHEN 4 MOVE "THU" TO DAY-OUT WHEN 5 MOVE "FRI" TO DAY-OUT END-EVALUATE. COMPUTE WS-TOTAL = WS-TOTAL + AMT-IN. PARA-CTRBREAK. MOVE WS-TOTAL TO TOTAL-OUT WRITE OUTREC FROM TOTAL-REC MOVE 0 TO WS-TOTAL MOVE 'YES' TO FIRST-REC WRITE OUTREC FROM H3. Input:- 11010100000 11020050000 11030020000 11040030000 21010080000 21020050000 31010050000 31030100000 41040005000 41050010000 51010010000 51020002500 Output:- ******************************************************************************** DAY TOTAL SALES ******************************************************************************** MON $ 2000.00 TUE $ 1300.00 WED $ 1500.00 THU $ 150.00 FRI $ 125.00