IDENTIFICATION DIVISION. PROGRAM-ID. TOTAL. AUTHOR. GROCER. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT INPUT-FILE ASSIGN TO "C:\PCOBWIN\CIS12FST\MAJOR.DAT". SELECT PRINT-FILE ASSIGN TO PRINTER. DATA DIVISION. FILE SECTION. FD INPUT-FILE DATA RECORD IS INPUT-REC. 01 INPUT-REC. 05 FILLER PIC XXXX. 05 DEPT PIC XX. 05 ITEM-NO PIC 9(4). 05 ITEM-NAME PIC X(20). 05 ON-HAND PIC 9(3). 05 PRICE PIC 9(3)V99. FD PRINT-FILE DATA RECORD IS PRINTZ. 01 PRINTZ. 05 FILLER PIC X. 05 DEPT-PR PIC XX. 05 FILLER PIC XXX. 05 ITEM-NO-PR PIC 9(4). 05 FILLER PIC X(5). 05 ITEM-NAME-PR PIC X(20). 05 FILLER PIC X(5). 05 ON-HAND-PR PIC ZZ9. 05 FILLER PIC X(4). 05 PRICE-PR PIC $$$9.99. 05 FILLER PIC X(5). 05 INV-VALUE-PR PIC $$$,$$9.99. 05 FILLER PIC X(11). WORKING-STORAGE SECTION. 01 PROGRAM-INDICATORS. 05 MORE-RECS PIC XXX VALUE "YES". 01 WORK-AREAS. 05 INV-VALUE-WS PIC 9(5)V99 VALUE 0. 01 ACCUMULATORS. 05 FINAL-ONHAND-ACC PIC 9(6) VALUE 0. 05 FINAL-VALUE-ACC PIC 9(8)V99 VALUE 0. 01 PAGE-CONTROL. 05 PAGE-NO PIC 99 VALUE 1. 05 LINE-CT PIC 99 VALUE 0. 01 DATE-WS. 05 YR-WS PIC 99 VALUE 0. 05 MO-WS PIC 99 VALUE 0. 05 DA-WS PIC 99 VALUE 0. 01 FINAL-TOTAL-LINE. 05 FILLER PIC X(10) VALUE SPACES. 05 FILLER PIC X(13) VALUE "FINAL TOTAL: ". 05 FILLER PIC X(13) VALUE SPACES. 05 FINAL-ONHAND-ACC-FL PIC ZZZ,ZZ9. 05 FILLER PIC X(12) VALUE SPACES. 05 FINAL-VALUE-ACC-FL PIC $$$,$$$,$$9.99. 05 FILLER PIC X(11) VALUE SPACES. 01 PAGE-HDR. 05 FILLER PIC XX VALUE SPACES. 05 DATE-HDR. 10 MO-HDR PIC 99. 10 FILLER PIC X VALUE "/". 10 DA-HDR PIC 99. 10 FILLER PIC X VALUE "/". 10 YR-HDR PIC 99. 05 FILLER PIC X(22) VALUE SPACES. 05 FILLER PIC X(16) VALUE "INVENTORY REPORT". 05 FILLER PIC X(20) VALUE SPACES. 05 FILLER PIC X(5) VALUE "PAGE ". 05 PAGE-NO-HDR PIC Z9. 05 FILLER PIC X(5) VALUE SPACES. 01 COLUMN-HDR. 05 FILLER PIC X VALUE SPACES. 05 FILLER PIC X(4) VALUE "DEPT". 05 FILLER PIC X VALUE SPACES. 05 FILLER PIC X(6) VALUE "ITEM #". 05 FILLER PIC X(3) VALUE SPACES. 05 FILLER PIC X(9) VALUE "ITEM NAME". 05 FILLER PIC X(13) VALUE SPACES. 05 FILLER PIC X(7) VALUE "ON HAND". 05 FILLER PIC X(4) VALUE SPACES. 05 FILLER PIC X(7) VALUE "PRICE". 05 FILLER PIC X(3) VALUE SPACES. 05 FILLER PIC X(11) VALUE "INVEN VALUE". 05 FILLER PIC X(11) VALUE SPACES. PROCEDURE DIVISION. MAINLINE. PERFORM A-100-INITIALIZE. PERFORM B-100-PROCESS. PERFORM C-100-WRAPUP. STOP RUN. A-100-INITIALIZE. OPEN INPUT INPUT-FILE OUTPUT PRINT-FILE. ACCEPT DATE-WS FROM DATE. MOVE YR-WS TO YR-HDR. MOVE MO-WS TO MO-HDR. MOVE DA-WS TO DA-HDR. B-100-PROCESS. READ INPUT-FILE AT END MOVE "NO " TO MORE-RECS. PERFORM B-200-LOOP UNTIL MORE-RECS = "NO ". PERFORM B-320-FINAL-ROUT. B-200-LOOP. PERFORM B-300-DETAIL. READ INPUT-FILE AT END MOVE "NO " TO MORE-RECS. B-300-DETAIL. IF LINE-CT > 50 OR PAGE-NO = 1 PERFORM B-400-HDR-ROUT. MOVE SPACES TO PRINTZ. MOVE DEPT TO DEPT-PR. MOVE ITEM-NO TO ITEM-NO-PR. MOVE ITEM-NAME TO ITEM-NAME-PR. MOVE ON-HAND TO ON-HAND-PR. MOVE PRICE TO PRICE-PR. MULTIPLY ON-HAND BY PRICE GIVING INV-VALUE-WS. MOVE INV-VALUE-WS TO INV-VALUE-PR. WRITE PRINTZ AFTER ADVANCING 1 LINES. ADD 1 TO LINE-CT. ADD ON-HAND TO FINAL-ONHAND-ACC. ADD INV-VALUE-WS TO FINAL-VALUE-ACC. B-320-FINAL-ROUT. MOVE FINAL-ONHAND-ACC TO FINAL-ONHAND-ACC-FL. MOVE FINAL-VALUE-ACC TO FINAL-VALUE-ACC-FL. WRITE PRINTZ FROM FINAL-TOTAL-LINE AFTER ADVANCING 1 LINES. B-400-HDR-ROUT. MOVE PAGE-NO TO PAGE-NO-HDR. WRITE PRINTZ FROM PAGE-HDR AFTER ADVANCING PAGE. WRITE PRINTZ FROM COLUMN-HDR AFTER ADVANCING 2 LINES. PERFORM U-000-BLANK-LINE. ADD 1 TO PAGE-NO. MOVE 4 TO LINE-CT. U-000-BLANK-LINE. MOVE SPACES TO PRINTZ. WRITE PRINTZ AFTER ADVANCING 1 LINES. ADD 1 TO LINE-CT. C-100-WRAPUP. CLOSE INPUT-FILE PRINT-FILE.