使用索引更改内部 table 而不 header

Changing internal table without header using index

如何将旧的 BW3.x 代码(tables with header)更改为 BW7.x(tables without header)

旧代码:

LOOP AT p_package.
  gv_tabix = sy-tabix.
  " changing header ... and more
  MODIFY p_package INDEX gv_tabix.

此处 header 行已更改,table 使用 modifyindex

更新

不幸的是,我不知道如何在没有 header 的 table 上使用 index 关键字。

到目前为止我编码了:

LOOP AT p_package into p_package_line.
  gv_tabix = sy-tabix.
  " changing p_package_line ...
  MODIFY table p_package from p_package_line

但我不确定是否正确。

使用字段符号。这消除了显式 MODIFY 完全 table 的需要:

LOOP AT p_package ASSIGNING FIELD-SYMBOL(<package_line>).
  <package_line>-foo = 'bar'.
ENDLOOP.

(或旧版本)

FIELD-SYMBOLS <package_line> TYPE LINE OF p_package.
LOOP AT p_package ASSIGNING <package_line>.
  <package_line>-foo = 'bar'.
ENDLOOP.

如果想坚持使用MODIFY:

MODIFY p_package FROM p_package_line INDEX foobarhyperprefixstuffthingy_tabix.

(是的,it's in the documentation :-))。