You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用表推导语法合并两个同类型ABAP内表?

问题原因

你写的表推导把两个for放在同一个行构造块里了,ABAP会把第二个for当成内表行结构lvc_s_fcat的组件名,但这个结构里根本没有叫for的组件,所以报了错。

正确写法

如果是要把两个内表的行合并到一起(把lt_fcat1和lt_fcat2的所有行都放进新内表),得把两个for分别放在独立的括号里:

data(lt_fcat1) = VALUE lvc_t_fcat( ).
data(lt_fcat2) = VALUE lvc_t_fcat( ).

data(lt_fcat) = VALUE lvc_t_fcat( ( for i in lt_fcat1 ( i ) )
                                  ( for j in lt_fcat2 ( j ) ) ).

嫌麻烦的话,用BASE关键字更简洁——先以lt_fcat1为基础,再追加lt_fcat2的行:

data(lt_fcat) = VALUE lvc_t_fcat( BASE lt_fcat1
                                  for j in lt_fcat2 ( j ) ).

要是你本来想生成笛卡尔积(让lt_fcat1的每一行都和lt_fcat2的每一行组合成新行),那得在同一个块里明确写出新行的构造逻辑,示例如下(需根据实际需求调整字段赋值):

data(lt_fcat) = VALUE lvc_t_fcat( for i in lt_fcat1
                                  for j in lt_fcat2
                                  ( fieldname = i-fieldname && '_' && j-fieldname
                                    coltext = i-coltext && '/' && j-coltext
                                    " 其他字段按需赋值
                                  ) ).

内容的提问来源于stack exchange,提问作者Cutter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 19:12:30