ABAP 内表实现实现多行同组字段内容拼接
时间: 2023-06-29 21:12:44 浏览: 306
可以使用内表和循环语句实现多行同组字段内容拼接,示例代码如下:
TYPES: BEGIN OF ty_data,
field1 TYPE data_type1,
field2 TYPE data_type2,
END OF ty_data.
DATA: lt_data TYPE STANDARD TABLE OF ty_data,
ls_data TYPE ty_data,
lt_result TYPE STANDARD TABLE OF string.
SELECT field1 field2 INTO TABLE lt_data FROM table_name.
SORT lt_data BY field1.
LOOP AT lt_data INTO ls_data.
IF lt_result IS INITIAL OR ls_data-field1 NE lt_result[ 1 ]-field1.
APPEND INITIAL LINE TO lt_result ASSIGNING FIELD-SYMBOL(<result>).
<result> = ls_data-field1.
ENDIF.
<result>-value = <result>-value && ls_data-field2 && ';'.
ENDLOOP.
LOOP AT lt_result INTO DATA(ls_result).
WRITE: / ls_result-field1, ls_result-value.
ENDLOOP.
在以上示例代码中,我们首先从表table_name
中获取field1
和field2
的值,并将其存储在内部表lt_data
中。然后我们按照field1
的值对lt_data
进行排序。接着,我们循环lt_data
内的每个数据行,如果当前行的field1
值与前一行不同,则向内部表lt_result
中添加一行,并将当前field1
的值存储在其中。如果当前行的field1
值与前一行相同,则将当前field2
的值拼接到lt_result
中当前field1
的行的value
字段中。最后,我们循环lt_result
内的每个数据行,输出field1
和value
的值。
阅读全文
相关推荐














