000100 Identification Division. 000200 Program-Id. FREQPGM1. 000300 Environment Division. 000400 Input-Output Section. 000500 File-Control. 000600 Select FREQFILE Assign to FREQFDD 000700 Organization is Indexed 000800 Access is Sequential 000900 Record Key is Flight-Date in File-Record 001000 File Status is Freqfile-Status 001100 . 001200 Select FREQLIST Assign to FREQLDD 001300 Organization is Sequential 001400 Access is Sequential 001500 File Status is Freqlist-Status 001600 . 001700 Data Division. 001800 File Section. 001900 FD FREQFILE. 002000 01 File-Record. 002100 88 End-Of-Freq-File Value High-Value. 002200 05 Pic X(01). 002300 05 Flight-Date Pic X(05). 002400 05 City-Pair Pic X(07). 002500 05 Airline-Id Pic X(02). 002600 05 Flight-Number Pic 9(04). 002700 05 Class-Of-Travel Pic X(01). 002800 05 Mileage Pic 9(05). 002900 05 Pic X(55). 003000 003100 FD FREQLIST Recording mode F. 003200 01 Listrow Pic X(120). 003300 003400*--------------------------------------- 003500 Working-Storage Section. 003600*--------------------------------------- 003700 003800 77 Mileage-Total Pic 9(08) Value 0. 003900 004000 01 Freqfile-Status Pic X(02). 004100 88 Freqfile-Openerror Values '01' thru '99'. 004200 01 Freqlist-Status Pic X(02). 004300 88 Freqlist-Openerror Values '01' thru '99'. 004400 004500 01 List-Blankrow. 004600 05 Pic X(120) Value Spaces. 004700 004800 01 List-Header1. 004900 05 Pic X(35) Value 'Frequent Flyer Report'. 005000 005100 01 List-Header2. 005200 05 Flight-Date Pic X(07) Value 'Date'. 005300 05 Flight-Id Pic X(04) Value 'Id'. 005400 05 Flight-Number Pic X(06) Value 'Fl#'. 005500 05 Class-Of-Travel Pic X(03) Value 'Cl'. 005600 05 City-Pair Pic X(09) Value 'C-Pair'. 005700 05 Mileage Pic X(11) Value 'Mileage'. 005800 005900 01 List-Trailer. 006000 05 Pic X(25) Value 'Total Mileage '. 006100 05 Mileage Pic Z(11). 006200 006300 01 List-Detail. 006400 05 Flight-Date Pic X(05). 006500 05 Pic X(02). 006600 05 Airline-Id Pic X(02). 006700 05 Pic X(02). 006800 05 Flight-Number Pic Z(04). 006900 05 Pic X(02). 007000 05 Class-Of-Travel Pic X(01). 007100 05 Pic X(02). 007200 05 City-Pair Pic X(07). 007300 05 Pic X(02). 007400 05 Mileage Pic Z(07). 007500 007600*--------------------------------------- 007700 Procedure Division. 007800*--------------------------------------- 007900 Display '==> FREQREAD is starting...' 008000 Perform Open-Files 008100 Perform Write-Freq-Headers 008200 Perform Read-Freqfile Until End-Of-Freq-File 008300 Perform Write-Freq-Trailer 008400 Perform Close-Files 008500 Display '==> FREQREAD ended normally' 008600 GoBack 008700 . 008800*------------------------------------- 008900 Read-Freqfile. 009000*------------------------------------- 009100 Read Freqfile 009200 At End 009300 Set End-Of-Freq-File to True 009400 Not At End 009500 Perform Write-Freq-Detail 009600 End-Read 009700 . 009800*------------------------------------- 009900 Write-Freq-Headers. 010000*------------------------------------- 010100 Write Listrow from List-Header1 010200 Write Listrow from List-Blankrow 010300 Write Listrow from List-Header2 010400 Write Listrow from List-Blankrow 010500 . 010600*------------------------------------- 010700 Write-Freq-Trailer. 010800*------------------------------------- 010900 Write Listrow from List-Blankrow 011000 Move Mileage-Total to 011100 Mileage in List-Trailer 011200 Write Listrow from List-Trailer 011300 . 011400*------------------------------------- 011500 Write-Freq-Detail. 011600*------------------------------------- 011700 Move Corr File-Record to List-Detail 011800 Add Mileage in File-Record to 011900 Mileage-Total 012000 012100 Write Listrow from List-Detail 012200 . 012300*------------------------------------- 012400 Open-Files. 012500*------------------------------------- 012600 Open Input FREQFILE 012700 If Freqfile-Openerror 012800 Display '==> Openerror: FREQFILE' 012900 Display '==> Status : ' Freqfile-Status 013000 Move 21 to Return-Code 013100 Goback 013200 End-If 013300 Display '==> FREQFILE is Open' 013400 013500 Open Output FREQLIST 013600 If Freqlist-Openerror 013700 Display '==> Openerror: FREQLIST' 013800 Display '==> Status : ' Freqlist-Status 013900 Move 22 to Return-Code 014000 Goback 014100 End-If 014200 Display '==> FREQLIST is Open' 014300 . 014400*------------------------------------- 014500 Close-Files. 014600*------------------------------------- 014700 Close FREQFILE 014800 FREQLIST 014900 . 015000 End Program FREQPGM1. 015100