ABAP 内表实现多行同组的字段内容拼接
时间: 2024-02-09 18:13:28 浏览: 229
在 ABAP 中,可以使用 GROUP BY 和 REDUCE 语句来实现多行同组的字段内容拼接。
首先,使用 GROUP BY 语句将内表按照需要拼接的字段进行分组,例如:
```
DATA(lt_table) = VALUE ty_table(
( 'A' 10 )
( 'A' 20 )
( 'B' 30 )
( 'B' 40 )
).
DATA(lt_grouped) = REDUCE ty_grouped( INIT grouped = VALUE ty_grouped( )
FOR row IN lt_table
GROUP BY ( key = row-field1 )
NEXT grouped = VALUE #( grouped
( key = row-field1
values = REDUCE string_table( INIT val = VALUE string_table( )
FOR subrow IN GROUP row
NEXT val = VALUE #( val
( string = subrow-field2 ) ) ) ) ) ).
```
在以上示例中,ty_table 和 ty_grouped 都是自定义的结构体类型,string_table 是一个包含一个字符串字段的内表类型。lt_table 是需要拼接的原始内表,其中包含两个字段 field1 和 field2。通过 REDUCE 语句和 NEXT 子句,将 lt_table 按照 field1 分组,然后使用 INNER REDUCE 语句将同组的 field2 字段内容拼接成一个字符串,存储在 values 字段中。最终得到的 lt_grouped 内表中,每个元素代表一个分组,包含 key 和 values 两个字段。
注意:以上示例中使用了 VALUE 语句来初始化内表和结构体变量,需要在代码中定义相应的类型。在实际开发中,可以使用 DATA 或 TYPES 语句来定义类型。
阅读全文
相关推荐















