ABAP动态选择表字段作为数据类型

时间:2013-03-11 11:12:09

标签: sap abap

通常,我们将表字段声明为数据类型,如下所示:

  

DATA键TYPE vbak-vbeln。

但是,我想在声明中动态地给出字段名称,如下所示:

  

DATA键TYPE vbak- fieldname

我怎么能做到这一点?

2 个答案:

答案 0 :(得分:1)

在我的情况下,表和字段名称都是未知的。所以这是我的最终解决方案。

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.

答案 1 :(得分:0)

如果您使用任何类型的字段符号,则可以非常轻松地执行此操作。

然后,它就像:

一样简单
DATA: lt_line type vbak.
Field-Symbols: <dat> type any.

Assign component (fieldname) of Structure lt_line to <dat>.

如果您提供有关您尝试做的更多信息,也许我可以提供更好的选择。