IDENTIFICATION DIVISION.
       PROGRAM-ID. TABLSOUP.
       AUTHOR. GROCER.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
       SELECT INPUT-FILE ASSIGN TO "C:\PCOBWIN\TABLES\STUTRAN.DAT".
       SELECT PRINT-FILE ASSIGN TO PRINTER.
       DATA DIVISION.
       FILE SECTION.
       FD  INPUT-FILE
           DATA RECORD IS INPUT-REC.
       01  INPUT-REC.
           05  ORDER-NO        PIC 9999.
           05  ITEM-NUMBER-IN  PIC 99.
       FD  PRINT-FILE
           DATA RECORD IS PRINTZ.
       01  PRINTZ.
           05  FILLER                  PIC X.
           05  ORDER-NO-PR             PIC 9999.
           05  FILLER                  PIC X(10).
           05  ITEM-NUMBER-IN-PR       PIC 99.
           05  FILLER                  PIC X(10).
           05  ITEM-NAME-PR            PIC X(15).
           05  FILLER                  PIC X(38).
       WORKING-STORAGE SECTION.
       01  INDICATORS.
           05  MORE-RECS               PIC XXX     VALUE "YES".
           05  MATCH-IND               PIC XXX     VALUE "NO".
       01  SUBSCRIPTS.
           05  ITEM-SUB                PIC 99      VALUE 0.
       01  TABLE-COMBINED.
           05  FILLER PIC X(17) VALUE "03SEAFOOD CHOWDER".
           05  FILLER PIC X(17) VALUE "12CORN CHOWDER   ".
           05  FILLER PIC X(17) VALUE "15CLAM CHOWDER   ".
           05  FILLER PIC X(17) VALUE "17TOMATO SOUP    ".
           05  FILLER PIC X(17) VALUE "24CHICKEN SOUP   ".
           05  FILLER PIC X(17) VALUE "25VEGETABLE SOUP ".
           05  FILLER PIC X(17) VALUE "27ONION SOUP     ".
           05  FILLER PIC X(17) VALUE "28GREEN PEA SOUP ".
           05  FILLER PIC X(17) VALUE "45WONTON SOUP    ".
       01  RDF-TABLE-COMBINED REDEFINES TABLE-COMBINED.
           05  ENTRIES  OCCURS 9 TIMES.
               10  ITEM-NUMBER-TBL   PIC 99.
               10  ITEM-NAME-TBL     PIC X(15).
       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  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(24) VALUE SPACES.
           05  FILLER          PIC X(11) VALUE "SOUP REPORT".
           05  FILLER          PIC X(23) 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(5)  VALUE "ORDER".
           05  FILLER          PIC X(7)  VALUE SPACES.
           05  FILLER          PIC X(6)  VALUE "ITEM #".
           05  FILLER          PIC X(8)  VALUE SPACES.
           05  FILLER          PIC X(9)  VALUE "ITEM NAME".
           05  FILLER          PIC X(44) 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.
           PERFORM U-000-DATE-ROUT.
       B-100-PROCESS.
           READ INPUT-FILE
               AT END
                   MOVE "NO " TO MORE-RECS.
           PERFORM B-200-LOOP
               UNTIL MORE-RECS = "NO ".
       B-200-LOOP.
           IF LINE-CT > 55 OR PAGE-NO = 1
               PERFORM B-310-HDR-ROUT.
           MOVE SPACES TO PRINTZ.
           MOVE ORDER-NO TO ORDER-NO-PR.
           MOVE ITEM-NUMBER-IN TO ITEM-NUMBER-IN-PR.
           MOVE 1 TO ITEM-SUB.
           MOVE "NO " TO MATCH-IND.
           PERFORM B-300-SEARCH
               UNTIL ITEM-SUB > 9 OR MATCH-IND = "YES".
           IF MATCH-IND = "YES"
               MOVE ITEM-NAME-TBL (ITEM-SUB) TO ITEM-NAME-PR
           ELSE
               MOVE "*** INVALID ***" TO ITEM-NAME-PR.
           WRITE PRINTZ
               AFTER ADVANCING 1 LINES.
           ADD 1 TO LINE-CT.
           READ INPUT-FILE
               AT END
                  MOVE "NO " TO MORE-RECS.
       B-300-SEARCH.
           IF ITEM-NUMBER-IN = ITEM-NUMBER-TBL (ITEM-SUB)
               MOVE "YES" TO MATCH-IND
           ELSE
               ADD 1 TO ITEM-SUB.
       B-310-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-010-BLANK-LINE.
           ADD 1 TO PAGE-NO.
           MOVE 4 TO LINE-CT.
       C-100-WRAPUP.
           CLOSE INPUT-FILE
                 PRINT-FILE.
       U-000-DATE-ROUT.
           ACCEPT DATE-WS FROM DATE.
           MOVE MO-WS TO MO-HDR.
           MOVE DA-WS TO DA-HDR.
           MOVE YR-WS TO YR-HDR.
       U-010-BLANK-LINE.
           MOVE SPACES TO PRINTZ.
           WRITE PRINTZ
               AFTER ADVANCING 1 LINES.