我认为最好用一个示例来说明这个问题。我有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
)
).
您很接近。这是您可能会发现有用的解决方案。
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 ) ).