限制AS400 RPG中的输出工作文件



目前,我们需要限制这些临时工作文件的输出。原因是这些都是巨大的主文件,需要很长时间才能运行。如果我们不制作文件*NOMAX,那么就必须有人来回答更多扩展名的消息,并且它包含作业队列。目前,我们想表明数据的选择是正确的。但我添加了这些计数字段,但这并没有停止程序。

FARCMASAC  IF   E             DISK                                  
 * Order Header file - Keyed by Company and entity number           
FOEORH4    IF   E           K DISK                                  
 * Output file - Customers who hav no orders  - TRCMASAC PF         
FTRCMA1    UF A E           K DISK                                  
 * Customer Keycode BI file                                         
FZRCST1    IF   E           K DISK                                  
 * Output file - Customers who have no Keycode  - VRCSTKBI PF       
FVRCST1    UF A E           K DISK                                  
 * Address  Master file - ADRESSAD PF                               
FADRES1    IF   E           K DISK                                  
 * Output file - Address  - ZDRESSAD PF                             
FZDRES1    UF A E           K DISK                                  
 *----------------------------------------------------------------- 
 * Calculation Specification                                        
 *----------------------------------------------------------------- 
 * Step 1                                                           
C                   READ      ARCMASAC                              
C                   DOW       NOT %EOF                      
 *                                                          
 * Check the record does not exist in order header file     
C                   EXSR      CHKORH_SR                     
 * Read the next record                                     
C                   READ      ARCMASAC                      
c     counta        ifge      9990                          
C                   EVAL      *INLR = *ON                   
c                   leave                                   
c                   endif                                   
c     countz        ifge      9990                          
C                   EVAL      *INLR = *ON                   
c                   leave                                   
c                   endif                                   
C                   ENDDO                                   
 * Step 2 and 3                                             
C     *LOVAL        SETLL     TRCMA1                        
C                   READ(N)   TRCMA1                        
C                   DOW       NOT %EOF                      
C                   EXSR      CHKCUS_SR                              
 *                                                                   
 * Check the record does not exist in address file                   
C                   EXSR      CHKADR_SR                              
 *                                                                   
 * Read the next record                                              
C                   READ(N)   TRCMA1                                 
C                   ENDDO                                            
 *-----------------------------------------------------------------  
 * End of the Program                                                
 *-----------------------------------------------------------------  
C                   EVAL      *INLR = *ON                            
 *-----------------------------------------------------------------  
 * Check the order header entity                                     
 *-----------------------------------------------------------------  
C     CHKORH_SR     BEGSR                                            
C     ORHKEY        CHAIN     OEORH4                                    
 * If the order entity is notfound, write the rec into TRCMASAC file    
C                   IF        NOT %FOUND(OEORH4)                        
C                   WRITE     TRCMASRR                                  
C                   ENDIF                                               
 *                                                                      
C                   ENDSR                                               
 *-----------------------------------------------------------------     
 * Check the customer keycode entity                                    
 *-----------------------------------------------------------------     
C     CHKCUS_SR     BEGSR                                               
 *                                                                      
C     ORHKEY        CHAIN     ZRCST1                                    
 * If the order entity is found, write the rec into VRCSTKBI file       
C                   IF        %FOUND(ZRCST1)                            
C                   WRITE     VRCSTKRR                                  
c                   add       1             countz            500       
C                   ENDIF                                               
C                   ENDSR                                                
 *-----------------------------------------------------------------      
 * Check the address entity for records of never ordered                 
 *-----------------------------------------------------------------      
C     CHKADR_SR     BEGSR                                                
 *                                                                       
C     ACENT#        CHAIN     ADRES1                                     
 * If the order entity is found, write the rec into ZDRESSRR file        
C                   IF        %FOUND(ADRES1)                             
C                   WRITE     ZDRESSRR                                   
c                   add       1             counta            500        
C                   ENDIF                                                
 *                                                                       
C                   ENDSR                                                
 *-----------------------------------------------------------------      
 * Program Initialization Subroutine                                     
 *-----------------------------------------------------------------      
C     *INZSR        BEGSR                                                

在第一个DO循环中检查countacountz的值,但直到第二个DO循环才递增。

移动您的:

c     counta        ifge      9990                          
C                   EVAL      *INLR = *ON                   
c                   leave                                   
c                   endif                                   
c     countz        ifge      9990                          
C                   EVAL      *INLR = *ON                   
c                   leave                                   
c                   endif

编码到第二CCD_ 5循环中。

相关内容

  • 没有找到相关文章

最新更新