SORTING


       IDENTIFICATION DIVISION.
       PROGRAM-ID. SORT ER.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT INFILE ASSIGN TO DISK
           ORGANIZATION IS LINE SEQUENTIAL.
           SELECT OUTFILE ASSIGN TO DISK
           ORGANIZATION IS LINE SEQUENTIAL.
           SELECT OUTFILE1 ASSIGN TO DISK
           ORGANIZATION IS LINE SEQUENTIAL.
           SELECT SORTFILE ASSIGN TO DISK
           ORGANIZATION IS LINE SEQUENTIAL.
       DATA DIVISION.
       FILE SECTION.
       FD INFILE
           LABEL RECORDS ARE STANDARD
           VALUE OF FILE-ID IS "ERINN.TXT".
       01 INREC.
           02 ENO PIC 9(3).
           02 ENAME PIC X(20).
           02 NHW PIC 9(2).
           02 PR PIC 9(2).
       FD OUTFILE
           LABEL RECORDS ARE STANDARD
           VALUE OF FILE-ID IS "EROUT.TXT".
       01 OUTREC.
           02 ENO1 PIC 9(3).
           02 ENAME1 PIC X(20).
           02 NHW1 PIC 9(2).
           02 PR1 PIC 9(2).
       SD SORTFILE
           DATA RECORD IS SORTREC.
       01 SORTREC.
           02 SENO PIC 9(3).
           02 SENAME PIC X(20).
           02 SNHW PIC 9(2).
           02 SPR PIC 9(2).
       FD OUTFILE1
           LABEL RECORDS ARE STANDARD
           VALUE OF FILE-ID IS "EROUT1.TXT".
       01 OUTREC1 PIC X(80).

       WORKING-STORAGE SECTION.
           77 CH PIC X(1).
           77 YTD PIC 9(6).
           77 EOF PIC X VALUE 'N'.
       01 H1.
           02 F PIC X(3) VALUE SPACES.
           02 F PIC X(13) VALUE "SALARY REPORT".
       01 H2.
           02 F PIC X(3) VALUE SPACES.
           02 F PIC X(79) VALUE ALL " ".
       01 H3.
           02 F PIC X(90) VALUE ALL " ".
       01 H4.
           02 F PIC X(3) VALUE SPACES.
           02 F PIC X(7) VALUE "EMP NO".
           02 F PIC X(4) VALUE SPACES.
           02 F PIC X(8) VALUE "EMP NAME".
           02 F PIC X(3) VALUE SPACES.
           02 F PIC X(4) VALUE "NHW".
           02 F PIC X(4) VALUE SPACES.
           02 F PIC X(10) VALUE "PAY RATE".
           02 F PIC X(3) VALUE SPACES.
           02 F PIC X(4) VALUE "YTDV".
       01 H5.
           02 F PIC X(13) VALUE SPACES.
           02 ONO PIC 9(3).
           02 F PIC X(4) VALUE SPACES.
           02 ONAME PIC X(20) VALUE SPACES.
           02 F PIC X(4) VALUE SPACES.
           02 ONHW PIC 9(3).
           02 F PIC X(4) VALUE SPACES.
           02 OPR PIC 9(10).
           02 F PIC X(4) VALUE SPACES.
           02 OYTD PIC Z(6).
       01 H6.
           02 F PIC X(4) VALUE SPACES.
           02 F PIC X(10) VALUE "TOTAL YTD".
           02 OTYTD PIC 9(7).
       77 TYTD PIC 9(7).
       PROCEDURE DIVISION.
       MAIN-PARA.
           OPEN OUTPUT INFILE.
           PERFORM INPUT-PARA UNTIL CH = 'N'.
           CLOSE INFILE.
           PERFORM SORT-PARA.
           OPEN INPUT OUTFILE OUTPUT OUTFILE1.
           WRITE OUTREC1 FROM H1.
           WRITE OUTREC1 FROM H2.
           WRITE OUTREC1 FROM H3.
           WRITE OUTREC1 FROM H4.
           READ OUTFILE AT END MOVE 'Y' TO EOF.
           PERFORM READ-PARA UNTIL EOF = 'Y'.
           WRITE OUTREC1 FROM H2.
           MOVE TYTD TO OTYTD.
           WRITE OUTREC1 FROM H6.
           CLOSE OUTFILE, OUTFILE1.
           STOP RUN.
       INPUT-PARA.
           DISPLAY "ENTER THE EMP NO".
           ACCEPT ENO.
           DISPLAY "ENTER THE EMP NAME".
           ACCEPT ENAME.
           DISPLAY "ENTER THE NO.OF HOURS WORKED".
           ACCEPT NHW.
           DISPLAY "ENTER THE PAY RATE".
           ACCEPT PR.
           WRITE INREC.
           DISPLAY "DO YOU WANT TO CONTINUE (Y/N).
           ACCEPT CH.
           MOVE 0 TO TYTD.
       SORT-PARA.
           SORT SORTFILE ON ASCENDING KEY
           SENO USING INFILE GIVING OUTFILE.
       READ-PARA.
           COMPUTE YTD = NHW1 * PR1.
           COMPUTE TYTD = TYTD + YTD.
           MOVE ENO1 TO ONO.
           MOVE ENAME1 TO ONAME.
           MOVE NHW1 TO ONHW.
           MOVE PR1 TO OPR.
           MOVE YTD TO OYTD.
           WRITE OUTREC1 FROM H5.
           READ OUTFILE AT END MOVE 'Y' TO EOF.

No comments:

Related Posts with Thumbnails