Tab [ SAP TAB ](javascript:void\(0\);)
最近看同事使用ABAP新语法贼溜,省了好多的功夫,还在使用老语法的我眼红了。
所以就自己补一补7.40之后语法,能够让自己写代码更顺畅吧。
今天学习内联申明 inline
意思是:当编译器发现某段代码在调用一个内联函数时,它不是去调用该函数,而是将该函数的代码,整段插入到当前位置。这样做的好处是省去了调用的过程,加快程序运行速度。(函数的调用过程,由于有前面所说的参数入栈等操作,所以总要多占用一些时间)
所以 划重点: 内联函数 加快了速度,但是空间占用了更多 。
内联申明:
描述 | 7.40之前 | 7.40之后
---|---|---
变量申明赋值 | Data text type string. text = 'TAB'. | DATA(text) = 'TAB'
循环工作区 | DATA wa LIKE LINE OF itab. FIELD-SYMBOLS <FS> LIKE LINE OF itab. LOOP AT itab INTO wa. ENDLOOP. LOOP AT itab ASSIGNING <FS>. ENDLOOP. | LOOP AT itab into data(wa). ... ENDLOOP. LOOP AT itab ASSIGNING FIELD-SYMBOLS(<FS>). ... ENDLOOP.
调用方法 | DATA: a1 TYPE CHAR1. oref->method_a1( IMPORTING P1 = a1). | oref->method_a1( IMPORTING P1 = DATA(a1) ).
READ TABLE | DATA wa LIKE LINE OF itab. FIELD-SYMBOLS <FS> LIKE LINE OF itab. READ TABLE itab INTO wa INDEX 1. READ TABLE itab ASSIGNING <FS> INDEX 1. | READ TABLE itab INTO DATA(WA) INDEX 1. READ TABLE itab ASSIGING FIELD-SYMBOLS(<FS>) INDEX 1.
SQL | DATA itab TYPE TABLE OF MARA. SELECT * FROM MARA INTO TABLE itab WHERE matnr = lv_matnr. |
SELECT * FROM mara INTO TABLE @DATA (itab )
WHERE matnr = lv_matnr .SQL 2 | DATA :lv_matnr TYPE mara -matnr .
DATA :lv_matkl TYPE mara -matkl . SELECT SINGLE matnr matkl INTO
(lv_matnr ,lv_matkl )
FROM mara . | SELECT SINGLE matnr ,matkl INTO @DATA (lv_structue )
FROM mara .
\- TAB 学习技术,热爱生活