ABAP中如何用FOR循环清空指定结构字段并生成新内表?
SAP ABAP:用FOR循环实现指定字段清空后写入新内表
可以用ABAP的VALUE构造器结合FOR循环实现这个需求,无需逐个映射所有字段,仅保留原结构大部分字段值、清空指定的f1、f2字段即可。
正确实现代码
lt_n = VALUE #( FOR ls_a IN lt_a BASE ls_a ( f1 = '' f2 = '' ) ).
若使用字段符号作为循环变量,写法如下:
lt_n = VALUE #( FOR <ls_a> IN lt_a BASE <ls_a> ( f1 = '' f2 = '' ) ).
代码说明
FOR ls_a IN lt_a:遍历原内表lt_a的每一行数据BASE ls_a:先将当前循环行的所有字段值复制到新结构中,保留原字段的原有内容( f1 = '' f2 = '' ):仅覆盖指定的f1、f2字段,将其清空(如果是数值类型字段,需替换为0或对应类型的初始值)
这种写法和你提供的传统LOOP写法效果完全一致,既避免了逐个映射所有字段的繁琐,又精准实现了仅清空指定字段的需求。
内容的提问来源于stack exchange,提问作者divScorp
相关产品推荐
相关产品推荐

