关健字是语句的第一个词,它决定整个语句的意义,有四种不同类型的关健字 .

1.说明性关健字

TYPES,DATA,TABLES,这些关健字说明定义数据类型或者说明程序可以访问的数据对象

TYPES:    用来定义数据结构类型 。

DATA:        用来定义数据结构对象 。

TABLES: 用来声明Table Work Area 的数据  。

-- TYPES与DATA的区别是,TYPES是用来自定义某种类型的,需要DATA语句实例化后才可以使用

-- DATA是用来声明基本数据类型对象(实体变量),对于用DATA直接定义的结构体对象(不参照其它结构类型),其同时也是一个结构类型 。

TYPE:  用来指定数据型态或宣告自定数据型态 。

LIKE:    LIKE 用在已有值的数据项 。

-- TYPE后面跟随的只能是某种类(型),而LIKE后面可以跟实例对象 ;

-- 参照结构体对象生成内表时只能用LIKE,不能用TYPE,因为结构体对象不是类型,只是一种实例对象 ;

-- 参照结构类型生成内表时可以用LIKE也可以用TYPE.其中通过LIKE定义的内表直接拥有参照结构类型的元素结构;

-- 定义的内表只能间接拥有被参照结构类型的元素结构,结构类型不能作为内表的工作区,只有结构体对象才可以;

CONSTANTS :用来声明常数

STATICS   :用来在当前程序中声明静态变量 ,程序结束后自动释放内存 ;

TYPES: begin of name_type ,

name(20) type  c ,

sex(2)        type  c ,

age            type     i ,

end of name_type .

-- 定义了个name_type 结构体类型 。

DATA: name type name_type .

-- 定义了个name对象,其类型为name_type .

data: begin of name_type ,

name(20)    type c ,

sex(2)        type c ,

age                type i ,

end fo name_type .

-- 定义了个name_type结构体对象。

2.事件关健字

这些关健字在ABAP中定义处理块,处理块是当特定事件发生时进行处理的语句组

-- 多用于report

INITIALIZATION : 在选择屏幕显示前,对变量进行初始化赋值

AT SELECTION-SCREEN : 对选择屏幕的数据输入进行检查

START-OF-SELECTION  : 选择屏幕处理完后,数据的处理

TOP-OF-PAGE                    : 列表显示启动新页,页头的输出

END-OF-PAGE                    : 一页结束时,页尾的处理

AT LINE-SELECTION      : 用户双击选中某行触发该事件

AT PF                             : 设置自定义的菜单

AT USER-COMMAND            : 当用户功能健时,触发该事件

3.控制关健字

条件分支

data flag type c value 'a' .

if flag = 'a' .

write:/'A'.

elseif flag = 'b'.

write: / 'B' .

else .

write: /'error' .

endif .

-- 每个判断语句之后都要加句号(.) 。

CASE 条件分支

DATA:

TEXT1   VALUE 'X',

TEXT2   VALUE 'Y',

TEXT3   VALUE 'Z',

STRING  VALUE 'A'.

CASE STRING.

WHEN TEXT1.

WRITE: / 'String is', TEXT1.

WHEN TEXT2.

WRITE: / 'String is', TEXT2.

WHEN TEXT3.

WRITE: / 'String is', TEXT3.

WHEN OTHERS.

WRITE: / 'String is not', TEXT1, TEXT2, TEXT3.

ENDCASE.

--计次循环

DO 2 TIMES .

WRITE: / 'X' .

ENDDO .

DO VARYING I FROM 1 TO 10

S = S + I .

ENDDO .

-- 无穷循环

DO .

XXXX

ENDDO .

-- 条件循环

WHILE I<= 10 .

S = S + I .

I = I + 1.

ENDWHILE .

-- 使用循环要避免死循环    。

-- 在语句块中至少应包含一个 EXIT、 STOP 或 REJECT 语句,以便系统能够退出循环。

循环控制

1) CONTINUE : 跳至循环的下一次 。(无条件终止一次循环)

DO   3  TIMES.

IF  SY-INDEX = 2.

CONTINUE.

WRITE / SY-INDEX.

ENDDO.

执行结果:

1

3

2) CHECK : 满足check条件之后才继续往下执行循环(有条件终止循环)

DO  5  TIMES.

CHECK  SY-INDEX  BETWEEN  2  AND  4.

WRITE  /  SY-INDEX.

ENDDO.

执行结果:

2

3

4

3) EXIT :  跳离循环 (完全终止循环)

DO  10  TIMES.

IF  SY-INDEX = 4.

EXIT.

ENDIF

WRITE / SY-INDEX.

ENDDO.

执行结果:

1

2

3

4.操作关健字

WRITE

write 用来在屏幕上打印输出数据。

write : ‘ 输出内容 '’ .

write at [/] [<pos>] [<len>]

/ : 换行,下一列

pos:屏幕X坐标

len: 显示长度

write: 数据项 显示参数

LEFT-JUSTIFIED              数据靠左显示

CENTERED                     数据靠中间显示

RIGHT-JUSTIFIED            数据靠右显示

UNDER <g>                    在数据项<g>的 X轴开始坐标显示

NO-GAP                          紧接着显示, 不留空格

USING EDIT MASK <m>   使用内嵌字符显示, 如 11:20:30

USING NO EDIT MASK      不使用内嵌字符

NO-ZERO                        数字前面 0 的部分不显示

NO-SIGN                         不显示正负号

DECIMALS <d>                显示 d 位小数字数

EXPONENT <e>                F(浮点数) exponent 的值

ROUND <r>                     四舍五入至小数位数下 r 位

CURRENCY <c>                币别显示

DD/MM/YY                      日期显示格式

MM/DD/YY

DD/MM/YYYY

MM/DD/YYYY

DDMMYY

MMDDYY

YYMMDD

sikp [n] : 空N行

WRITE  <icon-name>  AS  ICON  :显示系统图标

WRITE  <symbol-name>  AS  SYMBOL  :显示系统符号

-- 选择 “Edit” 下的 “Insert Statement”, 选 “WRITE”   接下来选择要查的群组, 如 SYMBOL 或 ICON,  按下 “Display” 即可查看所有系统图标或符号 。

WRITE  <资料项>  AS   CHECKBOX.  作为checkbox显示

-- 以字符串数据内容的第一个字符为 CHECK BOX 的输出, 如果是空白, CHECK BOX 显示为空白,  相反则显示 X ,

MOVE

MOVE  <F1>  TO  <F2> :将F1的值保存到F2中,等同于F2 = F1 , 内表同样适用。

MOVE  <F1>[+<O1>]  TO   <F2>[+<O2>]  :将字符串中指定字符保存到指定字符串中 。

data: f1(10) type c value ‘ABCDEFGHIJ’ ,

f2(10) type c value ‘ZZZZZZZZZ’ .

MOVE F1+3(5) TO F2+3(5) .

f2为:ZZZDEFGHZZ .

MOVE –CORRESPONDING   <Strings1>  TO  <String2>.将 Strings1中的 field组件的数据复制至String2 中, 仅复制相同名称的组件

DATA: BEGIN  OF  ADDRESS,

FIRSTNAME(10)  VALUE  ‘LULU’,

LASTNAME(10)  VALUE  ‘CHOU’,

TEL(12)  VALUE  ‘4660570’,

END  OF   ADDRESS.

DATA:BEGIN  OF   NAME,

FIRSTNAME(10),

LASTNAME(10),

E_MAIL(30),

END  OF   NAME.

MOVE-CORRESPONDING  ADDRESS  TO   NAME.

NAME-FIRSTNAME 变成 ‘LULU’, NAME-LASTNAME 变成 ‘CHOU’,  而 NAME-E_MAIL 则不变

ABAP开发关键字总结相关推荐

  1. SAP ABAP一组关键字 IS BOUND, IS NOT INITIAL和IS ASSIGNED的用法辨析

    ABAP里的IS BOUND, IS NOT INITIAL和IS ASSIGNED这组关键字,如果平时不留心,很容易理解地似是而非.今天我们就来说一说它们的区别. 先把SAP帮助文档抄过来: IS ...

  2. ABAP开发环境语法高亮的那些事儿

    关于SAP ABAP开发环境,Jerry之前写过几篇公众号文章: 那些年我用过的SAP IDE 不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧 使用Visual Studio Code ...

  3. ABAP开发环境终于支持以驼峰命名法自动格式化ABAP变量名了

    Jerry进入SAP成都研究院前,一直是用C/C++开发,所以刚接触ABAP,对于她在某些语法环境下大小写敏感,某些环境下不敏感的特性很不适应.那时候Jerry深深地怀念之前在C/C++编程时遵循的驼 ...

  4. abap 帮助文档 中文_一个13年ABAP老兵的建议:了解这些知识对ABAP开发有百利而无一害...

    在Jerry之前的图片推送中,我提到了SAP社区上这样一篇博客: Proof of Concept: Deploying ABAP in Kubernetes https://blogs.sap.co ...

  5. 一个13年ABAP老兵的建议:了解这些基础知识,对ABAP开发有百利而无一害

    在Jerry之前的图片推送中,我提到了SAP社区上这样一篇博客: Proof of Concept: Deploying ABAP in Kubernetes https://blogs.sap.co ...

  6. ABAP开发基础知识

    ABAP开发基础知识 1.         内表的定义.... 1 2.         内表的赋值.... 1 3.    内表数据管理.... 1 3.1.内表的清空... 1 3.2.INSER ...

  7. ABAP 开发系列(08): SAP Open SQL

    在学习 ABAP WorkBench时了解到SAP 的三层架构: – 表现层(Presentation),应用层(Application),数据层(Database) Open SQL就发生在 App ...

  8. SAP ABAP 开发管理 代码内存标记 位置使用清单(Mark of memory id)

    SAP ABAP 开发管理 代码内存标记 位置使用清单(Mark of memory id) 引言: 代码内存标记(Mark of memory id)是我开发中对 ABAP MEMORY ID 使用 ...

  9. abap开发语法小结

    1.在涉及到数字计算的时候可能会要求数值保留几位小数,以百分比的形式显示占比: 2.定义选择条件: (1)单选 PARAMETERS:P1 RADIOBUTTON GROUP R1 DEFAULT ' ...

最新文章

  1. Linux System Programming --Chapter Four
  2. 关于版本号:alpha、beta、rc、stable
  3. java替换特殊字符串
  4. C++ error:LNK2005 已经在*.obj中定义
  5. boost::fusion::front_extended_deque用法的测试程序
  6. 判断list集合不为空
  7. 分布式全局ID生成器设计
  8. 极光推送收费标准_刚刚,安卓统一推送又有进展了!华为率先...
  9. srve0255e尚未定义要怎么办_我的可转债中签了,该怎么办?
  10. Android导入第三方静态库.a编译成动态库.so
  11. C++调用Go方法的字符串传递问题及解决方案
  12. oracle颜色,oracle - Oracle SQL Developer - 如何使用颜色显示百分比(非数字) - 堆栈内存溢出...
  13. 文件夹选择对话框 JS实现(转)
  14. mysql 范围索引 els_MySQL 复习笔记
  15. EMNLP'21 | 多语言和跨语言对话推荐
  16. python调用java完整教程
  17. 中国城市经纬度表(精确到县区)Google地图用
  18. LVS linux virtual server 章文嵩
  19. html中的导航条制作
  20. 在windows和Linux上安装ImageMagick与jmagick,Maven配置、Java图片压缩代码(整理网上、结合自己情况、编写出来的新安装方式)

热门文章

  1. stm32串口发送数据的配置,以及通过串口发送结构体数组总是多一个00字节的问题
  2. 一段比较浅显易懂的java识别pdf 文字及图片
  3. 一条蠕虫长 1 寸,在一口深为 N 寸的井的底部。已知蠕虫每 1 分钟可以向上爬 U 寸,但 必须休息 1 分钟才能接着往上爬。在休息的过程中,蠕虫又下滑了 D 寸。就这样,上爬和下滑 重复进行。请
  4. linux屏幕分辨率文件,linux下屏幕分辨率的手工调整
  5. oracle 三张表差集,oracle交集并集差集 oracle取两张表并集
  6. 华为OSPF配置练习
  7. 顺序查找与哨兵的使用二分查找
  8. Python入门100个实例(20)——对象的例子
  9. Notify通知机制解析
  10. 制造业ERP失败原因探秘