首页 > 代码库 > [SAP ABAP开发技术总结]RETURN、STOP、EXIT、CHECK、LEAVE、REJECT

[SAP ABAP开发技术总结]RETURN、STOP、EXIT、CHECK、LEAVE、REJECT

<style></style>

<script type="text/javascript">// 0 ? Math.ceil(iSpeed) : Math.floor(iSpeed); oBox.offsetTop == iTop ? clearInterval(oBox.timer) : (oBox.style.top = oBox.offsetTop + iSpeed + "px"); }, 10) }, 50) oMenu.onclick = function () { oBox.style.width = 260 + "px"; oMenu.style.display = "none"; oLine.style.display = "block"; }; oLine.onclick = function () { oBox.style.width = ‘‘; oLine.style.display = "none"; oMenu.style.display = "block"; }; var cat_nav = $("#cat_nav"); oLine.innerHTML = cat_nav.html();};// ]]></script>

目录导航
 

<script type="text/javascript">// </script>

声明:原创作品转载时请注明文章来自SAP师太博客并以超链接形式标明文章原始出处否则将追究法律责任!
原文出自:

12.21.1.            RETURN.. 110

12.21.2.            STOP. 110

12.21.3.            EXIT. 110

12.21.4.            CHECK. 110

12.21.5.            LEAVE. 111

12.21.5.1.         REJECT. 111

12.21.1.      RETURN

RETURN用来退出当前执行的程序块,例如一个FORMMETHOD报表事件块,不管是否出现在循环(LOOP)中,RETURN都会退出当前执行的程序块,而不仅仅是退出循环(如果是在FormMETHOD中,只会退出FormMETHOD,不会退出FormMETHOD被调用所在的报表事件块,即退FormMETHOD后继续向被调用点后面执行)

12.21.2.      STOP

l  INITIALIZATION中的STOP会导致跳转到AT SELECTION-SCREEN OUTPUT事件块;

l  如果STOPAT SELECTION-SCREEN OUTPUT块里,则只是退出当前块(STOP后面语句不执行而已),仅接着是显示选择屏幕;

l  AT SELECTION-SCREEN [ON]…选择屏幕事件块中的STOP也只是退出当前事件块,继续后面的事件块;

l  另外,即使STOP在循环中,还是在FORMMETHOD,也是直接从被调用的点退出所在事件块,而不仅仅只退出当前循环FORMMETHOD,这与直接在事件块中的效果是一样的;

12.21.3.      EXIT

l  INITIALIZATION中的EXIT会导致跳转到AT SELECTION-SCREEN OUTPUT事件块;

l  如果EXITAT SELECTION-SCREEN OUTPUT块里,则只是退出当前块(EXIT后面语句不执行而已),仅接着是显示选择屏幕;

l  AT SELECTION-SCREEN [ON]…选择屏幕事件块中的EXIT也只是退出当前事件块,继续后面的事件块;

l  START-OF-SELECTION开始往后的事件块,如果出现EXIT,则会开始listprocessor(列表处理),并跳转到相应的List输出界面(前提条件是要在退出前已经向屏幕输出内容了,否则也不会跳转);注:END-OF-SELECTION事件块也会被跳过

l  另外,如果EXIT在循环DOWHILELOOP里,只是跳出当前循环而已

l  如果是在FORMMETHOD中,而非循环中,则退出当前的FORMMETHOD,其作用与RETURN类似

12.21.4.      CHECK

CHECK跳转的前提是<expr>为假时。

l  CHECK只是跳出当前事件块,继续下一个事件块的处理,相当于方法的return

l  另外,如果CHECK在循环DOWHILELOOP里,只是跳出当前循环而已

l  如果CHECK出现在循环以外,退出的是当前执行的程序块(processing block),例如一个FORMMETHOD,或EVENT

12.21.5.      LEAVE

LEAVE PROGRAM. 退出整个程序

LEAVE TO TRANSACTION ta

LEAVE LIST-PROCESSING.          list processor回到dialog processor

LEAVE TO LIST-PROCESSING    控制权从dialog processor转交给list processor

LEAVE { SCREEN | {TO SCREEN dynnr} }

12.21.5.1.           REJECT

REJECT是用在逻辑数据库GET event blocks中,与EXITCHECK不一样的是(EXITCHECK如果是在循环中时,只是退出循环;如果是在FORM中,则只是退出当前FORM),REJECT可以从循环或者一个FORM中直接跳出所在的GET事件块

技术分享

REJECT [<dbtab>].

终结逻辑数据库当前节点数据行的处理

如果省略选项<dbtab>, 则逻辑数据库会自动读取同一节点的下一行数据,即同一节点的GET事件块会被触发。如果使用了<dbtab>选项,则逻辑数据库会读取节点<dbtab>的下一行数据,此时的<dbtab>节点必须是REJECT所在当前节点的上级节点。

 

[SAP ABAP开发技术总结]RETURN、STOP、EXIT、CHECK、LEAVE、REJECT