我认为这个问题最好用一个例子来说明。我有2个不同数据类型的表格(但table_type1
可以轻松转换为table_type2
)
i_tab1 type table_type1
(字段:matnr
,maktx
,spras
)
i_tab2 type table_type2
(字段:mandt
,matnr
)
是否可以使用VALUE
运算符,可能使用FOR line in i_tab1
(或类似的内联命令)将i_tab1的数据转换并传输到i_tab2?我在考虑以下内容:
i_tab2 = VALUE # (for line in i_tab1
BASE = gt_itab2 (
MANDT = sy-mandt;
MATNR = line-matnr
)
).
答案 0 :(得分:4)
你很亲密。这是一个您可能会发现有用的解决方案。
REPORT ZZZ.
TYPES: BEGIN OF tab1_line,
matnr TYPE mara-matnr,
maktx TYPE makt-maktx,
spras TYPE makt-spras,
END OF tab1_line,
BEGIN OF tab2_line,
mandt TYPE t000-mandt,
matnr TYPE mara-matnr,
END OF tab2_line,
table_type1 TYPE STANDARD TABLE OF tab1_line WITH EMPTY KEY,
table_type2 TYPE STANDARD TABLE OF tab2_line WITH EMPTY KEY.
DATA:
g_tab1 TYPE table_type1,
g_tab2 TYPE table_type2.
START-OF-SELECTION.
g_tab2 = VALUE #( BASE g_tab2 FOR i IN g_tab1 ( mandt = sy-mandt matnr = i-matnr ) ).