range是SAP中将前台的使用转化成对应的判断属性的数组。
由三部分组成 SIGN OPTION VALUE
SIGN:信号,I等于 E不等于
OPTION:选项参见JAVA中的常使用EQ
VALUE:动态赋值,包括LOW 和 HIGH两个,当为EQ或特定值时只需要填写LOW值,当为范围的如BT则需要填写LOW和HIGH对应的值
当为选择屏幕时建议命名为S_xxxx,比如S_VBELN
前台选定范围后再程序中可直接调用
比如
SELECT * INTO XXX FROM XXX WHERE VBELN IN S_VBELN
当S_VBELN[]没有值时会默认全取
IF LV_VBELN IN S_VBELN.
ENDIF.
可做直接判定
R_VBELN = 'IEQ'
R_VBELN-LOW = 'XXX'.
APPEND R_VBELN
CLEAR R_VBELN"记得清表头缓存,很多时候这个问题会引发意想不到的BUG
HANA的多功能拓展可以很方便的完成填充过程
SELECT 'I' AS SIGN,'EQ' as option ,matnr as low
from makt
into table @data(r_matnr)
where makt like 'aa%'.
直接生成R_MATNR 的range,记得判定R_MATNR[] IS NOT INITIAL 否则全取在一些场景速度反而慢
DATA r_matnr TYPE RANGE OF matnr.
r_matnr = VALUE #( sign = 'I' option = 'EQ' high = '' ( low = '120')
( low = '110') ).