[求助] subfile的问题~

发布于 2022-08-25 20:40:10 字数 21050 浏览 9 评论 5

学习subfile的时候,写了个小程序练习一下,程序的编译没有问题,但是在call的时候出错,debug进去看了一下,错误之处在"0032.00 C                   ENDIF                ",请各位高手帮忙分析一下,谢谢了。

错误描述:
Message . . . . :   Session or device error occurred in file DSPF001 (C G D  
  F).                                                                        
Cause . . . . . :   RPG procedure SUBF001 in program DOUDOU/SUBF001 at        
  statement 47 detected a session or device error.  Recovery may be possible.
  Examine the major/minor return code value to determine the specific error   
  that occurred. If the major return code is 82 then the error occurred while
  acquiring a session or device. If the major return code is 83 then the error
  occurred during an I/O operation and the session or device is still active.

Technical description . . . . . . . . :   The major return code is 83. The
   minor return code is 1D.                                                

RPG 源程序 SUBF001
0001.00 FPF001     IF   E           K DISK                                      
0002.00 FDSPF001   CF   E             WORKSTN                                   
0003.00 F*                                                                     
0004.00 DSIZE             S              5  0 INZ(0)                           
0005.00 D*                                                                     
0006.00 C*=====================================                                 
0007.00 C*              MAIN PROGRAM                                            
0008.00 C*=====================================                                 
0009.00 C                   MOVEL     'FIRST SUBFIL'FLD1                        
0010.00 C                   EXSR      LOADSF                                    
0011.00 C                   DOU       *IN03 = *ON                              
0012.00 C                   WRITE     HEAD                                      
0013.00 C                   EXFMT     SFL001C1                                 
0014.00 C                   WRITE     FOOT                                      
0015.00 C                   ENDDO                                               
0016.00 C*                     
0017.00 C                   EVAL      *INLR=*ON                                
0018.00 C                   RETURN                                             
0019.00 C*==============LOAD SUBFILE============                              
0020.00 C     LOADSF        BEGSR                                             
0021.00 C*                                                                     
0022.00 C                   DOU       *IN51=*ON                                
0023.00 C                   READ      STUDENT                                51
0024.00 C*                                                                     
0025.00 C                   IF        *IN51=*OFF                              
0026.00 C                   EVAL      SIZE=SIZE+1                              
0027.00 C                   EVAL      D_NO=NO                                 
0028.00 C                   MOVEL     NAME          D_NAME                     
0029.00 C                   MOVEL     SEX           D_SEX                     
0030.00 C                   EVAL      D_AGE = AGE                              
0031.00 C                   WRITE     SFL001S1                                 
0032.00 C                   ENDIF                                              
0033.00 C                   ENDDO      
0034.00 C*                                                      
0035.00 C                   IF        SIZE > 0                  
0036.00 C                   EVAL      *IN91 = *ON               
0037.00 C                   ENDIF                              
0038.00 C*                                                      
0039.00 C                   ENDSR                              
0040.00 C*=============INZSR=================                  
0041.00 C     *INZSR        BEGSR                              
0042.00 C                   EVAL      *IN51 = *OFF              
0043.00 C                   ENDSR                                                                                                                       

屏幕文件 DSPF001
0001.00      A                                      DSPSIZ(24 80 *DS3)      
0002.00      A                                      CA03(03)                 
0003.00      A          R HEAD                                               
0004.00      A            FLD1          20A     1 30                        
0005.00      A                                  3 10'NO'                     
0006.00      A                                  3 20'NAME'                  
0007.00      A                                  3 45'SEX'                    
0008.00      A                                  3 50'AGE'                    
0009.00      A*                                                              
0010.00      A          R SFL001S1                  SFL                     
0011.00      A            D_NO           5  0   5 10                        
0012.00      A            D_NAME        20A     5 20                        
0013.00      A            D_SEX          1A     5 45                        
0014.00      A            D_AGE          3  0   5 50                        
0015.00      A*                                                              
0016.00      A          R SFL001C1                  SFLCTL(SFL001S1)         
0017.00      A                                      SFLSIZ(11)         
0018.00      A                                      SFLPAG(10)         
0019.00      A                                      OVERLAY            
0020.00      A  91                                  SFLEND(*MORE)      
0021.00      A  91                                  SFLDSP              
0022.00      A  91                                  SFLDSPCTL           
0023.00      A*                                                         
0024.00      A          R FOOT                                          
0025.00      A                                 20 20'F3-CANCEL'     

PHISICAL FILE PF001

0001.00      A          R STUDENT                  
0002.00      A            NO             5  0      
0003.00      A            NAME          20A         
0004.00      A            SEX            1A         
0005.00      A            AGE            3  0      
0006.00      A          K NO

[ 本帖最后由 netcatdou 于 2009-5-13 12:18 编辑 ]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

孤芳又自赏 2022-08-26 15:16:17

guozhy 说的很对,不加overlay会显示不出来 呵呵

樱娆 2022-08-26 15:07:11

记录  foot  最好加上  关键字OVERLAY

北音执念 2022-08-26 15:00:39

正如楼上两位所说,问题已经解决!
非常感谢!!!!

夜司空 2022-08-26 10:58:11

FDSPF001  CF   E             WORKSTN     
F                                                      SFILE(SFL001S1:RRN)

引用部分如上定义

还有在程序WRITE操作是,针对RRN + 1 .

建议你搜索一下SUBFILE的基本用法。

奶茶白久 2022-08-26 03:30:30

你的 SUBFILE在 引用的 时候怎么 没有 RRN?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文