今天在调查一本程序的时候看到如下RPG代码:
FPOITEM UF E K DISK A U4
心想这是做什么的,看了一下帮助。大概的意思是当U4为*ON的时候在本程序执行的时候文件POITEM才能使用,也就是说U4为*OFF的时候,程序中对文件进行的任何操作都将被忽略。
下面是测试程序:
PTRLIB/QCLSRC(TESTU4):
PGM
DCL VAR(&SWS) TYPE(*CHAR) LEN(8)
DCL VAR(&USR) TYPE(*CHAR) LEN(10)
DCL VAR(&JOB) TYPE(*CHAR) LEN(10)
DCL VAR(&NBR) TYPE(*CHAR) LEN(6)
RTVJOBA JOB(&JOB) USER(&USR) NBR(&NBR)
CHGVAR VAR(&SWS) VALUE('00010000')
CHGJOB JOB(&NBR/&USR/&JOB) SWS(&SWS)
RTVJOBA SWS(&SWS)
CALL PGM(PTRLIB/TEST2)
ENDPGM
PTRLIB/QRPGSRC(TEST2):
FPOITEM UF E K DISK A U4
C POKEY KLIST
C KFLD ORDNO
C KFLD ITNBR
C KFLD HOUSE
C KFLD LINSQ
C*
C MOVEL'PBBK2Y4' ORDNO P
C MOVEL'46M0805' ITNBR P
C MOVEL'2' HOUSE P
C Z-ADD1 LINSQ
C POKEY CHAINPOITEM 90
C *IN90 IFEQ *ON
C WRITEPOITEMDA
C ENDIF
C U4 'U4' DSPLY
C SETON LR
C RETRN
因为U1~U8和JOB的sws的值有关,所以用CL程序来改变U1~U8的值。当然在RPG中也可以修改U1~U8的值,直接用SETON就可以。
欢迎讨论。。
阅读(1691) | 评论(0) | 转发(1) |