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 "A:\OUTTEEX2". 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 " " TO MATCH-IND. PERFORM B-300-SEARCH UNTIL ITEM-SUB > 9 OR MATCH-IND NOT = " ". 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 IF ITEM-NUMBER-TBL (ITEM-SUB) > ITEM-NUMBER-IN MOVE "NO " 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.