变量的动态数据类型



通常,我们将表字段声明为这样的数据类型:

DATA key TYPE vbak-vbeln.

但是,我想在声明中动态地给出字段名,像这样:

数据键类型vbak-fieldname.

我该如何做到这一点?

您可以很容易地做到这一点,如果您使用类型为any的字段符号。

然后,就像这样简单:

DATA: lt_line type vbak.
Field-Symbols: <dat> type any.
Assign component (fieldname) of Structure lt_line to <dat>.

如果你能提供更多你想做的事情的信息,也许我能提供一个更好的选择。

在我的例子中,表名和字段名都是未知的。这就是我的最终解决方案。

DATA: T_REF TYPE REF TO DATA,
      TAB(20) TYPE c VALUE 'VBAP',
      TAB_COMP(20) TYPE c VALUE 'WERKS'.
FIELD-SYMBOLS: <T> TYPE ANY,
               <COMP> TYPE ANY.
CREATE DATA T_REF TYPE (TAB).
ASSIGN T_REF->* TO <T>.
ASSIGN COMPONENT TAB_COMP OF STRUCTURE <T> TO <COMP>.
SELECT WERKS FROM VBAP INTO <COMP> UP TO 5 ROWS.
    WRITE: / <COMP>.
ENDSELECT.

相关内容

  • 没有找到相关文章

最新更新