IDENTIFICATION DIVISION. PROGRAM-ID. TWODIM. AUTHOR. GROCER. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT INPUT-FILE ASSIGN TO "C:\PCOBWIN\CIS12FST\TWODIM.DAT". SELECT PRINT-FILE ASSIGN TO PRINTER. DATA DIVISION. FILE SECTION. FD INPUT-FILE DATA RECORD IS INPUT-REC. 01 INPUT-REC. 05 CUST-ID PIC X(4). 05 FROM-CITY PIC 9. 05 TO-CITY PIC 9. FD PRINT-FILE DATA RECORD IS PRINTZ. 01 PRINTZ. 05 FILLER PIC X(4). 05 CUST-ID-PR PIC X(4). 05 FILLER PIC X(15). 05 FROM-CITY-PR PIC X(10). 05 FILLER PIC X(5). 05 TO-CITY-PR PIC X(10). 05 FILLER PIC X(5). 05 FARE-PR PIC $ZZZ.99. 05 FILLER PIC X(20). WORKING-STORAGE SECTION. 01 PROGRAM-INDICATORS. 05 MORE-RECS PIC XXX VALUE "YES". 01 WORK-AREAS. 05 INV-VALUE-WS PIC 9(5)V99 VALUE 0. 01 FROM-CITY-TABLE. 05 FILLER PIC X(10) VALUE "BOSTON ". 05 FILLER PIC X(10) VALUE "PROVIDENCE". 05 FILLER PIC X(10) VALUE "NEW YORK ". 01 RDF-FROM-CITY-TABLE REDEFINES FROM-CITY-TABLE. 05 FROM-CITY-NAME PIC X(10) OCCURS 3 TIMES. 01 TO-CITY-TABLE. 05 FILLER PIC X(10) VALUE "ISTANBUL ". 05 FILLER PIC X(10) VALUE "BUDAPEST ". 05 FILLER PIC X(10) VALUE "FRANKFORT ". 05 FILLER PIC X(10) VALUE "LONDON ". 05 FILLER PIC X(10) VALUE "PRAGUE ". 01 RDF-TO-CITY-TABLE REDEFINES TO-CITY-TABLE. 05 TO-CITY-NAME PIC X(10) OCCURS 5 TIMES. 01 FARE-TABLE. 05 FROM-BOSTON. 10 TO-ISTANBUL PIC 999V99 VALUE 851.00. 10 TO-BUDAPEST PIC 999V99 VALUE 549.50. 10 TO-FRANKFORT PIC 999V99 VALUE 659.95. 10 TO-LONDON PIC 999V99 VALUE 499.00. 10 TO-PRAGUE PIC 999V99 VALUE 498.99. 05 FROM-PROVIDENCE. 10 TO-ISTANBUL PIC 999V99 VALUE 929.00. 10 TO-BUDAPEST PIC 999V99 VALUE 612.75. 10 TO-FRANKFORT PIC 999V99 VALUE 628.99. 10 TO-LONDON PIC 999V99 VALUE 525.00. 10 TO-PRAGUE PIC 999V99 VALUE 550.00. 05 FROM-NEW-YORK. 10 TO-ISTANBUL PIC 999V99 VALUE 799.99. 10 TO-BUDABEST PIC 999V99 VALUE 526.89. 10 TO-FRANKFORT PIC 999V99 VALUE 498.99. 10 TO-LONDON PIC 999V99 VALUE 425.00. 10 TO-PRAGUE PIC 999V99 VALUE 512.00. 01 RDF-FARE-TABLE REDEFINES FARE-TABLE. 05 TO-CITIES OCCURS 3 TIMES. 10 FARE PIC 999V99 OCCURS 5 TIMES. 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(22) VALUE SPACES. 05 FILLER PIC X(16) VALUE "AIR FARE REPORT". 05 FILLER PIC X(20) 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(10) VALUE "PASSENGER ". 05 FILLER PIC X(12) VALUE SPACES. 05 FILLER PIC X(10) VALUE "ORIGINATE ". 05 FILLER PIC X(5) VALUE SPACES. 05 FILLER PIC X(11) VALUE "DESTINATION". 05 FILLER PIC X(6) VALUE SPACES. 05 FILLER PIC X(4) VALUE "FARE". 05 FILLER PIC X(16) VALUE SPACES. PROCEDURE DIVISION. MAINLINE. PERFORM A-100-STARTUP. PERFORM B-100-PROCESS. PERFORM C-100-WRAPUP. STOP RUN. A-100-STARTUP. OPEN INPUT INPUT-FILE OUTPUT PRINT-FILE. PERFORM U000-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. PERFORM B-300-DETAIL. READ INPUT-FILE AT END MOVE "NO " TO MORE-RECS. B-300-DETAIL. IF LINE-CT > 55 OR PAGE-NO = 1 PERFORM B-400-HDR-ROUT. MOVE SPACES TO PRINTZ. MOVE CUST-ID TO CUST-ID-PR. MOVE FROM-CITY-NAME (FROM-CITY) TO FROM-CITY-PR. MOVE TO-CITY-NAME (TO-CITY) TO TO-CITY-PR. MOVE FARE (FROM-CITY, TO-CITY) TO FARE-PR. WRITE PRINTZ AFTER ADVANCING 1 LINES. ADD 1 TO LINE-CT. B-400-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. U000-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. C-100-WRAPUP. CLOSE INPUT-FILE PRINT-FILE. * *Input data: * *111123 *121222 *123433 *212125 *234514 *242511 *272835 * *Output: * * 05/01/99 AIR FARE REPORT PAGE 1 * * PASSENGER ORIGINATE DESTINATION FARE * * 1111 PROVIDENCE FRANKFORT $628.99 * 1212 PROVIDENCE BUDAPEST $612.75 * 1234 NEW YORK FRANKFORT $498.99 * 2121 PROVIDENCE PRAGUE $550.00 * 2345 BOSTON LONDON $499.00 * 2425 BOSTON ISTANBUL $851.00 * 2728 NEW YORK PRAGUE $512.00 *