IDENTIFICATION DIVISION. PROGRAM-ID. TBLSOUP2. 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 RECORDS ARE 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 RESPONSES. 05 RESPONSE-IN-WS PIC X VALUE SPACES. 01 INDICATORZ. 05 MORE-RECS PIC XXX VALUE "YES". 05 MATCH-IND PIC XXX VALUE "NO". 01 SUBSCRIPTS. 05 SUB-SCR PIC 99 VALUE 1. 05 SUB-ITEM PIC 99 VALUE 1. 01 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. SCREEN SECTION. 01 TABLE-DATA-SCREEN. 05 VALUE "TABLE DATA ENTRY SCREEN" BLANK SCREEN LINE 01 COL 30. 05 VALUE "ITEM NUMBER: " LINE 05 COL 05. 05 ITEM-NUMBER-FOR-TABLE LINE 05 COL 20 PIC 99 TO ITEM-NUMBER-TBL (SUB-SCR). 05 VALUE "ITEM NAME: " LINE 07 COL 05. 05 ITEM-NAME-FOR-TABLE LINE 07 COL 20 PIC X(15) TO ITEM-NAME-TBL (SUB-SCR). 05 VALUE "ENTER P TO PROCESS" LINE 10 COL 05. 05 VALUE "ENTER C TO CANCEL" LINE 12 COL 05. 05 VALUE "ENTER CHOICE" LINE 14 COL 10. 05 TABLE-RESPONSE LINE 14 COL 27 PIC X TO RESPONSE-IN-WS. 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. MOVE 1 TO SUB-SCR. PERFORM U-100-FILL-TABLE UNTIL SUB-SCR > 9. * *NOTE: The MOVE and PERFORM above can be coded here or they *could have been coded as the first two commands in the *B-100-PROCESS paragraph. It depends on whether you consider *filling the table part of the initializing or setting up of the *program or the first part of the processing. * 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 SUB-ITEM. MOVE "NO " TO MATCH-IND. PERFORM B-300-SEARCH UNTIL SUB-ITEM > 9 OR MATCH-IND = "YES". IF MATCH-IND = "YES" MOVE ITEM-NAME-TBL (SUB-ITEM) 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 (SUB-ITEM) MOVE "YES" TO MATCH-IND ELSE ADD 1 TO SUB-ITEM. 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. MOVE SPACES TO PRINTZ. WRITE PRINTZ AFTER ADVANCING 1 LINES. 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-100-FILL-TABLE. DISPLAY TABLE-DATA-SCREEN. ACCEPT TABLE-DATA-SCREEN. IF RESPONSE-IN-WS = "P" ADD 1 TO SUB-SCR. *