Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1066387
  • 博文数量: 106
  • 博客积分: 9093
  • 博客等级: 中将
  • 技术积分: 2770
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-01 17:22
文章分类

全部博文(106)

文章存档

2014年(1)

2012年(29)

2011年(32)

2010年(20)

2008年(24)

分类:

2010-08-16 14:15:13

今天在调查一本程序的时候看到如下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就可以。

欢迎讨论。。
阅读(1648) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~