Создание экрана (COBOL) - PullRequest
       1

Создание экрана (COBOL)

2 голосов
/ 15 марта 2011

Привет всем, у меня есть еще одно задание на квартал в Коболе, и я ухожу. Дело в том, что я получаю синтаксическую ошибку в команде ACCEPT SCREEN-IMAGE, и эта программа должна иметь пользовательский ввод. Я не вижу, что я делаю неправильно, поэтому я застрял. Я верю, что все остальное исправлено, поэтому, как только это выяснится, я закончу. Вот код:

SCREEN SECTION.
   01  SCREEN-IMAGE.
       05  BLANK SCREEN
           BACKGROUND-COLOR 0
           FOREGROUND-COLOR 15.
       05  LINE 02  COLUMN 02  PIC X(8)
               FROM CURRENT-TIME.
       05  LINE 02  COLUMN 26  PIC X(28)
               FROM TITLE-LINE
               FOREGROUND-COLOR 09.
       05  LINE 02  COLUMN 40  PIC X(8)
               FROM DATE-TODAY.
       05  LINE 05  COLUMN 02
               VALUE 'FUNCTION CODE:'
               FOREGROUND-COLOR 09.
       05  LINE 05  COLUMN 12  PIC X(3)
               FROM CODE-SCREEN AUTO.
       05  LINE 05  COLUMN 17
               VALUE '<ADD, CHG, DEL, INQ, END>'.
       05  LINE 09  COLUMN 17
               VALUE 'REP CODE:'
               FOREGROUND-COLOR 09.
       05  LINE 09  COLUMN 29  PIC X(3)
               FROM REP-SCREEN AUTO.
       05  LINE 11  COLUMN 17
               VALUE 'NAME:'
               FOREGROUND-COLOR 09.
       05  LINE 11  COLUMN 29  PIC X(3)
               FROM NAME-SCREEN AUTO.
       05  LINE 13  COLUMN 17
               VALUE 'DISTRICT:'
               FOREGROUND-COLOR 09.
       05  LINE 13  COLUMN 29  PIC X(3)
               FROM DIST-SCREEN AUTO.
       05  LINE 15  COLUMN 17
               VALUE 'COMMISSION RATE:'
               FOREGROUND-COLOR 09.
       05  LINE 15  COLUMN 29  PIC X(3)
               FROM COM-SCREEN AUTO.
       05  LINE 17  COLUMN 17
               VALUE 'DATE ADDED:'
               FOREGROUND-COLOR 09.
       05  LINE 17  COLUMN 29  PIC X(10)
               FROM ADD-DATE.
       05  LINE 19  COLUMN 17
               VALUE 'DATE CHANGED:'
               FOREGROUND-COLOR 09.
       05  LINE 19  COLUMN 29  PIC X(3)
               FROM CHANGE-DATE.
       05  LINE 24  COLUMN 17  PIC X(29)
               FROM ERROR-DISPLAY.

   PROCEDURE DIVISION.
   100-MAIN.
       OPEN I-O   REP-MASTER-FILE
       CALL 'DATETIME' USING DATE-TIME-PASS-AREA
       MOVE DATE-MMDDYY-SLASHES TO DATE-TODAY
       MOVE TIME-HHMMSSXX-COLONS TO CURRENT-TIME
       PERFORM UNTIL CODE-SCREEN = 'END' OR 'end'
           DISPLAY SCREEN-IMAGE
           ACCEPT SCREEN-IMAGE
           MOVE 0 TO ERROR-COUNT
           PERFORM 150-CHECK-COM
           PERFORM 140-CHECK-DIST
           PERFORM 130-CHECK-NAME
           PERFORM 120-CHECK-REP
           PERFORM 110-CHECK-CODE
           IF ERROR-COUNT = 0
               PERFORM 200-PROCESS-ONE-RECORD
           END-IF
       END-PERFORM

       CLOSE REP-MASTER-FILE
       STOP RUN.

Любая помощь будет оценена.

Ответы [ 2 ]

2 голосов
/ 15 марта 2011

Может быть, вам нужно несколько полей ввода и / или обновления на экране, чтобы ACCEPT это? Я думаю, что поля ввода содержат фразу TO в своих описаниях, а поля обновления имеют фразу USING. Единственное, что я вижу в вашем описании экрана - это литералы и FROM фразы. В принципе, ничего к ACCEPT!

2 голосов
/ 15 марта 2011

@ Гейб Вопреки тому, во что верят многие, точка (точка) не единственный способ закончить утверждение в языке COBOL.

Move A To B
Move C To D

логически эквивалентно

Move A To B.
Move C To D.

Где он попадает белки

If A = B
    Move C To D
    Add 1 To E.

Если я поставлю точку после D, 1 будет добавлена ​​к E безоговорочно. Стандарт COBOL 85 добавил явные ограничители области действия ко многим операторам, поэтому мы получили более легко визуально анализируемую конструкцию

If A = B
    Move C To D
    Add 1 To E
End-If

Теперь, если я поставлю точку после D, я получу ошибку компиляции. Большинство знакомых мне программистов на COBOL теперь используют явные терминаторы области и заканчивают только имена абзацев и абзацы точкой, иначе исключая их из Отдела процедур.

...