2

地域コードに基づいて、各地域にいくつのポリシーがあるかを調べる必要があります。そのため、レコードで地域を見つけるたびに、テーブル内のその地域のカウントをインクリメントする必要があり、それを出力に移動できます。以下のレコードに基づいて、各地域のポリシーをカウントする方法がわかりません。いろいろ試してみましたが、何もうまくいかないようです。

さらに詳しい情報が必要な場合は、お知らせください。

以下は、定義とレコードからの抜粋です (合計 57 レコード)

rec-94タイプの写真 x(2)
rec-94-policy-number pic x(8)
フィラー写真 x(5)
rec-94-parish-code 写真 x(3)
フィラー写真 x(1)
rec-94-territory-code pic x(1)

94A 018517 080 1       
94A 027721 090 1      
94A 036470 250 6

94A 049137 010 1  
……

私の最近の試み:

05  T2-TERRITORY-COUNT.                                    
  10  FILLER                   PIC X(4) VALUE '1   '.    
  10  FILLER                   PIC X(4) VALUE '2   '.    
  10  FILLER                   PIC X(4) VALUE '3   '.    
  10  FILLER                   PIC X(4) VALUE '4   '.    
  10  FILLER                   PIC X(4) VALUE '5   '.    
  10  FILLER                   PIC X(4) VALUE '6   '.    
  10  FILLER                   PIC X(4) VALUE '7   '.    
  10  FILLER                   PIC X(4) VALUE '8   '.    
  10  FILLER                   PIC X(4) VALUE '9   '.    

05  T2-TERRITORY-TABLE REDEFINES T2-TERRITORY-COUNT.       
  10  T2-ENTRY                 OCCURS 9 TIMES            
                                 INDEXED BY T2-INDEX.    
      15 T2-TERRITORY-CODE       PIC X.                  
      15 T2-TERRITORY-COUNTER    PIC 999. 

A000-MAINLINE.                                     

 PERFORM B000-OPENING-PROCEDURE.                
 PERFORM B600-PRINT-HEADINGS.                   
 PERFORM B200-READ-FILE.                        
 PERFORM B300-MAIN-PROCEDURE                    
      UNTIL END-OF-FILE-SW = 'YES'.             
 PERFORM B800-MOVE-TERRITORY-CODE               
      VARYING T2-INDEX FROM 1 BY 1              
      UNTIL T2-INDEX > 9.                       

 PERFORM B110-MOVE-COUNTS                       
 PERFORM B100-CLOSING-PROCEDURE.                
 STOP RUN.                                      



   B000-OPENING-PROCEDURE.                                      
         OPEN OUTPUT REPORT-FILE.                               
         OPEN OUTPUT PRINT-FILE.                                
         OPEN INPUT INPUT-FILE.                                 

   B100-CLOSING-PROCEDURE.                                      
        PERFORM B500-PRINT-TOTAL-LINE.                         
        CLOSE REPORT-FILE.                                     
        CLOSE PRINT-FILE.                                      
        CLOSE INPUT-FILE.                                      

   B200-READ-FILE.                                              
        READ INPUT-FILE INTO RECORD-TYPE-94                    
            AT END MOVE 'YES' TO END-OF-FILE-SW.   

    B300-MAIN-PROCEDURE.                               
          IF REC-94-TYPE = "94"                        
                PERFORM B400-SEARCH-TERRITORY           
                PERFORM B900-COUNT-POLICIES             
           ELSE                                         
                 WRITE REPORT-RECORD FROM RECORD-TYPE-94   
           END-IF.                                      
           ADD 1 TO A-LINE-COUNT.                       
           PERFORM B200-READ-FILE.                      


     B400-SEARCH-TERRITORY.                                         
          SET T1-INDEX TO 1.                                        
          SEARCH T1-ENTRY                                           
               AT END                                               
                    DISPLAY 'PARISH NOT FOUND IN TABLE'             
                    CALL 'CEE3ABD' USING BY VALUE 12 BY VALUE 1     
               WHEN                                                 
                    REC-94-PARISH-CODE = T1-PARISH(T1-INDEX)        
                    MOVE T1-TERRITORY(T1-INDEX) TO  
                        REC-94-TERRITORY-CODE                      
                   ADD 1 TO A-DISK-COUNTER                         
                   PERFORM B700-MOVE-RECORDS                       
         END-SEARCH.                                               

    B500-PRINT-TOTAL-LINE.                                         
          MOVE A-LINE-COUNT TO TOTAL-RECORDS.                      
          MOVE A-DISK-COUNTER TO TOTAL-POLICIES.                   
          WRITE PRINT-RECORD FROM TOTAL-LINE.                      

    B600-PRINT-HEADINGS.                                           
          ADD 1 TO A-PAGE-COUNT.                                   
          MOVE A-PAGE-COUNT TO PRINT-PAGE-NUMBER.                  
          WRITE PRINT-RECORD FROM HEADER.                          
          WRITE PRINT-RECORD FROM HEADER-LINE-2.                   
          WRITE PRINT-RECORD FROM COLUMN-LINE.                     

    B700-MOVE-RECORDS.    
           MOVE REC-94-TYPE TO REC-94-TYPE-OUT                     
           MOVE REC-94-POLICY-NUMBER TO REC-94-POLICY-NUMBER-OUT   
           MOVE REC-94-PARISH-CODE TO REC-94-PARISH-CODE-OUT       
           MOVE REC-94-TERRITORY-CODE TO REC-94-TERRITORY-CODE-OUT 
           WRITE REPORT-RECORD FROM TRNREC94-OUT.                  

     B800-MOVE-TERRITORY-CODE.                                     
          MOVE T2-TERRITORY-CODE(T2-INDEX) TO DET-TERRITORY.       
          WRITE PRINT-RECORD FROM DETAIL-LINE.                     


     B900-COUNT-POLICIES.                                  
           MOVE ZEROES TO T2-TERRITORY-COUNTER(T2-INDEX).   
           SET T2-INDEX TO 1.                               
           SEARCH T2-ENTRY                                  
                 AT END                                       
                        DISPLAY 'NO POLICIES FOUND.'            
                 WHEN                                         
                        REC-94-TERRITORY-CODE =                 
                              T2-TERRITORY-CODE(T2-INDEX)        
                        ADD 1 TO T2-TERRITORY-COUNTER(T2-INDEX) 
            END-SEARCH.

          MOVE T2-TERRITORY-COUNTER(T2-INDEX) TO DET-NUMBER-POLICIES.
          WRITE PRINT-RECORD FROM DETAIL-LINE. 

ポインタまたはこれに進むための正しい方向性をいただければ幸いです..事前に感謝します!

私の最終的なコード:

        PERFORM B000-OPENING-PROCEDURE.                              
        PERFORM B600-PRINT-HEADINGS.                                 
        PERFORM B200-READ-FILE.                                      
        PERFORM B300-MAIN-PROCEDURE                                  
             UNTIL END-OF-FILE-SW = 'YES'.                           
        PERFORM C100-MOVE-COUNTS                                     
             VARYING T2-INDEX FROM 1 BY 1                            
             UNTIL T2-INDEX > 9.                                     
        PERFORM B100-CLOSING-PROCEDURE.                              
        STOP RUN.                                                    

    B000-OPENING-PROCEDURE.                                          
          OPEN OUTPUT REPORT-FILE.                                   
          OPEN OUTPUT PRINT-FILE.                                    
          OPEN INPUT INPUT-FILE.                                     

    B100-CLOSING-PROCEDURE.                                          
          PERFORM B500-PRINT-TOTAL-LINE.  
          CLOSE REPORT-FILE.                                         
          CLOSE PRINT-FILE.                                          
          CLOSE INPUT-FILE.                                          

    B200-READ-FILE.                                                  
          READ INPUT-FILE INTO RECORD-TYPE-94                        
               AT END MOVE 'YES' TO END-OF-FILE-SW.                  

    B300-MAIN-PROCEDURE.                                             
          IF REC-94-TYPE = "94"                                      
               PERFORM B400-SEARCH-TERRITORY                         
          ELSE                                                       
             WRITE REPORT-RECORD FROM RECORD-TYPE-94                 
          END-IF.                                                    
          ADD 1 TO A-LINE-COUNT.                                     
          PERFORM B200-READ-FILE. 
     B400-SEARCH-TERRITORY.                                          
          SET T1-INDEX TO 1.                                         
          SEARCH T1-ENTRY                                            
               AT END                                                
                    DISPLAY 'PARISH NOT FOUND IN TABLE'              
                    CALL 'CEE3ABD' USING BY VALUE 12 BY VALUE 1      
               WHEN                                                  
                    REC-94-PARISH-CODE = T1-PARISH(T1-INDEX)         
                    MOVE T1-TERRITORY(T1-INDEX) TO                   
                         REC-94-TERRITORY-CODE                       
                    ADD 1 TO A-DISK-COUNTER                          
                    PERFORM B700-MOVE-RECORDS                        
                    PERFORM B900-COUNT-POLICIES                      
          END-SEARCH.                                                

     B500-PRINT-TOTAL-LINE.                                          
           MOVE A-LINE-COUNT TO TOTAL-RECORDS.                       
           MOVE A-DISK-COUNTER TO TOTAL-POLICIES.       
           WRITE PRINT-RECORD FROM TOTAL-LINE.                      

     B600-PRINT-HEADINGS.                                           
           ADD 1 TO A-PAGE-COUNT.                                   
           MOVE A-PAGE-COUNT TO PRINT-PAGE-NUMBER.                  
           WRITE PRINT-RECORD FROM HEADER.                          
           WRITE PRINT-RECORD FROM HEADER-LINE-2.                   
           WRITE PRINT-RECORD FROM COLUMN-LINE.                     

     B700-MOVE-RECORDS.                                             
           MOVE REC-94-TYPE TO REC-94-TYPE-OUT                      
           MOVE REC-94-POLICY-NUMBER TO REC-94-POLICY-NUMBER-OUT    
           MOVE REC-94-PARISH-CODE TO REC-94-PARISH-CODE-OUT        
           MOVE REC-94-TERRITORY-CODE TO REC-94-TERRITORY-CODE-OUT  
           WRITE REPORT-RECORD FROM TRNREC94-OUT.                   

     B900-COUNT-POLICIES.                                           
           SET T2-INDEX TO 1.                                         
           SEARCH T2-ENTRY                                            
           AT END                                                 
               DISPLAY 'NO POLICIES FOUND.'                       
           WHEN                                                   
               REC-94-TERRITORY-CODE = T2-TERRITORY-CODE(T2-INDEX)
               DD 1 TO T2-TERRITORY-COUNTER(T2-INDEX)            
           END-SEARCH.                                                   


     C100-MOVE-COUNTS.                                               
          MOVE T2-TERRITORY-CODE(T2-INDEX) TO DET-TERRITORY.         
          MOVE T2-TERRITORY-COUNTER(T2-INDEX) TO DET-NUMBER-POLICIES.
          WRITE PRINT-RECORD FROM DETAIL-LINE.      
4

2 に答える 2