SAP(ABAP):STOP,EXIT,CHECK,RETURN,REJECT,CONTINUE


Stop 命令
使用該命令的程序位置
INITIALIZATION, AT SELECTION-SCREEN, START-OF-SELECTION和GET 事件中
處理說明
1、 當在INITIALIZATION事件執行該命令,系統將直接觸發應用服務器和客戶端屏幕元素的發送;影響后續模塊執行。
2、在其他事件中將直接觸發END-OF-SELECTION事件的執行,如果不想執行END-OF-SELECTION,請使用.
注意事項


 RETURN命令
使用該命令的程序位置
用於處理模塊中(event block, dialog module, procedure (function module, method, subroutine))
處理說明
1、 對於procedure ,RETURN將無條件退出當前的處理模塊,不影響后續模塊的執行;
2、 對於START-OF-SELECTION, GET, END-OF-SELECTION事件中,將直接觸發List輸出,將不執行END-OF-SELECTION事件;如果沒有List輸出,系統將直接返回選擇屏幕;
注意事項
RETURN不管存在多少層次的循環,將直接退出當前處理模塊,這一點和EXIT不同


EXIT命令
使用該命令的程序位置
用於循環和程序模塊中:...ENDDO,...ENDWHILE,...ENDLOOP,...ENDSELECT
處理說明
1、 循環處理中,EXIT只跳出當前的循環;
2、 在START-OF-SELECTION, GET, END-OF-SELECTION事件中,將直接觸發List輸出,將不執行END-OF-SELECTION事件;如果沒有List輸出,系統將直接返回選擇屏幕;
3、 對於procedure系統返回調用處;
注意事項
Sap推薦EXIT只是用於循環處理,對於處理模塊請使用Return。

この命令が実行されるとループが強制終了され、ループ構造の終わりを表す命令 (ENDDOENDWHILEENDLOOPENDSELECT) の後ろから処理が再開されます。ネストしたループの中では、現在のループのみが強制終了されます。

DO 4 TIMES.
  IF sy-index = 3.
    EXIT.
  ENDIF.
  WRITE sy-index.
ENDDO.

一覧出力は以下のとおりです。

         1          2

3 番目のループパスにおいて、WRITE 命令が処理される前にループは強制終了されます。

 

CHECK命令
使用該命令的程序位置
用於循環和程序模塊中:...ENDDO,...ENDWHILE,...ENDLOOP,...ENDSELECT
處理說明
1、 循環處理中,CHECK只是不執行本次循環的后續處理,繼續調到下一次循環;
2、 在START-OF-SELECTION, GET, END-OF-SELECTION事件中,只是中斷本事件內的后續代碼的執行,不影響其他后續模塊的處理,這和EXIT,RETURN是不同的;
3、 對於沒有循環procedure系統返回調用處;
4、 對邏輯數據庫的GET事件,系統退出本次紀錄和子節點的讀取處理,將繼續下一條紀錄的處理;
注意事項
Sap推薦CHECK只是用於循環處理,對於處理模塊請使用Return。

條件が真である場合には、現在の命令ブロックの中で CHECK 命令の後ろに命令が殘っているとしても無視され、次のループパスが開始されます。condition として任意の論理式を使用することができます。

DO 4 TIMES.
  CHECK sy-index BETWEEN 2 and 3.
  WRITE sy-index.
ENDDO. 

一覧出力は以下のとおりです。

         2          3

1 回目と 4 回目のループパスは強制終了され WRITE 命令は処理されません。なぜなら sy-index が 2 と 3 の間にないからです。


REJECT命令
使用該命令的程序位置
用於邏輯數據庫的GET處理事件中
處理說明
REJECT的處理類似CHECK,但和CHECK不同的是:REJECT如果在循環內也同樣退出本次的處理,而CHECK只是退出循環,不退出處理

 

CONTINUE命令

現在の命令ブロックの中でこの命令の後ろに命令が殘っているとしても無視され、次のループパスが開始されます。

DO 4 TIMES.
  IF sy-index = 2.
    CONTINUE.
  ENDIF.
  WRITE sy-index.
ENDDO.

一覧出力は以下のとおりです。

         1          3          4

2 番目のループパスは強制終了され、WRITE 命令は処理されません。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM