000010 IDENTIFICATION DIVISION. 000020 PROGRAM-ID. POLICY. 000030 AUTHOR. J.P.E. HODGSON. 000040 DATE-WRITTEN. 11 February 2000 000050 000060* A sample program just to show the form. 000070* It uses the input file for homework 2 000071* but only looks at the first policy. 000072* Skeleton headers and summary line are printed. 000080 000090 ENVIRONMENT DIVISION. 000120 INPUT-OUTPUT SECTION. 000130 FILE-CONTROL. 000140 SELECT POLICY-FILE ASSIGN TO SYSIN 000150 ORGANIZATION IS LINE SEQUENTIAL. 000160 SELECT PRINT-FILE ASSIGN TO SYSOUT 000170 ORGANIZATION IS LINE SEQUENTIAL. 000180 000190 DATA DIVISION. 000200 FILE SECTION. 000210 FD POLICY-FILE 000220 RECORD CONTAINS 81 CHARACTERS 000230 DATA RECORD IS POLICY-DATA-IN. 000240 01 POLICY-DATA-IN. 000241 05 CUSTOMER-NUMBER-IN PIC X(8). 000242 05 FILLER PIC X. 000243 05 FIRST-POLICY-TYPE PIC XX. 000244 05 FIRST-POLICY-EFF-DATE PIC X(8). 000245 05 FIRST-POLICY-EXP-DATE PIC X(8). 000246 05 FILLER PIC X(36). 000247 05 FIRST-POLICY-PREMIUM PIC 9(5). 000248 05 FILLER PIC X(13). 000250 000260 FD PRINT-FILE 000270 RECORD CONTAINS 80 CHARACTERS 000280 DATA RECORD IS PRINT-LINE. 000290 01 PRINT-LINE PIC X(80). 000300 000310 WORKING-STORAGE SECTION. 000320 01 DATA-REMAINS-SWITCH PIC X(2) VALUE SPACES. 000330 01 RECORDS-WRITTEN PIC 99 VALUE ZERO. 000340 000341 01 HEADER-01. 000342 05 FILLER PIC X(10) VALUE SPACES. 000343 05 FILLER PIC X(10) 000344 VALUE "HEADER ONE". 000345 05 FILLER PIC X(60) VALUE SPACES. 000346 01 HEADER-02. 000347 05 FILLER PIC X(10) VALUE SPACES. 000348 05 FILLER PIC X(10) 000349 VALUE "HEADER TWO". 000350 05 FILLER PIC X(60) VALUE SPACES. 000351 000352 01 HEADER-03. 000353 05 FILLER PIC X(10) VALUE SPACES. 000354 05 FILLER PIC X(10) 000355 VALUE "HEADER 003". 000356 05 FILLER PIC X(60) VALUE SPACES. 000357 000358 01 HEADER-04. 000359 05 FILLER PIC X(10) VALUE SPACES. 000360 05 FILLER PIC X(10) 000361 VALUE "HEADER 004". 000362 05 FILLER PIC X(60) VALUE SPACES. 000363 000364* NOTE THAT THE PICTURE VALUES HERE ARE NOT 000365* QUITE ACCORDING TO THE OUTPUT SPECS. 000366* I NEED TO LEAVE YOU SOMETHING TO DO! 000368 01 DETAIL-LINE. 000369 05 FILLER PIC X VALUE SPACE. 000379 05 DL-CUSTOMER-NO PIC X(8). 000380 05 FILLER PIC X(5) VALUE SPACES. 000389 05 DL-EFF-DATE PIC X(8). 000399 05 FILLER PIC X(5) VALUE SPACES. 000409 05 DL-EXP-DATE PIC X(8). 000419 05 FILLER PIC X(5) VALUE SPACES. 000429 05 DL-PREMIUM PIC 9(5). 000439 05 FILLER PIC X(35) VALUE SPACES. 000449 000450 01 SUMMARY-LINE. 000459 05 FILLER PIC X(7) VALUE SPACES. 000469 05 TOTAL-READ PIC 99. 000479 05 FILLER PIC X VALUE SPACE. 000489 05 FILLER PIC X(25) 000499 VALUE 'Group policies were found'. 000509 05 FILLER PIC X(45) VALUE SPACES. 000519 000529 000539 PROCEDURE DIVISION. 000549 000559 PREPARE-POLICY-REPORT. 000569 OPEN INPUT POLICY-FILE 000579 OUTPUT PRINT-FILE. 000589 PERFORM WRITE-HEADINGS. 000590 READ POLICY-FILE 000591 AT END MOVE 'NO' TO DATA-REMAINS-SWITCH 000592 END-READ. 000593 PERFORM PROCESS-RECORDS 000594 UNTIL DATA-REMAINS-SWITCH = 'NO'. 000595 PERFORM PRINT-SUMMARY. 000596 CLOSE POLICY-FILE PRINT-FILE. 000597 STOP RUN. 000598 000599 WRITE-HEADINGS. 000600 MOVE HEADER-01 TO PRINT-LINE. 000601 WRITE PRINT-LINE. 000602 MOVE HEADER-02 TO PRINT-LINE. 000603 WRITE PRINT-LINE. 000604 MOVE SPACES TO PRINT-LINE. 000605 WRITE PRINT-LINE. 000606 MOVE HEADER-03 TO PRINT-LINE. 000607 WRITE PRINT-LINE. 000608 MOVE HEADER-04 TO PRINT-LINE. 000609 WRITE PRINT-LINE. 000612 000613 PROCESS-RECORDS. 000614 IF FIRST-POLICY-TYPE = 'GL' 000615 MOVE CUSTOMER-NUMBER-IN TO DL-CUSTOMER-NO 000616 MOVE FIRST-POLICY-EFF-DATE TO DL-EFF-DATE 000617 MOVE FIRST-POLICY-EXP-DATE TO DL-EXP-DATE 000618 MOVE FIRST-POLICY-PREMIUM TO DL-PREMIUM 000619 MOVE DETAIL-LINE TO PRINT-LINE 000620 WRITE PRINT-LINE 000621 ADD 1 TO RECORDS-WRITTEN 000622 END-IF. 000623 READ POLICY-FILE 000624 AT END MOVE 'NO' TO DATA-REMAINS-SWITCH 000625 END-READ. 000626 000627 PRINT-SUMMARY. 000628 MOVE SPACES TO PRINT-LINE. 000629 WRITE PRINT-LINE. 000630 MOVE RECORDS-WRITTEN TO TOTAL-READ. 000631 MOVE SUMMARY-LINE TO PRINT-LINE. 000632 WRITE PRINT-LINE. 000633 000634 000635 000636 000637