点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我们在从数据库表获取数据的时候经常会根据某个范围来获取,大致方式如下:
select * into table A
from B
where b~a in C.
这里的C是一个范围,我们通常用以下的方式来定义,
RANGES: lr_matnr FOR mara-matnr.
DATA: r_matnr TYPE RANGE OF mara-matnr.
这两种定义方式是不一样的,区别的地方截图给大家:
用ranges方式定义的数据会自动生成一个工作区,而type range of 则不会。
在后面的代码中我们要注意,ranges 定义的 lr_matnr 在赋值的时候指的是工作区,要赋值多个数据时要使用 lr_matnr[]。
赋值对比如下:
lr_matnr = VALUE #( sign = 'I' option = 'EQ' low = '101' ).
r_matnr = VALUE #( sign = 'I' option = 'EQ' ( low = '101' )
( low = '102' )
( low = '103' )
( low = '104' ) ).
lr_matnr[] = VALUE #( sign = 'I' option = 'EQ' ( low = '101' )
( low = '102' )
( low = '103' )
( low = '104' ) ).
在平常开发过程中,我们定义数据一定要确定好工作区和内表的区别,尽可能增多代码的可读性,以后大家一起努力吧。