zoukankan      html  css  js  c++  java
  • [SAP ABAP开发技术总结]RETURN、STOP、EXIT、CHECK、LEAVE、REJECT

    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事件块

    image130

    REJECT [<dbtab>].

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

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

  • 相关阅读:
    16.5 函数对象
    16.4.7 无序关联容器(C++11)
    16.4.6 关联容器
    16.4.5 容器种类(外1:7种序列容器类型)
    16.4.5 容器种类(下:序列)
    # SpringBoot + Spring AMQP 整合 RabbitMQ
    RabbitMQ 消息模型
    RabbitMQ Docker 单机与集群部署
    RabbitMQ 核心概念入门
    MQ消息中间件 + JMS + AMQP 理论知识
  • 原文地址:https://www.cnblogs.com/jiangzhengjun/p/4265443.html
Copyright © 2011-2022 走看看