ABAP开发基础知识:10)数据流控制

简介: 在SAP业务处理中,存在许许多多数据流,分别管控着不同的业务模式。下面介绍如何通过ABAP语法来实现数据流程管控。     1)使用IF语句实现分支       [Syntax]      IF .

    在SAP业务处理中,存在许许多多数据流,分别管控着不同的业务模式。下面介绍如何通过ABAP语法来实现数据流程管控。

    1)使用IF语句实现分支

      [Syntax]
      IF <condition1>.
          <statement block>.
      ELSEIF <condition2>.
          <statement block>.
      ELSE.
          <statement block>
      ENDIF.

      [For Example]
      DATA xx TYPE N VALUE 6.
      IF xx = 5.
         WRITE: / 'The value of xx is',5.
      ELSEIF xx = 6.
         WRITE: / 'The value of xx is',6.
      ELSE.
         WRITE: / 'The value of xx is',7.
      ENDIF.

    2)使用CASE...WHEN...ENDCASE语句实现分支

      [Syntax]
      CASE <f>.
        WHEN <f1>.
           <statement block>.
        WHEN <f2>.
           <statement block>.
        WHEN ...
        WHEN OTHERS.
           <statement block>.
       ENDCASE.

     [For Example]
     
DATA xx TYPE N VALUE 8.
      CASE xx.
       WHEN 5.
         WRITE: / 'The value of xx is',5.
       WHEN 6.
         WRITE: / 'The value of xx is',6.
       WHEN 7.
         WRITE: / 'The value of xx is',7.
       WHEN OTHERS.
         WRITE: / 'The value of xx is',8.
      ENDCASE.


   
3)使用LOOP...ENDLOOP语句实现循环控制
     LOOP语句通常用于实现内表数据的循环读取及操作。

     [For Example]
     LOOP AT itab.
       WRITE:itab.
     ENDLOOP.

    4)使用DO语句实现内部循环次数控制。
      DO 语句可以指定循环次数。

     [Syntax]
     DO.
       [<n> TIMES]
       [VARYING <f> FROM <f1> NEXT <f2>].
       <statement block>
     ENDDO.
     注:
     n:可以是数字或者变量,如果n是0或者负数,系统不执行该循环。
     TIMES:循环次数。
     VARYING:选项在每次循环中给变量<f>重新赋值。
     使用DO语句时要避免死循环,如果不使用TIMES选项,则在语句块中至少包含一个EXIT、STOP、REJECT语句,以使系统能退出循环。

      [For Example]
      DO 5 TIMES.
        WRITE:/ 'This Index is',SY-INDEX.
      ENDDO.

      DO语句内部还可以实现多层嵌套,为了保证程序可读性,建议嵌套最多不要超过6层。

      [For Example]
      DATA do_index TYPE N.
      DO 5 TIMES.
        do_index = SY-INDEX.
        WRITE:/ 'This Index is',do_index.
        DO 2 TIMES.
           WRITE:/ 'First Index Loop is',do_index, 'The Next Index Loop is',SY-INDEX.
        ENDDO.
      ENDDO.
      执行结果如下图:

    5)使用WHILE条件循环
      [Syntax]
      WHILE <condition> [VARY <f> FROM <f1> NEXT <f2>].
         <statement block>
      ENDWHILE.
     
循环终止CONTINUE、CHECK、EXIT

      [For Example]
      无条件终止循环(CONTINUE):
      DATA while_index TYPE N VALUE 0.
      WHILE while_index < 5.
        while_index = while_index + 1.
        IF while_index = 3.
          CONTINUE.
        ENDIF.
        WRITE:/ 'while_index',while_index.
      ENDWHILE.
      执行结果如下图:



有条件终止循环(CHECK):
DATA while_index TYPE N VALUE 0.
WHILE while_index < 5.
  while_index = while_index + 1.
  CHECK while_index BETWEEN 2 AND 5. 
  WRITE:/ 'The while_index is',while_index.
ENDWHILE.
执行结果:

完全终止循环(EXIT):
DATA while_index TYPE N VALUE 0.
WHILE while_index < 5.
  while_index = while_index + 1.
  IF while_index = 3.
    EXIT.
  ENDIF.
执行结果:

     6)使用ONCHANGE实现循环内部数据管控
      当循环的数值发生变动时,可以用表达式ONCHNAGE来触发数值变动事件。
      [For Example]
      DATA while_index TYPE N VALUE 0.
      WHILE while_index < 5.
        while_index = while_index + 1.
        DO 2 TIMES.
          ON CHANGE OF while_index.
            WRITE:/ 'The while_index has change value is',while_index.
          ENDON.
          WRITE:/ 'SY-INDEX=',SY-INDEX.
        ENDDO.
      ENDWHILE.
      执行结果如下图:

 

 

目录
相关文章
|
6月前
|
程序员
开发语言漫谈-ABAP
ABAP是SAP公司专门用于SAP软件环境的专门语言
|
SQL 设计模式 前端开发
【置顶】SAP ABAP开发实战——从入门到精通系列目录
本文章为SAP ABAP开发实战——从入门到精通系列的目录以及关于该教程的后续写作计划表
1578 0
【置顶】SAP ABAP开发实战——从入门到精通系列目录
|
BI
SAP ABAP在线预览文档对象的开发实现
应用场景:有些定制化开发(报表/功能增强等)完成之后,客户需要将其操作手册或者相关文档放在某个报表的初始画面,供实际操作者在线查阅,当然这个功能也同样类似于模板的下载,这里就以在线预览(直接打开)为例进行说明。
225 0
|
前端开发 JavaScript 数据库
如何使用 Restful ABAP Programming 编程模型开发一个支持增删改查的 Fiori 应用(二)
Restful ABAP Programming 编程模式是 ABAP 这门编程语言在不断向前进化的过程中,诞生的一门新的编程模型,简称为RAP模型。
156 0
如何使用 Restful ABAP Programming 编程模型开发一个支持增删改查的 Fiori 应用(二)
|
程序员 BI
也谈SAP业务顾问如何避免被ABAP开发顾问怒打
也谈SAP业务顾问如何避免被ABAP开发顾问怒打
也谈SAP业务顾问如何避免被ABAP开发顾问怒打
abap开发function module时使用tables传递参数报错过时的解决方法
如下图,我写了一个Function Module我要在tables中添加一个参数TABLES参数已过时不管怎么点击保存按钮,一直报错,怎么办呢?不管是不是过时,狂点回车,就保存了
1744 0
ABAP开发基础知识:1) ABAP基础程序类型(ABAP Elementary Data Types)
ABAP程序共包含8种基本数据类型定义,下表 数据类型名称 描述 属性 C Character Text(字符类型) 默认长度=1,默认值=blank,最大长度无限制 N Numeric Text(数字类型) 默认长度=1,默认值=“0.
849 0
ABAP开发基础知识:2) 变量的声明(Declaring Variables)
本篇文件主要讲解的是在ABAP编程过程中如何声明变量。     1.按类型定义变量     ABAP的变量需要通过关键字DATA进行声明,当同时声明多个变量时,需要在DATA后面加冒号,如“DATA:”,每个变量可以分配默认值,使用"VALUE ‘默认值’"进行定义,基本语法如下:     DATA  (长度)  TYPE   VALUE  . 例如:定义一个C类型变量“TEST1”,长度为10,默认值为“Hello Sap” 。
1633 0
ABAP开发基础知识:3) 自定义数据类型(User-Defined Data Types)
在前面曾经介绍过,ABAP共有8种基本数据类型,但是这些数据类型属性太为单一,为了方便开发人员操作和理解,SAP还提供自定义数据类型,让用户能自行定义数据类型的名称及属性,通过关键字TYPES能够实现自定义功能,其语法格式与变量定义类似,通过TYPES声明的参数可以被其它常量、变量引用,不能直接赋值。
1062 0
|
小程序
ABAP开发基础知识:11)子程序的建立与调用
ABAP子程序(Subrouting)是包含在程序中的一段具有一定功能的代码,能够将某个功能作为一个小程序包含在主程序中,以方便程序分析及阅读。特别是一此程序中多次用到的功能,可以简化代码,增加程序的可读性且便于维护。
1486 0