ABAP语法篇2 内表操作语法
-
VALUE
-
MOVE-CORRESPONDING
-
CORRESPOING
-
FOR
-
REDUCE
-
GROUP BY
-
FILTER
VALUE语法:
结构赋值
... VALUE dtype | #( [BASE dobj] comp1 = dobj1 comp2 = dobj2 ... ) ...
内表赋值
... VALUE dtype | #( [BASE itab] ( (line1-com1 = dobj1) ( line2 ..) ... ) ...
"内表不能带表头
IT_VKORG = VALUE #( KUNNR = E_KNA1-KUNNR ( VKORG = '3000' )
( VKORG = '6008' ) ) .
lt_fieldnames = VALUE #(
( fieldname = '公司代码' )
( fieldname = '供应商编码' )
( fieldname = '供应商描述' )
( fieldname = '供应商返利值' )
( fieldname = '供应商余额' )
( fieldname = '供应商余额与返利值差额' )
( fieldname = '取数年月' )
( fieldname = '实销实结本月总金额' )
( fieldname = '上月累积未结算' )
( fieldname = '已结算金额' )
( fieldname = '未结算金额' )
( fieldname = '匹配余额' )
( fieldname = '铺底金额' )
( fieldname = '供应商库存金额' )
MOVE-CORRESPONDING语法:
CORRESPONDING语法:把B表里相同字段的值赋值到A表
示例:
itab[ … ]语法
… itab[ … ] …
相当于read table itab ….
u缺点
如果对应没找到,会抛出CX_SY_ITAB_LINE_NOT_FOUND异常
系统变量SY-SUBRC不会记录成功与否
u改进
IF line_exists ( itab[…] )
…..
ENDIF
通过这行语法判断行是否查找到
FOR语法
描述
加强版本的loop at语法,与REDUCE、VALUE关键字配合使用
语法
…FOR i = ... [THEN expr] UNTIL | WHILE log_exp ...
…VALUE itab( FOR i = … [THEN expr] UNTIL | WHILE log_exp ... )
…REDUCE type( INIT FOR …. NEXT …..
REDUCE语法
GROUP BY语法
FELTER语法
描述
可以根据指定值(一个)或者指定内表(多个)的值过滤itab并返回itab类型的结果集
语法
FILTER type( itab [EXCEPT] [IN ftab] [USING KEY keyname ]
WHERE c1 op f1 [AND c2 op f2 [...] ] ) ...
变式
FILTER type( itab …) 对应一个值过滤
FILTER type( itab in tab …)对应多个值过滤
其它
EXCEPT如果不指定则表示满足条件的找出来,如果指定则表示不满足条件的找出来
WHERE对应过滤的条件,是必须要指定的
3. OPEN SQL
SELECT SINGLE @ABAP_TRUE INTO @DATA(EXISTS) FROM KNA1 WHERE KUNNR EQ @I_KNA1-KUNNR.
IF EXISTS <> ABAP_TRUE.
ENDIF.
乐善好施,能学新知!!!
上一个打赏的兄dei已经解锁66种新姿势了
下一个就看您了
滴赏一下,立马上车