通常,我们将表字段声明为如下数据类型:
数据键类型 vbak-vbeln。
但是,我想在声明中动态地给出字段名称,如下所示:
数据键类型 vbak-字段名。
我怎么能做到这一点?
如果您使用任何类型的字段符号,您可以很容易地做到这一点。
然后,它很简单:
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.