ILE COBOL Programmer's Guide

Relative File Creation

This program creates a relative file of summary sales records using sequential access. Each record contains a five-year summary of unit and dollar sales for one week of the year; there are 52 records within the file, each representing one week.

Each input record represents the summary sales for one week of one year. The records for the first week of the last five years (in ascending order) are the first five input records. The records for the second week of the last five years are the next five input records, and so on. Thus, five input records fill one output record.

The RELATIVE KEY for the RELATIVE-FILE is not specified because it is not required for sequential access unless the START statement is used. (For updating, however, the key is INPUT-WEEK.)

Figure 124. Example of a Relative File Program


 5722WDS V5R3M0  030905 LN  IBM ILE COBOL                 CBLGUIDE/UPDTSEQ         ISERIES1   03/09/15 14:48:09        Page      2
                                     S o u r c e
  STMT PL SEQNBR -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN  S COPYNAME   CHG DATE
     1     000100 IDENTIFICATION DIVISION.
     2     000200 PROGRAM-ID.   CRTREL.
           000300
     3     000400 ENVIRONMENT DIVISION.
     4     000500 CONFIGURATION SECTION.
     5     000600 SOURCE-COMPUTER.   IBM-ISERIES
     6     000700 OBJECT-COMPUTER.   IBM-ISERIES
     7     000800 INPUT-OUTPUT SECTION.
     8     000900 FILE-CONTROL.
     9     001000     SELECT RELATIVE-FILE ASSIGN TO DISK-FILED
    11     001100         ORGANIZATION IS RELATIVE
    12     001200         ACCESS IS SEQUENTIAL
    13     001300         FILE STATUS RELATIVE-FILE-STATUS.
    14     001400     SELECT INPUT-FILE ASSIGN TO DISK-FILEC
    16     001500         ORGANIZATION IS SEQUENTIAL
    17     001600         ACCESS IS SEQUENTIAL
    18     001700         FILE STATUS INPUT-FILE-STATUS.
           001800
    19     001900 DATA DIVISION.
    20     002000 FILE SECTION.
    21     002100 FD  RELATIVE-FILE.
    22     002200 01  RELATIVE-RECORD-01.
    23     002300     05  RELATIVE-RECORD OCCURS 5 TIMES INDEXED BY REL-INDEX.
    24     002400         10  RELATIVE-YEAR          PICTURE 99.
    25     002500         10  RELATIVE-WEEK          PICTURE 99.
    26     002600         10  RELATIVE-UNIT-SALES    PICTURE S9(6).
    27     002700         10  RELATIVE-DOLLAR-SALES  PICTURE S9(9)V99.
    28     002800 FD  INPUT-FILE.
    29     002900 01  INPUT-RECORD.
    30     003000     05  INPUT-YEAR                 PICTURE 99.
    31     003100     05  INPUT-WEEK                 PICTURE 99.
    32     003200     05  INPUT-UNIT-SALES           PICTURE S9(6).
    33     003300     05  INPUT-DOLLAR-SALES         PICTURE S9(9)V99.
           003400
    34     003500 WORKING-STORAGE SECTION.
    35     003600 77  RELATIVE-FILE-STATUS           PICTURE XX.
    36     003700 77  INPUT-FILE-STATUS              PICTURE XX.
    37     003800 77  OP-NAME                        PICTURE X(5).
    38     003900 01  WORK-RECORD.
    39     004000     05  WORK-YEAR                  PICTURE 99 VALUE 00.
    40     004100     05  WORK-WEEK                  PICTURE 99.
    41     004200     05  WORK-UNIT-SALES            PICTURE S9(6).
    42     004300     05  WORK-DOLLAR-SALES          PICTURE S9(9)V99.
    43     004400 01  INPUT-END                      PICTURE X VALUE SPACE.
    44     004500     88  THE-END-OF-INPUT           VALUE "E".
           004600
    45     004700 PROCEDURE DIVISION.
    46     004800 DECLARATIVES.
           004900 INPUT-ERROR SECTION.
           005000       USE AFTER STANDARD ERROR PROCEDURE ON INPUT-FILE.
           005100 INPUT-ERROR-PARA.
    47     005200     DISPLAY "UNEXPECTED ERROR ON ", OP-NAME, " FOR INPUT-FILE ".
    48     005300     DISPLAY "FILE STATUS IS ", INPUT-FILE-STATUS.
5722WDS V5R3M0  030905 LN  IBM ILE COBOL                 CBLGUIDE/CRTREL          ISERIES1   03/09/15 14:49:23        Page      3
  STMT PL SEQNBR -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN  S COPYNAME   CHG DATE
    49     005400     DISPLAY "PROCESSING ENDED"
    50     005500     STOP RUN.
           005600
           005700 OUTPUT-ERROR SECTION.
           005800       USE AFTER STANDARD ERROR PROCEDURE ON RELATIVE-FILE.
           005900 OUTPUT-ERROR-PARA.
    51     006000     DISPLAY "UNEXPECTED ERROR ON ", OP-NAME, " FOR RELATIVE-FILE".
    52     006100     DISPLAY "FILE STATUS IS ", RELATIVE-FILE-STATUS.
    53     006200     DISPLAY "PROCESSING ENDED"
    54     006300     STOP RUN.
           006400 END DECLARATIVES.
           006500
           006600 MAIN-PROGRAM SECTION.
           006700 MAINLINE.
    55     006800     MOVE "OPEN" TO OP-NAME.
    56     006900     OPEN INPUT INPUT-FILE
           007000          OUTPUT RELATIVE-FILE.
           007100
    57     007200     SET REL-INDEX TO 1.
    58     007300     MOVE "READ" TO OP-NAME.
    59     007400     READ INPUT-FILE
    60     007500         AT END SET THE-END-OF-INPUT TO TRUE
           007600     END-READ.
           007700
    61     007800     PERFORM UNTIL THE-END-OF-INPUT
    62     007900         MOVE INPUT-RECORD TO RELATIVE-RECORD (REL-INDEX)
    63     008000         IF REL-INDEX NOT = 5
    64     008100             SET REL-INDEX UP BY 1
           008200         ELSE
    65     008300             SET REL-INDEX TO 1
    66     008400             MOVE "WRITE" TO OP-NAME
    67     008500             WRITE RELATIVE-RECORD-01
           008600         END-IF
           008700
    68     008800         MOVE "READ" TO OP-NAME
    69     008900         READ INPUT-FILE
    70     009000             AT END SET THE-END-OF-INPUT TO TRUE
           009100         END-READ
           009200     END-PERFORM.
           009300
    71     009400     CLOSE RELATIVE-FILE
           009500           INPUT-FILE.
    72     009600     STOP RUN.
           009700
                           * * * * *   E N D   O F   S O U R C E   * * * * *


[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]