SAP VALUE、补/去前导零、Line_exists判断等用法
使用此语法,可以省去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' ).

浙公网安备 33010602011771号