在SAP中,有时候需要把单值的结构变成区间的结构,也就是类似SELECTION-OPTION的功能,SAP提供了RANGES来实现该功能.
单值的实例:
RANGES:g_werks FOR vbrp-werks.
"所有
CLEAR g_werks.
g_werks-sign = 'I'.
g_werks-option = 'EQ'.
g_werks-low = '1001'.
APPEND g_werks.
g_werks-sign = 'I'.
g_werks-option = 'EQ'.
g_werks-low = '1002'.
APPEND g_werks.
g_werks-sign = 'I'.
g_werks-option = 'EQ'.
g_werks-low = '1003'.
APPEND g_werks.
g_werks-sign = 'I'.
g_werks-option = 'EQ'.
g_werks-low = '1005'.
APPEND g_werks.
g_werks-sign = 'I'.
g_werks-option = 'EQ'.
g_werks-low = '1011'.
APPEND g_werks.
G_ranges就相当于 SELECTION-OPTION定义的类型。
这种方式适合值的个数并不多的情况,当值的个数特别多的时候,会显得代码特别长。遇到过一个工厂的 ranges ,进行权限控制,我的做法是抽离成一张 自建的权限表,循环权限表,往 ranges 里边放值。
实例:
RANGES:r_werks FOR marc-werks.
SELECT *
INTO CORRESPONDING FIELDS OF TABLE it_check
FROM zztrd_check_perm.
LOOP AT it_check INTO wa_check. "权限调