SAP VALUE、补/去前导零、Line_exists判断等用法

1、DATA(ls_data) = gt_data[ index ].

使用此语法,可以省去read,直接读取指定行号的数据,但需要判断gt_data不是否有指定index行,需要catch 异常CX_SY_ITAB_LINE_NOT_FOUND异常,会直接dump.

2、Line_exists

IF line_exists( gt_data[ field1 = ' ' field2 = ' ' ] ). ENDIF.

使用此语法,可判断内表中行是否有满足条件的,无需LOOP判断,省去好多代码。

3、Select 内表

select 内表,可以i对内表使用sql的语法。例如:取内表某一列的最大值,就可以直接MAX,无需排序后,读第一行,
需要append a表 to B表时,但A表字段与B表字段数量不一致时,可以使用

SELECT FROM @a表 AS a FIELDS field1 APPENDING CORRESPONDING FIELDS OF TABLE @b表.4、

4、前导0处理

lv_field = |{ lv_field ALPHA = OUT }|.//去前导0

lv_field = |{ lv_field ALPHA = IN }|.//加前导0

5、Value

lr_data[] = VALUE #( sign = 'I' option = 'BT' ( low = 1 high = 2 )
( low = 3 high = 4 )
( low = 4 high = 5 )
option = 'EQ' ( low = 6 ) ).
对range表赋值,非常简便。

lt_data[] = value #( for wa in gt_data where ( field1 = '01' and field2 = '02 ) ( wa ) ).

赋值指定条件的数据 

storagelocationdata  VALUE #(  plant '8000' stge_loc '1004'  ).

 

posted @ 2023-04-19 17:59  下一詀110  阅读(173)  评论(0)    收藏  举报