注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

黑山老妖的博客

 
 
 

日志

 
 
关于我

主要用来存放收集的资料,几乎都是转贴的东西!感谢原作者!

关于ABAP流程处理的一些命令的说明(stop,exit,return,check,reject)  

2008-08-28 15:33:41|  分类: ABAP |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

Stop 命令

使用该命令的程序位置

INITIALIZATION, AT SELECTION-SCREEN, START-OF-SELECTION和GET 事件中

处理说明

1、 当在INITIALIZATION事件执行该命令,系统将直接触发应用服务器和客户端屏幕元素的发送;

2、 在其他事件中将直接触发END-OF-SELECTION事件的执行,如果不想执行END-OF-SELECTION,请使用RETURN或者 EXIT.

注意事项

 

EXIT命令

使用该命令的程序位置

用于循环和程序模块中:DO和其他处理模块中(event block, dialog module, procedure (function module, method, subroutine))...ENDDO,WHILE...ENDWHILE,LOOP...ENDLOOP,SELECT...ENDSELECT

处理说明

1、 循环处理中,EXIT只跳出当前的循环;

2、 在START-OF-SELECTION, GET, END-OF-SELECTION事件中,将直接触发List输出,将不执行END-OF-SELECTION事件;如果没有List输出,系统将直接返回选择屏幕;

3、 对于procedure系统返回调用处;

注意事项

Sap推荐EXIT只是用于循环处理,对于处理模块请使用Return。

 OF-SELECTION.

  return.

  'start of selection'.

OF-SELECTION.

  'end of selection'.

*&      Form  frm_test

*       text

{FORM frm_test.

  5 IF sy-2.

      不管存在多少层次的循环,将不直接退出当前处理模块,循环处理中,EXIT只跳出当前的循环执行DO 以外'END'.)

      'IF STATEMENT'.

    WRITE: index.

  WRITE / ENDFORM.    

结果:

DO          1

END

}

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不同

{

  OF-SELECTION.

  return.

  'start of selection'.

OF-SELECTION.

  'end of selection'.

*&      Form  frm_test

*       text

FORM frm_test.

  5 IF sy-2.

      .(不管存在多少层次的循环,将直接退出当前处理模块,这一点和EXIT不同)

      'IF STATEMENT'.

    WRITE: index.

  WRITE / ENDFORM.  

结果:

DO          1

}

CHECK命令

使用该命令的程序位置

用于循环和程序模块中:DO和其他处理模块中(event block, dialog module, procedure (function module, method, subroutine))...ENDDO,WHILE...ENDWHILE,LOOP...ENDLOOP,SELECT...ENDSELECT

处理说明

1、 循环处理中,CHECK只是不执行本次循环的后续处理,继续调到下一次循环;

2、 在START-OF-SELECTION, GET, END-OF-SELECTION事件中,只是中断本事件内的后续代码的执行 ,不影响其他后续模块的处理,这和EXIT,RETURN是不同的;

3、 对于没有循环procedure系统返回调用处;

4、 对逻辑数据库的GET事件,系统退出本次纪录和子节点的读取处理,将继续下一条纪录的处理;

注意事项

Sap推荐CHECK只是用于循环处理,对于处理模块请使用Return。

 Constants ss 'x'.

START-PERFORM frm_test.

  WRITE / END-WRITE / *&---------------------------------------------------------------------*

*&---------------------------------------------------------------------*

*----------------------------------------------------------------------*

DO TIMES.

    'x'.(CHECK只是不执行本次循环的后续处理,继续调到下一次循环)

    index = WRITE ENDIF.

    'DO', sy-ENDDO.

  'END'.

结果 END

Constants ss 'x'.

START-PERFORM frm_test.

  WRITE / END-WRITE / *&---------------------------------------------------------------------*

*&---------------------------------------------------------------------*

*----------------------------------------------------------------------*

DO TIMES.

    index = WRITE ENDIF.

    'DO', sy-ENDDO.

  CHECK(exit return) SS <> 'x'.(三种效果一样都跳到下个PERFORM frm_test)

  'END'.

 

区别:在LOOP 中 check 只是不执行本次循环的后续处理,继续调到下一次循环;

               EXIT只跳出当前的循环继续执行loop外的语句。

               return 跳出怎么form了

     在form 中 三种效果一样都跳到下个PERFORM frm_test

    在事件中 CHECK  在START-OF-SELECTION, GET, END-OF-SELECTION事件中,只是中断本事件内的后续代码的执行 ,不影响其他后续模块的处理

START-  CHECK SS <> WRITE / END-WRITE / 

  结果: end of selection      

      在事件中 exit return  在START-OF-SELECTION, GET, END-OF-SELECTION事件中,将直接触发List输出,将不执行END-OF-SELECTION事件;如果没有List输出,系统将直接返回选择屏幕; 

REJECT命令

使用该命令的程序位置

用于逻辑数据库的GET处理事件中

处理说明

REJECT的处理类似CHECK,但和CHECK不同的是:REJECT如果在循环内也同样退出本次的处理,而CHECK只是退出循环,不退出处理

注意事项

  评论这张
 
阅读(347)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018