SAP ABAP RANGE 详解(SELECTION-OPTIONS)

2023-10-13 18:38:24 浏览数 (2)

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') ).

0 人点赞