Я пытаюсь вызвать внутреннюю запись в коболе. Звонок в порядке, но проблема в том, что после записи есть несколько абзацев, которые также ошибочно выполняются.Остановить эффект вызова записи
Вот моя программа:
IDENTIFICATION DIVISION.
PROGRAM-ID. ENTR1POW.
DATA DIVISION.
WORKING-STORAGE SECTION.
LOCAL-STORAGE SECTION.
PROCEDURE DIVISION.
display "BEFORE CALL NOM_PROC1======================="
PERFORM NOM_PROC1 THRU E--NOM_PROC1
display "AFTER CALL NOM_PROC1======================="
display "CALL NOM_PROC2============================="
PERFORM NOM_PROC2 THRU E--NOM_PROC2
display "CALL ENTRY1============================"
CALL 'ENTRY1'
GOBACK.
NOM_PROC1.
display "PGM ENTR1POW: BEGIN NOM_PROC1"
display "PGM ENTR1POW: END NOM_PROC1"
CONTINUE.
E--NOM_PROC1.
EXIT.
NOM_PROC2 SECTION.
display "PGM ENTR1POW: BEGIN NOM_PROC2"
ENTRY 'ENTRY1'
display "===========BEGIN ENTRY ENTRY1"
display "===========END ENTRY ENTRY1"
ENTRY 'ENTRY2'
display "===========BEGIN ENTRY ENTRY2"
display "===========END ENTRY ENTRY2"
ENTRY 'ENTRY3'
display "===========BEGIN ENTRY ENTRY3"
display "===========END ENTRY ENTRY3"
display "PGM ENTR1POW: END NOM_PROC2"
CONTINUE.
E--NOM_PROC2.
EXIT.
NOM_PROC3 SECTION.
display "PGM ENTR1POW: BEGIN NOM_PROC3"
display "PGM ENTR1POW: END NOM_PROC3"
CONTINUE.
E--NOM_PROC3 SECTION.
EXIT.
NOM_PROC4.
display "PGM ENTR1POW: BEGIN NOM_PROC4"
display "PGM ENTR1POW: END NOM_PROC4"
CONTINUE.
E--NOM_PROC4.
EXIT.
Выход, что я полученный:
BEFORE CALL NOM_PROC1=======================
PGM ENTR1POW: BEGIN NOM_PROC1
PGM ENTR1POW: END NOM_PROC1
AFTER CALL NOM_PROC1=======================
CALL NOM_PROC2=============================
PGM ENTR1POW: BEGIN NOM_PROC2
===========BEGIN ENTRY ENTRY1
===========END ENTRY ENTRY1
===========BEGIN ENTRY ENTRY2
===========END ENTRY ENTRY2
===========BEGIN ENTRY ENTRY3
===========END ENTRY ENTRY3
PGM ENTR1POW: END NOM_PROC2
CALL ENTRY1============================
===========BEGIN ENTRY ENTRY1
===========END ENTRY ENTRY1
===========BEGIN ENTRY ENTRY2
===========END ENTRY ENTRY2
===========BEGIN ENTRY ENTRY3
===========END ENTRY ENTRY3
PGM ENTR1POW: END NOM_PROC2
PGM ENTR1POW: BEGIN NOM_PROC3
PGM ENTR1POW: END NOM_PROC3
PGM ENTR1POW: BEGIN NOM_PROC4
PGM ENTR1POW: END NOM_PROC4
Я думаю, что призыв к пунктам NOM_PROC3 и NOM_PROC4 не должно произойти.
Я сказал, что если бы я переместил абзац NOM_PROC2 в конец программы, тогда моя проблема будет решена, но я хочу это сделать? Есть ли другой способ решить мою проблему. Благодарим вас за сообщение. –
Какой компилятор вы используете? ENTRY не предназначен для программы, которая ВЫЗЫВАЕТ ее, она должна находиться в другой программе. Что ты пытаешься сделать? Как сказал @cschneid, «содержащаяся» или «вложенная» программа, вероятно, больше того, что вы хотите. Вы также смутитесь, если считаете, что PERFORM является CALL. Это не так, поэтому сообщения неверны. –