RETURN、STOP、EXIT、CHECK、LEAVE、REJECT
1、return
return用来退出当前执行的程序块,例如一个form、method、报表事件块,不管是否出现在(LOOP)中,return都会退出当前执行的程序块,而不仅仅是退出循环(如果是在form、method中,只会退出form、method,不会退出form、method被调用所在的报表事件块,即退出form、method后继续向被调用点的后面执行)。
2、stop
(1)INITIALIZATION中的stop会导致跳转到at selection-screen output事件块。
(2)如果stop在at selection-screen output块里,则只是退出当前块(stop后面的语句不执行而已),紧接着显示选择屏幕。
(3)at selection-screen [on] …选择屏幕中的事件块中的stop 也只是退出当前事件块,继续后面的事件块。
(4)另外,即使stop在循环中,还是在form、method中,也是直接从被调用点退出当前所在的事件块,而不仅仅只退出当前循环、from、method,这与直接在事件块中的效果是一样的。
3、exit
(1)initialization中的exit会导致跳转到at selection-screen output事件块,
(2)如果exit在at selecetion-screen 处理块中,则只是退出当前块(exit后面的语句不执行而已),紧接着显示选择屏幕。
(3)at selection-screen [on]…选择屏幕中的事件块中的exit也只是退出当前的事件块,继续后面的事件块。
(4)如果是在form、method中,而非循环中,则退出当前的form、method,其作用和return相类似。
(5)另外,如果exit在循环中(loop、do、while),只是跳出当前的循环。
4、check
check跳转的前提是(条件)为假
(1)check只是跳出当前的事件块,继续下一个事件块的处理,相当于return。
(2)另外,如果check在循环中(loop、do、while),只是跳出当前循环而已。
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 }
6、reject
reject 是用在逻辑数据库get event block中,与exit和check不同的是(exit和check 如果是在循环中时,只是退出当前循环,如果是在form中,则只是退出当前form),reject可以从循环或者一个form中直接跳出所在的get事件块。
引自:https://www.cnblogs.com/zhaorp/p/6932157.html