Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>The version of B900 with the search statement should work, but B900 is called, and only called once, from A000. Move the PERFORM B900 statement to B300 and you should collect a count for each record read. </p> <p>Also, T2-TERRITORY-COUNTER is initialized with spaces. Please initialize it with zeros. Depending on your compiler, it might not make a difference, but it is easier to understand the intent of the variable if it starts from zero.</p> <p><strong>* update *</strong> Your updated code still has spaces for T2-TERRITORY-COUNTER. Perhaps the following will help. It is based on your code, but some parts were removed to make the relevant parts easier to see. The code below works for GNU Cobol (formerly OpenCobol - see sourceforge.net). <code></p> <pre><code> IDENTIFICATION DIVISION. PROGRAM-ID. COUNT-TERRITORY. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT POLICY-FILE ASSIGN TO 'POLICY.DAT' FILE STATUS IS POLICY-FILE-STATUS ORGANIZATION IS LINE SEQUENTIAL. SELECT REPORT-FILE ASSIGN TO 'POLICY.RPT' FILE STATUS IS REPORT-FILE-STATUS ORGANIZATION IS LINE SEQUENTIAL. DATA DIVISION. FILE SECTION. FD POLICY-FILE. 01 POLICY-RECORD PIC X(20). FD REPORT-FILE. 01 REPORT-RECORD PIC X(132). WORKING-STORAGE SECTION. 01 IS-POLICY-FILE-AT-END PIC XXX VALUE 'NO '. 88 POLICY-FILE-AT-END VALUE 'YES'. 01 POLICY-FILE-STATUS PIC 9(2). 88 POLICY-FILE-OK VALUES 0 10. * VALUE 00 = SUCCESS * VALUE 10 = END OF FILE 01 REPORT-FILE-STATUS PIC 9(2). 88 REPORT-FILE-OK VALUES 0 10. * VALUE 00 = SUCCESS * VALUE 10 = END OF FILE 01 RECORD-TYPE-94. 05 REC-94-TYPE PIC X(2). 88 INCLUDED-RECORD-TYPE VALUE '94'. 05 REC-94-POLICY-NUMBER PIC X(8). 05 FILLER PIC X(5). 05 REC-94-PARISH-CODE PIC X(3). 05 FILLER PIC X(1). 05 REC-94-TERRITORY-CODE PIC X(1). 01 T2-TERRITORY-COUNT. 05 FILLER PIC X(4) VALUE '1000'. 05 FILLER PIC X(4) VALUE '2000'. 05 FILLER PIC X(4) VALUE '3000'. 05 FILLER PIC X(4) VALUE '4000'. 05 FILLER PIC X(4) VALUE '5000'. 05 FILLER PIC X(4) VALUE '6000'. 05 FILLER PIC X(4) VALUE '7000'. 05 FILLER PIC X(4) VALUE '8000'. 05 FILLER PIC X(4) VALUE '9000'. 01 T2-TERRITORY-TABLE REDEFINES T2-TERRITORY-COUNT. 05 T2-ENTRY OCCURS 9 TIMES INDEXED BY T2-INDEX. 10 T2-TERRITORY-CODE PIC X. 10 T2-TERRITORY-COUNTER PIC 999. PROCEDURE DIVISION. A000-MAINLINE. PERFORM B000-OPENING-PROCEDURE PERFORM B200-READ-FILE PERFORM B300-MAIN-PROCEDURE UNTIL POLICY-FILE-AT-END PERFORM C100-WRITE-TERRITORY-COUNTS PERFORM B100-CLOSING-PROCEDURE STOP RUN . B000-OPENING-PROCEDURE. OPEN INPUT POLICY-FILE OPEN OUTPUT REPORT-FILE . B100-CLOSING-PROCEDURE. CLOSE POLICY-FILE CLOSE REPORT-FILE . B200-READ-FILE. READ POLICY-FILE INTO RECORD-TYPE-94 AT END SET POLICY-FILE-AT-END TO TRUE PERFORM D100-CHECK-POLICY-FILE-STATUS . B300-MAIN-PROCEDURE. IF INCLUDED-RECORD-TYPE PERFORM B900-COUNT-POLICIES ELSE WRITE REPORT-RECORD FROM RECORD-TYPE-94 PERFORM D200-CHECK-REPORT-FILE-STATUS END-IF PERFORM B200-READ-FILE . B900-COUNT-POLICIES. SET T2-INDEX TO 1 SEARCH T2-ENTRY AT END DISPLAY 'TERRITORY ' REC-94-TERRITORY-CODE ' UNKNOWN' WHEN REC-94-TERRITORY-CODE = T2-TERRITORY-CODE (T2-INDEX) ADD 1 TO T2-TERRITORY-COUNTER (T2-INDEX) END-SEARCH . C100-WRITE-TERRITORY-COUNTS. MOVE SPACES TO REPORT-RECORD WRITE REPORT-RECORD PERFORM D200-CHECK-REPORT-FILE-STATUS PERFORM VARYING T2-INDEX FROM 1 BY 1 UNTIL T2-INDEX &gt; 9 STRING 'POLICY COUNT FOR TERRITORY ' T2-TERRITORY-CODE (T2-INDEX) ': ' T2-TERRITORY-COUNTER (T2-INDEX) INTO REPORT-RECORD WRITE REPORT-RECORD PERFORM D200-CHECK-REPORT-FILE-STATUS END-PERFORM . D100-CHECK-POLICY-FILE-STATUS. IF NOT POLICY-FILE-OK DISPLAY 'ERROR CODE READING POLICY FILE: ' POLICY-FILE-STATUS END-IF . D200-CHECK-REPORT-FILE-STATUS. IF NOT REPORT-FILE-OK DISPLAY 'ERROR CODE WRITING REPORT FILE: ' POLICY-FILE-STATUS END-IF . </code></pre> <p></code></p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload