逻辑文件不适用于SUBFILE / SETLL?

时间:2012-08-16 01:55:56

标签: ibm-midrange rpgle rpg

我正在使用具有不同记录格式的三个逻辑文件 我在第一个子文件中使用LF1和LF2 在第一个子文件的地方我不能使用* LOVAL SETLL它会给我运行时错误。 不确定为什么?

然后程序将引导我到第二个子文件 我正在使用LF3 看起来很好。

但是如果我回到第一个子文件,子文件转为空白。???? 为什么呢?

这是我构建子文件的子程序:

C     CLRSR         BEGSR                                                                                             
C                   EVAL      *IN55='0'                                                                               
C                   WRITE     USQLSCTL                                                                                
C                   EVAL      *IN55='1'                                                                               
C                   ENDSR                                                                                             
C*                                                                                                                    
C*BUILDING SUBFILE                                                                                                    
C     BLDSR         BEGSR                                                                                             
C     *LOVAL        SETLL     USRLGX                                                                                 
C                   EVAL      RECNO=0                                                                                 


C                   EXSR      TMISR1                                                                                  
C                   EXSR      REDSR1                                                                                  

C                   DOW       NOT %EOF                                                                                
C                   IF        USRID<>IDD                                                                              
C                   EXSR      MVESR                                                                                   
C                   EXSR      DIMSR                                                                                   
C                   MOVE      USRID         IDD                                                                       
C                   EVAL      RECNO=RECNO+1                                                                           
C                   WRITE     USQLS                                                                                   
C                   ENDIF                                                                                             

C                   EXSR      TMISR1                                                                                   
C                   EXSR      REDSR1                                                                                   

C                   ENDDO                                                                                             
C                   ENDSR   

和相关的子程序

C     TMISR1        BEGSR                                                                                             
C                   READ      USRLGX                                                                                  
C                   MOVE      USRTI         MINTI                                                                     
C                   ENDSR                                                                                             

C     REDSR1        BEGSR                                                                                             
C                   READ      USRLG                                                                                   
C                   MOVE      USRTO         MAXTO                                                                     
C                   ENDSR                                                       6                                      
我使用的LF是USRLG和USRLGX。 其中两个LF都指向相同的记录格式。但每个LF都有不同的排序顺序。 *记录格式已在F-Spec上重命名

  • 我有两个问题:
  • 我只能使用* LOVAL setll逻辑文件一次。
  • n以上编码的结果有时它会给UserTime的结果一段时间它等于空白。(000000)

0 个答案:

没有答案