ABAP 内表实现实现多行同组字段内容拼接
时间: 2023-06-29 09:12:44 浏览: 275
可以使用内表和循环语句实现多行同组字段内容拼接,示例代码如下:
```
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`的值。
阅读全文