如何使用 VALUE 表达式向 itab 添加新行

How to add new line to itab with VALUE expression

ABAP 7.40 给我们带来了新的语法,我还在研究中。
我想在现有的 table lt_itab 中添加一个新行。我通过添加一个空行并计算出 table 的当前长度以按索引更新找到了一个解决方法,但是有没有更简单的方法?

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' ).

索引逻辑很丑陋,你可以很容易地使用 ASSIGNING 添加到 APPEND 命令来为新添加的行获取一个字段符号。然后,您可以使用该字段符号使用您现在使用的相同 VALUE 结构来填充 table 条目。

或者您可以在一条语句中完成:

APPEND VALUE #( ... ) TO lt_itab.

It's all in the documentation:

lt_itab = VALUE #( BASE lt_itab ( carrid = ... ) ).