Команда CLLE SNDRCVF не разрешена - PullRequest
0 голосов
/ 03 ноября 2019

Я пытаюсь скомпилировать этот кусок кода CL, используя Rational Series, но получаю ошибку.

Это мой код 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?

Ответы [ 2 ]

3 голосов
/ 04 ноября 2019

Вы забыли сказать, какую ошибку вы получили. Всегда важно помещать всю информацию о сообщениях об ошибках в ваши вопросы.

Есть две ошибки.

  • & IN03 не определено
  • Ваше назначение * IN03 должно быть & IN03, но это не то, как вы делаете назначение в CLP

Если вычтобы иметь возможность нажимать клавишу F3, необходимо кодировать что-то вроде CA03 (03) в «Функции» для формата записи.

Чтобы назначить переменную в CL, код

CHGVAR name value
0 голосов
/ 04 ноября 2019

Глядя на документацию здесь , я подозреваю, что вам нужно добавить RCDFMT к вашей DCLF спецификации следующим образом:

     DCLF       FILE(LAB4DF) RCDFMT(RECORD1)

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

Если у вас действительно есть только 1 записьформат в вашем файле дисплея, то вы также можете опустить RCDFMT из обеих команд, например, так:

     DCLF       FILE(LAB4DF)

     SNDRCVF    /* send, recieve file */
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...