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