[求助] subfile的问题~
学习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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
guozhy 说的很对,不加overlay会显示不出来 呵呵
记录 foot 最好加上 关键字OVERLAY
正如楼上两位所说,问题已经解决!
非常感谢!!!!
FDSPF001 CF E WORKSTN
F SFILE(SFL001S1:RRN)
引用部分如上定义
还有在程序WRITE操作是,针对RRN + 1 .
建议你搜索一下SUBFILE的基本用法。
你的 SUBFILE在 引用的 时候怎么 没有 RRN?