ABAP开发关键字总结
关健字是语句的第一个词,它决定整个语句的意义,有四种不同类型的关健字 .
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开发关键字总结相关推荐
- SAP ABAP一组关键字 IS BOUND, IS NOT INITIAL和IS ASSIGNED的用法辨析
ABAP里的IS BOUND, IS NOT INITIAL和IS ASSIGNED这组关键字,如果平时不留心,很容易理解地似是而非.今天我们就来说一说它们的区别. 先把SAP帮助文档抄过来: IS ...
- ABAP开发环境语法高亮的那些事儿
关于SAP ABAP开发环境,Jerry之前写过几篇公众号文章: 那些年我用过的SAP IDE 不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧 使用Visual Studio Code ...
- ABAP开发环境终于支持以驼峰命名法自动格式化ABAP变量名了
Jerry进入SAP成都研究院前,一直是用C/C++开发,所以刚接触ABAP,对于她在某些语法环境下大小写敏感,某些环境下不敏感的特性很不适应.那时候Jerry深深地怀念之前在C/C++编程时遵循的驼 ...
- abap 帮助文档 中文_一个13年ABAP老兵的建议:了解这些知识对ABAP开发有百利而无一害...
在Jerry之前的图片推送中,我提到了SAP社区上这样一篇博客: Proof of Concept: Deploying ABAP in Kubernetes https://blogs.sap.co ...
- 一个13年ABAP老兵的建议:了解这些基础知识,对ABAP开发有百利而无一害
在Jerry之前的图片推送中,我提到了SAP社区上这样一篇博客: Proof of Concept: Deploying ABAP in Kubernetes https://blogs.sap.co ...
- ABAP开发基础知识
ABAP开发基础知识 1. 内表的定义.... 1 2. 内表的赋值.... 1 3. 内表数据管理.... 1 3.1.内表的清空... 1 3.2.INSER ...
- ABAP 开发系列(08): SAP Open SQL
在学习 ABAP WorkBench时了解到SAP 的三层架构: – 表现层(Presentation),应用层(Application),数据层(Database) Open SQL就发生在 App ...
- SAP ABAP 开发管理 代码内存标记 位置使用清单(Mark of memory id)
SAP ABAP 开发管理 代码内存标记 位置使用清单(Mark of memory id) 引言: 代码内存标记(Mark of memory id)是我开发中对 ABAP MEMORY ID 使用 ...
- abap开发语法小结
1.在涉及到数字计算的时候可能会要求数值保留几位小数,以百分比的形式显示占比: 2.定义选择条件: (1)单选 PARAMETERS:P1 RADIOBUTTON GROUP R1 DEFAULT ' ...
最新文章
- Linux System Programming --Chapter Four
- 关于版本号:alpha、beta、rc、stable
- java替换特殊字符串
- C++ error:LNK2005 已经在*.obj中定义
- boost::fusion::front_extended_deque用法的测试程序
- 判断list集合不为空
- 分布式全局ID生成器设计
- 极光推送收费标准_刚刚,安卓统一推送又有进展了!华为率先...
- srve0255e尚未定义要怎么办_我的可转债中签了,该怎么办?
- Android导入第三方静态库.a编译成动态库.so
- C++调用Go方法的字符串传递问题及解决方案
- oracle颜色,oracle - Oracle SQL Developer - 如何使用颜色显示百分比(非数字) - 堆栈内存溢出...
- 文件夹选择对话框 JS实现(转)
- mysql 范围索引 els_MySQL 复习笔记
- EMNLP'21 | 多语言和跨语言对话推荐
- python调用java完整教程
- 中国城市经纬度表(精确到县区)Google地图用
- LVS linux virtual server 章文嵩
- html中的导航条制作
- 在windows和Linux上安装ImageMagick与jmagick,Maven配置、Java图片压缩代码(整理网上、结合自己情况、编写出来的新安装方式)
热门文章
- stm32串口发送数据的配置,以及通过串口发送结构体数组总是多一个00字节的问题
- 一段比较浅显易懂的java识别pdf 文字及图片
- 一条蠕虫长 1 寸,在一口深为 N 寸的井的底部。已知蠕虫每 1 分钟可以向上爬 U 寸,但 必须休息 1 分钟才能接着往上爬。在休息的过程中,蠕虫又下滑了 D 寸。就这样,上爬和下滑 重复进行。请
- linux屏幕分辨率文件,linux下屏幕分辨率的手工调整
- oracle 三张表差集,oracle交集并集差集 oracle取两张表并集
- 华为OSPF配置练习
- 顺序查找与哨兵的使用二分查找
- Python入门100个实例(20)——对象的例子
- Notify通知机制解析
- 制造业ERP失败原因探秘