不允许 CLLE SNDRCVF 命令

CLLE SNDRCVF command not allowed

我正在尝试使用 Rational Series 编译这段 CL 代码,但一直出现错误。

这是我的 CL 代码:

         PGM

         DCLF       FILE(LAB4DF)

         SNDRCVF    RCDFMT(RECORD1) /* send, recieve file */
         DOWHILE    (&IN03 = '0')
            SELECT
               WHEN       (&USERINPUT = '1' *OR &USERINPUT = '01') CALLSUBR   OPTION1
               OTHERWISE  DO
                  *IN03      = '1'
               ENDDO
            ENDSELECT
         ENDDO

         SUBR       OPTION1
            DSPLIBL
         ENDSUBR

         ENDPGM

这是我的 DSPF 代码

 A          R RECORD1
 A                                  1 38'LAB 4'
 A                                  3  3'Please select one of the following-
 A                                       options:'
 A                                  6 11'3.  Maximum Invalid Signon Attempt-
 A                                      s allowed'
 A                                  8 11'5.  Run Instructor''s Insurance Pr-
 A                                      ogram'
 A                                  5 11'2.  Signed on User''s Message Queu-
 A                                      e'
 A                                  1  3'Yathavan Parameshwaran'
 A                                  7 11'4.  Initial number of active jobs -
 A                                      for storage allocation'
 A                                  4 11'1.  Previous sign on by signed on -
 A                                      user'
 A                                 14 11'F3 = Exit'
 A                                 14 31'F21 = Command Line'
 A                                  2 70TIME
 A                                  1 72DATE
 A                                  9 11'Option: '
 A            USERINPUT      2   B  9 19
 A  91                                  DSPATR(RI)
 A  92                                  DSPATR(PC)
 A            MSGTXT1       70   O 11 11
 A            MSGTXT2       70   O 12 11 

我的 CL 代码或 DSPF 代码有问题吗?

查看文档 here,我怀疑您需要将 RCDFMT 添加到您的 DCLF 规范中,如下所示:

     DCLF       FILE(LAB4DF) RCDFMT(RECORD1)

     SNDRCVF    RCDFMT(RECORD1) /* send, recieve file */

如果您的显示文件中确实只有一种记录格式,那么您也可以省略两个命令中的 RCDFMT,如下所示:

     DCLF       FILE(LAB4DF)

     SNDRCVF    /* send, recieve file */

你忘了说你遇到了什么错误。将有关错误消息的所有信息放入您的问题中始终很重要。

有两个错误。

  • &IN03 未定义
  • 您对 *IN03 的赋值应该是 &IN03,但这不是您在 CLP 中赋值的方式

如果您希望能够按 F3,您必须在 "Functions" 中为记录格式编写类似 CA03(03) 的代码。

要在 CL 中分配一个变量,代码

CHGVAR name value