问一个CL语句的问题?

发布于 2022-07-08 02:45:45 字数 1651 浏览 9 评论 3

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 技术交流群。

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

发布评论

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

评论(3

愛上了 2022-07-15 15:07:20

谢谢楼上的几位大哥的解释!

末が日狂欢 2022-07-15 09:14:02

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命令

终难愈 2022-07-15 04:36:23

原帖由 pachenjun 于 2005-12-20 14:59 发表
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

RTVSYSV ...

我觉得是不一样的,YYMML是系统时间的前4位,而YYMMC是LIB/CURMON 这个数据区的1到某位的3到6位,所以觉得不一样,另外你所说的CURMON不知道是不是你程序中定义的。

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