ABAP VALUE用法

文章介绍了在ABAP编程中,如何利用VALUE和FOR语句提高内表赋值的效率,包括直接赋值、条件筛选和基于原内表数据的追加操作。示例代码展示了这些方法的用法,但提到BASE操作在当前ECC版本可能不被支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求场景

在日常写测试代码或者一些简单的赋值时,一个一个字段赋值效率太低,可以采用VALUE的方式赋值。

实现代码

DATA:
  BEGIN OF line1,
    col1 TYPE i,
    col2 TYPE i,
    col3 TYPE i,
    col4 TYPE i,
  END OF line1,
  itab1 LIKE TABLE OF line1,
  itab2 LIKE TABLE OF line1.

" 直接给内表赋值
itab1 = VALUE #(
  ( col1 = 41 col2 = 42 col3 = 43 col4 = 44 )
  ( col1 = 31 col2 = 32 col3 = 33 col4 = 34 )
  ( col1 = 21 col2 = 22 col3 = 23 col4 = 24 )
  ( col1 = 11 col2 = 12 col3 = 13 col4 = 14 ) ).

" Value for in 可以用来筛选
itab2 = VALUE #(
  FOR wa IN itab1 WHERE ( col1 < 30 )
    ( col1 = wa-col1 col3 = wa-col3 + wa-col1 ) ).

" Base 基于原内表数据 == APPEND
itab1 = VALUE #( BASE itab1
    col1 = 10 ( col2 = 42 col3 = 43 col4 = 44 )
              ( col2 = 32 col3 = 33 col4 = 34 ) ).

" APPEND
APPEND VALUE #( col1 = 8 col2 = 42 col3 = 43 col4 = 44 ) TO itab1.


总结

这里实现的代码非原创,是转载的,除了BASE这个其他均本地验证过,应该是目前的ECC版本不支持BASE。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值