ABAP 7.40为我们带来了新的语法,我仍然在弄清楚它
我想在现有表lt_itab
中添加一个新行。我找到了一个解决方法,添加一个空行,并通过索引计算表的当前长度,但有更简单的方法吗?
SELECT spfli~carrid, carrname, connid, cityfrom, cityto
FROM scarr
INNER JOIN spfli
ON scarr~carrid = spfli~carrid
WHERE scarr~carrid = @carrier
ORDER BY scarr~carrid
INTO TABLE @DATA(lt_itab).
"How can I simplify the following code part?
DATA(lv_idx) = lines( lt_itab ).
APPEND INITIAL LINE TO lt_itab.
lt_itab[ lv_idx + 1 ] = VALUE #( carrid = 'UA'
carrname = 'United Airlines'
connid = 941
cityfrom = 'Frankfurt'
cityto = 'San Francisco' ).
答案 0 :(得分:4)
索引逻辑非常难看,您可以轻松地使用ASSIGNING
命令添加APPEND
来获取新添加的行的字段符号。然后,您可以使用该字段符号使用您现在使用的相同VALUE
构造填充表条目。
或者您可以在一个声明中完成:
APPEND VALUE #( ... ) TO lt_itab.
答案 1 :(得分:4)
It's all in the documentation:
lt_itab = VALUE #( BASE lt_itab ( carrid = ... ) ).