IDENTIFICATION DIVISION.
       PROGRAM-ID.  PROGRAM4.
       AUTHOR.  GROCER.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       SELECT VSAM-FILE
           ASSIGN TO "C:\PCOBWIN\VSAMPROJ\VSAMPROJ.DAT"
           ORGANIZATION IS INDEXED
           ACCESS IS RANDOM
           RECORD KEY IS VSAM-STUDENT-ID
           ALTERNATE RECORD KEY IS
               VSAM-STUDENT-NAME WITH DUPLICATES.
       SELECT PRINT-FILE ASSIGN TO PRINTER.
      * COMMENTS:
      * This program read the records in an indexed file randomly
      * using the prime key.
      * The key structure described in the program must be the same
      * as the key structure that exists on the file.  So, even though
      * I am not using any of the keys, I must describe them in the
      * SELECT statement.
       DATA DIVISION.
       FILE SECTION.
       FD  VSAM-FILE
           DATA RECORD IS VSAM-REC.
       01  VSAM-REC.
           05  VSAM-STUDENT-ID          PIC XXXX.
           05  VSAM-STUDENT-NAME        PIC X(20).
           05  VSAM-STUDENT-MAJOR       PIC XXX.
           05  VSAM-STUDENT-SEM-ENTER   PIC X.
           05  VSAM-STUDENT-YR-ENTER    PIC 9999.
       FD  PRINT-FILE
           DATA RECORD IS PRINTZ.
       01  PRINTZ.
           05  FILLER                      PIC X.
           05  VSAM-STUDENT-ID-PR          PIC X(4).
           05  FILLER                      PIC X(2).
           05  VSAM-STUDENT-NAME-PR        PIC X(20).
           05  FILLER                      PIC X(2).
           05  VSAM-STUDENT-MAJOR-PR       PIC XXX.
           05  FILLER                      PIC X(2).
           05  VSAM-STUDENT-SEM-ENTER-PR   PIC X.
           05  FILLER                      PIC X(2).
           05  VSAM-STUDENT-YR-ENTER-PR    PIC 9999.
           05  FILLER                      PIC X(2).
           05  PROCESSING-MSG-PR           PIC X(20).
           05  FILLER                      PIC X(18).
       WORKING-STORAGE SECTION.
       01  INDICATORS.
           05  EOF-IND          PIC XXX          VALUE "NO ".
       01  HOLD-AREAS.
           05  ID-ANS           PIC XXXX         VALUE SPACES.
           05  RESPONSE-ANS     PIC X            VALUE SPACES.
           05  ANY-KEY-ANS      PIC X            VALUE SPACES.
           05  ANY-KEY-ERR-ANS  PIC X            VALUE SPACES.
       SCREEN SECTION.
       01  ENTER-SELECTION-SCREEN.
           05  VALUE "DATA ENTRY SCREEN"         BLANK SCREEN
                                                 LINE 02 COL 20.
           05  VALUE "ENTER THE ID TO RETRIEVE:" LINE 05 COL 05.
           05  ENTRY-PT-SCR                      LINE 05 COL 35
                   PIC XXXX   TO ID-ANS.
           05  VALUE "P - TO PROCESS"            LINE 10 COL 20.
           05  VALUE "C - TO CANCEL"             LINE 11 COL 20.
           05  VALUE "Q - TO QUIT"               LINE 12 COL 20.
           05  VALUE "ENTER CHOICE:"             LINE 14 COL 20.
           05  RESPONSE-ANS-SCR                  LINE 14 COL 35
                   PIC X      TO RESPONSE-ANS.
       01  INFORMATION-SCREEN.
           05  VALUE "DATA RECORD SCREEN"        BLANK SCREEN
                                                 LINE 02 COL 20.
           05  VALUE "ID #:"                     LINE 05 COL 05.
           05  ID-SCR                            LINE 05 COL 15
                      PIC XXXX  FROM VSAM-STUDENT-ID.
           05  VALUE "NAME:"                     LINE 07 COL 05.
           05  NAME-SCR                          LINE 07 COL 15
                      PIC X(20) FROM VSAM-STUDENT-NAME.
           05  VALUE "MAJOR:"                    LINE 09 COL 05.
           05  MAJOR-SCR                         LINE 09 COL 15
                      PIC XXX   FROM VSAM-STUDENT-MAJOR.
           05  VALUE "ENTRANCE:"                 LINE 11 COL 05.
           05  VALUE "SEMESTER:"                 LINE 12 COL 10.
           05  SEM-SCR                           LINE 12 COL 20
                      PIC X     FROM VSAM-STUDENT-SEM-ENTER.
           05  VALUE "YEAR:"                     LINE 12 COL 23.
           05  YEAR-SCR                          LINE 12 COL 30
                      PIC 9999  FROM VSAM-STUDENT-YR-ENTER.
           05  VALUE "PRESS ANY KEY TO CONTINUE" LINE 15 COL 05.
           05  ANY-KEY-SCR                       LINE 15 COL 40
                      PIC X     TO ANY-KEY-ANS.
       01  ERROR-MESSAGE-SCREEN.
           05  VALUE "RECORD NOT FOUND"          BLANK SCREEN
                                                 LINE 02 COL 20.
           05  VALUE "ID #:"                     LINE 05 COL 05.
           05  ID-ERR-SCR                        LINE 05 COL 15
                      PIC XXXX  FROM ID-ANS.
           05  VALUE "PRESS ANY KEY TO CONTINUE" LINE 10 COL 05.
           05  ANY-KEY-ERR-SCR                   LINE 10 COL 40
                      PIC X     TO ANY-KEY-ERR-ANS.
       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.
       B-100-PROCESS.
           DISPLAY ENTER-SELECTION-SCREEN.
           ACCEPT ENTER-SELECTION-SCREEN.
           PERFORM B-200-LOOP
               UNTIL RESPONSE-ANS = "Q".
       B-200-LOOP.
           IF RESPONSE-ANS = "P"
               READ VSAM-FILE
                   INVALID KEY
                      DISPLAY ERROR-MESSAGE-SCREEN
                      ACCEPT ERROR-MESSAGE-SCREEN
                      DISPLAY INFORMATION-SCREEN
                      ACCEPT INFORMATION-SCREEN
                      PERFORM B-300-DETAIL
               END-READ.
           DISPLAY ENTER-SELECTION-SCREEN.
           ACCEPT ENTER-SELECTION-SCREEN.
       B-300-DETAIL.
           MOVE SPACES TO PRINTZ.
           MOVE VSAM-STUDENT-ID TO VSAM-STUDENT-ID-PR.
           MOVE VSAM-STUDENT-NAME TO VSAM-STUDENT-NAME-PR.
           MOVE VSAM-STUDENT-MAJOR TO VSAM-STUDENT-MAJOR-PR.
           MOVE VSAM-STUDENT-SEM-ENTER TO VSAM-STUDENT-SEM-ENTER-PR.
           MOVE VSAM-STUDENT-YR-ENTER TO VSAM-STUDENT-YR-ENTER-PR.
           WRITE PRINTZ
               AFTER ADVANCING 1 LINES.
       C-100-TERMINATE.
           CLOSE VSAM-FILE
                 PRINT-FILE.