问一个CL语句的问题?
DCL VAR(&YYMML) TYPE(*CHAR) LEN(4)
DCL VAR(&YYMMC) TYPE(*CHAR) LEN(4)
DCL VAR(&YYMMD) TYPE(*CHAR) LEN(6)
DCL VAR(&YYMMCD) TYPE(*CHAR) LEN(8
RTVSYSVAL SYSVAL(QDATE) RTNVAR(&YYMMD)
CHGVAR VAR(&YYMML) VALUE(%SST(&YYMMD 1 4))
RTVDTAARA DTAARA(&LIB/CURMON (1 ) RTNVAR(&YYMMCD)
CHGVAR VAR(&YYMMC) VALUE(%SST(&YYMMCD 3 6))
IF COND(&YYMML *EQ &YYMMC) THEN(DO)
CHGDTAARA DTAARA(*LDA (19 1)) VALUE('0')
ENDDO
ELSE DO
CHGDTAARA DTAARA(*LDA (19 1)) VALUE('1')
ENDDO
这几句是什么意思?CURMON我找了很久也没找到它的值是从哪里取的?还有我怎么看都觉得&YYMML和&YYMMC是一样的?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
谢谢楼上的几位大哥的解释!
RTVSYSVAL SYSVAL(QDATE) RTNVAR(&YYMMD) 取系统日期
CHGVAR VAR(&YYMML) VALUE(%SST(&YYMMD 1 4)) 截取系统日期YYMM给&YYMML
RTVDTAARA DTAARA(&LIB/CURMON (1 ) RTNVAR(&YYMMCD) 取data area的值
CHGVAR VAR(&YYMMC) VALUE(%SST(&YYMMCD 3 6))
IF COND(&YYMML *EQ &YYMMC) THEN(DO)
CHGDTAARA DTAARA(*LDA (19 1)) VALUE('0')
ENDDO
ELSE DO
CHGDTAARA DTAARA(*LDA (19 1)) VALUE('1')
ENDDO
操作DATA AREA可以用WRKDTAARA命令
我觉得是不一样的,YYMML是系统时间的前4位,而YYMMC是LIB/CURMON 这个数据区的1到某位的3到6位,所以觉得不一样,另外你所说的CURMON不知道是不是你程序中定义的。