ABAP 7.40之后出现了很多新鲜的语法,这些变革虽谈不上是革命性的,但是对于五六年甚至更久时间用
同一套语法体系的ABAPER来说,还是有不少惊喜,废话不多说,慢慢研究吧。
一、数据定义
1.变量
以前我们定义一个变量是这样的:
DATA:l_str TYPE string.
现在可能是这样的
DATA(l_str) = 'China'.
2.行内定义:
SELECT
but000~partner,
but000~name_org1,
but000~bu_group,
lfa1~nodel
FROM but000 INNER JOIN lfa1 ON but000~partner = lfa1~lifnr
FOR ALL ENTRIES IN @gt_partner
WHERE but000~partner = @gt_partner-partner
INTO TABLE @DATA(lt_but).
注意@DATA(TAB)语句的强大,有了它,我们在访问数据库的时候,只要对着FS写SELECT就好了,不需要构建各式各样 的内表和表类型了。注意在使用FOR ALL ENTRIES 语句的时候,关联的内表前面要加上@
3.字段符号
同理用FIELD-SYMBOL(<FS>)可以在行内定义字段符号
LOOP AT gt_partner ASSIGNING FIELD-SYMBOL(<fs_part>).
gs_alv-partner = <fs_part>-partner.
READ TABLE lt_but INTO DATA(wa_but) WITH KEY partner = <fs_part>-partner.
IF sy-subrc EQ 0.
gs_alv-name_org1 = wa_but-name_org1.
gs_alv-bu_group = wa_but-bu_group.
gs_alv-nodel = wa_but-nodel.
APPEND gs_alv TO gt_alv.
ENDLOOP.
4.内表
待整理