内部调用程序
无返回调用:SUBMIT
调用并返回:SUBMIT AND TETURN
定义数据元素
TYPES type(len) TYPE type [DECIMALS dec]
DATA data(len) TYPE type [DECIMALS dec] [VALUE val]
TYPES type(len) LIKE dobj [DECIMALS dec]
DATA data(len) LIKE dobj [DECIMALS dec] [VALUE val]
定义结构体
TYPES|DATA: BEGIN OF structure .
k1 [TYPE type|LIKE dobj]... k2 [TYPE type|LIKE dobj]... ...[可套用INCLUDE包含关系]
END OF structure.
TYPES|DATA structure TYPE str_type| LIKE str_dobj ...
TYPES|DATA structure TYPE dbtab ...
WRITE 常用后缀
LEFT-JUSTIFIED左对齐
CENTERED居中
RIGHT-JUSTIFIED右对齐
UNDER g对去字段g开始输出
NO-GAP不输出间隔
NO-ZERO用空格代替0
NO-SIGN不输出符号
逻辑运算符 EQ:= NE:<>|>< LT:< LE:<= GT:> GE:>+
IS INITIAL 是否为初始值
IS ASSIGNED 是否已分配值
IS SUPPLIED 参数是否被实参填充
IS REQUESTED 参数是否未被实参填充
分支控制
IF ... ELSE IF ... ELSE ... ENDIF.
CASE ... WHEN ... WHEN OTHERS ... ENDCASE.
循环控制
DO n TIMES ... ENDDO.
WHILE (为真时执行的条件) ... ENDWHILE.
终止循环
CONTINUE跳过本轮循环
CHECK为真时才执行当前循环
EXIT结束最近的循环
CATCH ... ENDCATCH .检查语句,类似IF,但中间部分错误仍可以执行
连接字符串
CONCATENATE s1 s2 ... INTO s_dest [SEPARATED BY sep]
拆分字符串
SPLIT s_source AT sep INTO s1 s2 ...
查找字符串:可通过对str前后添加'.'与'*'实现灵活查找
SERCH c FOR str .
替换字符串:在s_dest的前len长度范围内,用str2替换str1)
REPLACE str1 WITH str2 INTO s_dest [LENGTH len].
确定字符串长度
STRLEN( str )
CONDENSE删除字段中多余空格
TRANSLATE字符转化
定位字符串操作:从第o位起,去n位
str+o(n)
控制级操作
AT level ... ENDAT.
FIRST:第一次循环时会执行
LAST:最后一次循环执行
NEW f:f列及f列之前的字段不同与上一行执行
END OF f:下一行任何字段不同与上一行执行
SUM:累加,一般用于AT与ENDAT之间
DATA itab ... WITH HEADER LINE ...
TYPES|DATA itab [WITH key] [INITIAL SIZE n].
INSERT line INTO itab INDEX idx .
INSERT:插入 APPEND:附加 COLLECT:累加 READ:读取行 DODIFY:修改 DELETE:删除
LOOP:循环处理 SORT:排序
动态数据对象
FIELD SYMBOLS:声明 ASSIGN:赋值
FIELD-SYMBOLS <FS> [TYPE type|LIKE dobj]
ASSIGN f TO <fs>
ASSIGN f[+o][(1)] TO <fs>
ASSIGN (f) TO <fs>
ASSIGN f TO <fs> CASTING
ASSIGN f TO <fs> CASTING {TYPE type|LIKE dobj} [DECIMALS dec]
内部调用程序无返回调用:SUBMIT调用并返回:SUBMIT AND TETURN定义数据元素TYPES type(len) TYPE type [DECIMALS dec]DATA data(len) TYPE type [DECIMALS dec] [VALUE val]TYPES type(len) LIKE dobj [DECIMALS dec]DATA dat...