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

Abap 如何使用值表达式向itab添加新行,abap,Abap,ABAP7.40为我们带来了新的语法,我仍在摸索中。 我想在现有表中添加新行lt\u itab。我找到了一个解决办法,添加了一个空行,并计算出表的当前长度,以便按索引进行更新,但是有更简单的方法吗 SELECT spfli~carrid, carrname, connid, cityfrom, cityto FROM scarr INNER JOIN spfli ON scarr~carrid = spfli~carrid WHERE scarr~carrid = @carrie

ABAP7.40为我们带来了新的语法,我仍在摸索中。
我想在现有表中添加新行
lt\u 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' ).

索引逻辑非常难看,您可以很容易地使用
ASSIGNING
添加到
APPEND
命令,将字段符号添加到新添加的行中。然后,您可以使用该字段符号,使用与现在使用的相同的
构造填充表条目

或者,您也可以用一句话来表达:

APPEND VALUE #( ... ) TO lt_itab.
:


@Gert Beukema的解决方案可能是最合理的。我们只想在新功能真正有用的地方使用它们。在您的情况下,它们不是这样的,只是使用
APPEND
是否“BASE”真的是一个关键字,它意味着源表,因此可以自动处理所有表类型?我相信我链接的文档在这一点上相对清楚:如果指定了BASE,stab的内容在插入各行之前分配给返回值。我主要关注表类型,我将深入阅读文档。在我的测试用例中,这也是最快的解决方案
lt_itab = VALUE #( BASE lt_itab ( carrid = ... ) ).