IDENTIFICATION DIVISION.
       PROGRAM-ID. REPRTGEN.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT VSAM-FILE ASSIGN TO "C:\PCOBWIN\CIS52FST\RPTSCRVS.DAT"
                ORGANIZATION IS INDEXED
                ACCESS IS SEQUENTIAL
                RECORD KEY IS VSAM-KEY.
           SELECT PRINT-FILE ASSIGN TO PRINTER.
       DATA DIVISION.
       FILE SECTION.
       FD VSAM-FILE
          DATA RECORD IS VSAM-REC.
       01 VSAM-REC.
          05  VSAM-KEY.
              10  VSAM-DIV-NO      PIC 99.
              10  VSAM-BR-NO       PIC 99.
              10  VSAM-DEPT-NO     PIC 99.
              10  VSAM-ID-NO       PIC 9999.
          05  VSAM-NAME            PIC X(20).
          05  VSAM-ADR             PIC X(20).
          05  VSAM-CITY            PIC X(15).
          05  VSAM-STATE           PIC XX.
          05  VSAM-ZIP             PIC 9(5).
          05  VSAM-JOB-CODE        PIC X.
          05  VSAM-PAY-HR          PIC 999V99.
          05  VSAM-SALARY          PIC 9(6)V99.
       FD  PRINT-FILE
           REPORT IS EMPLOYEE-REPORT.
       WORKING-STORAGE SECTION.
       01  INDICATORS.
           05  MORE-RECS             PIC XXX        VALUE "YES".
       01  WORK-AREAS.
           05  SALARY-WS             PIC 9(6)V99    VALUE 0.
       01  CONSTANTZ.
           05  HOURS-IN-YEAR         PIC 9999       VALUE 2080.
       REPORT SECTION.
       RD  EMPLOYEE-REPORT
           CONTROLS ARE FINAL
                        VSAM-DIV-NO
                        VSAM-BR-NO
                        VSAM-DEPT-NO
           PAGE LIMIT IS 24 LINES
           HEADING 1
           FIRST DETAIL 5
           LAST DETAIL 15
           FOOTING 19.
       01  TYPE IS PAGE HEADING.
           05  LINE 1.
               10   COLUMN 30   PIC X(15)
                                VALUE "EMPLOYEE REPORT".
           05  LINE 3.
               10  COLUMN 2     PIC XXX            VALUE "DIV".
               10  COLUMN 6     PIC XX             VALUE "BR".
               10  COLUMN 9     PIC XXXX           VALUE "DEPT".
               10  COLUMN 14    PIC XXXX           VALUE "ID #".
               10  COLUMN 20    PIC XXXX           VALUE "NAME".
               10  COLUMN 40    PIC X(6)           VALUE "JOB CD".
               10  COLUMN 47    PIC X(6)           VALUE "PAY/HR".
               10  COLUMN 60    PIC X(6)           VALUE "SALARY".
       01  EMPLOYEE-LINE
           TYPE IS DETAIL
           LINE IS PLUS 1.
           05  COLUMN 3         PIC Z9             SOURCE VSAM-DIV-NO.
           05  COLUMN 6         PIC Z9             SOURCE VSAM-BR-NO.
           05  COLUMN 10        PIC Z9             SOURCE VSAM-DEPT-NO.
           05  COLUMN 14        PIC 9999           SOURCE VSAM-ID-NO.
           05  COLUMN 20        PIC X(20)          SOURCE VSAM-NAME.
           05  COLUMN 43        PIC X              SOURCE VSAM-JOB-CODE.
           05  COLUMN 46        PIC $ZZ.99         SOURCE VSAM-PAY-HR.
           05  COLUMN 55        PIC $$$Z,ZZZ.99    SOURCE SALARY-WS.
       01  DEPT-TOTAL-LINE
           TYPE IS CONTROL FOOTING VSAM-DEPT-NO
           LINE IS PLUS 2
           NEXT GROUP IS PLUS 1.
           05  COLUMN 20        PIC X(21)
                                VALUE "TOTAL FOR DEPARTMENT ".
           05  COLUMN 41        PIC XX             SOURCE VSAM-DEPT-NO.
           05  COLUMN 53        PIC $$,$$Z,ZZZ.99
                                SUM SALARY-WS.
       01  BR-TOTAL-LINE
           TYPE IS CONTROL FOOTING VSAM-BR-NO
           LINE IS PLUS 1
           NEXT GROUP IS PLUS 1.
           05  COLUMN 20        PIC X(17)
                                VALUE "TOTAL FOR BRANCH ".
           05  COLUMN 37        PIC XX            SOURCE VSAM-BR-NO.
           05  COLUMN 52        PIC $$$,$$Z,ZZZ.99
                                SUM SALARY-WS.
       01  DIV-TOTAL-LINE
           TYPE IS CONTROL FOOTING VSAM-DIV-NO
           LINE IS PLUS 1
           NEXT GROUP IS PLUS 1.
           05  COLUMN 20        PIC X(19)
                                VALUE "TOTAL FOR DIVISION ".
           05  COLUMN 39        PIC XX            SOURCE VSAM-DIV-NO.
           05  COLUMN 51        PIC $$$$,$$Z,ZZZ.99
                                SUM SALARY-WS.
       01  FINAL-TOTAL-LINE
           TYPE IS CONTROL FOOTING FINAL
           LINE IS PLUS 1.
           05  COLUMN 20        PIC X(11)
                                VALUE "FINAL TOTAL".
           05  COLUMN 49        PIC $$,$$$,$$Z,ZZZ.99
                                SUM SALARY-WS.

       PROCEDURE DIVISION.
       MAINLINE.
            PERFORM A-100-INITIALIZE.
            PERFORM B-100-PROCESS.
            PERFORM C-100-TERMINATE.
            STOP RUN.
       A-100-INITIALIZE.
            OPEN INPUT VSAM-FILE
                 OUTPUT PRINT-FILE.
            INITIATE EMPLOYEE-REPORT.
       B-100-PROCESS.
            READ VSAM-FILE
                AT END
                    MOVE "NO " TO MORE-RECS.
            PERFORM B-200-LOOP
               UNTIL MORE-RECS = "NO ".
       B-200-LOOP.
            IF VSAM-PAY-HR NOT EQUAL TO 0
                MULTIPLY VSAM-PAY-HR BY HOURS-IN-YEAR
                         GIVING SALARY-WS
            ELSE
                MOVE VSAM-SALARY TO SALARY-WS.
            GENERATE EMPLOYEE-LINE.
            READ VSAM-FILE
                AT END
                    MOVE "NO " TO MORE-RECS.
       C-100-TERMINATE.
           TERMINATE EMPLOYEE-REPORT.
           CLOSE VSAM-FILE
                 PRINT-FILE.