VALUE

VALUE主要是用来给一个结构、内表等对象初始化值。主要有下面三个方式:

...value dtype\#()  构造一个任意类型的初始值

 ...value dtype\#( comp1 = a1 comp2 = a2 ....) 构造一个任意类型的结构体的初始值

 ...value dtype\#( ( ...) (...) ... )...  构造一个任意类型的内表的初始值

上面dtype\# 意思是可以指定一个dtype的类型或者直接用#,用#时,其类型和被赋值的对象的数据类型一样。

如果value后的dtype是个表,则必须指定key值,或者声明为empty key。

 

1.

DATA itab TYPE RANGE OF i.

itab VALUE #sign 'I' option 'BT' low 1  high 10 )

                                         low 21 high 30 )

                                         low 41 high 50 )

                           option 'GE' low 61 ) ).

cl_demo_output=>displayitab ).

2.

DATA itab TYPE TABLE OF i.

itab VALUE #( ( )

                )

                ) ).

*itab = VALUE #( ( 4 ) ( 5 ) ( 6 ) ).

cl_demo_output=>displayitab ).

3.

TYPES ty_date TYPE TABLE OF string WITH EMPTY KEY.

DATA(lt_date) = VALUE ty_date( ( | { CONV dsy-datlo DATE ENVIRONMENT } | )

                               | { sy-datlo               DATE ENVIRONMENT } | )

                               | { CONV dsy-datlo + DATE ENVIRONMENT } | ) ).

cl_demo_output=>displaylt_date ).

这里DATE = environment是用来格式化日期的,表达式里必须有日期类型d才能使用。environment对应的值是CL_ABAP_FORMAT=>D_ENVIRONMENT

另外对日期进行加减时还需conv。如果第二行不用DATE = environment,那么输出就是20160606这样的格式。关于嵌入表达式可以F1看看

4.

DATA:

  BEGIN OF struct1,

    col1 TYPE i VALUE 11,

    col2 TYPE i VALUE 12,

  END OF struct1.

DATA:

  BEGIN OF struct2,

    col2 TYPE i VALUE 22,

    col3 TYPE i VALUE 23,

  END OF struct2.

 

*struct2 = CORRESPONDING #( struct1 ).  “ 12   0

MOVE-CORRESPONDING struct1 TO struct2. “ 12   23

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值