SAP Ranges 的用法

 在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.         "权限调整,抽离权限表 modify by fx 2020.06.18
    r_werks-sign = 'I'.
    r_werks-option = 'EQ'.
    r_werks-low = wa_check-WERKS.        "循环往 Ranges 里面放值
    APPEND r_werks.

  ENDLOOP.

选项介绍:

1.SIGN 值为 I 和 E 。 I是包含, E是排除, 一般使用I。

2.OPTION 如果HIGH 为空 ,为单值选择 。有 EQ、NE、GT、LE、LT等逻辑操作  对于*的  CP包含  NP是排除

 如果HIGH 不为空 为区间选择 有BT,NB可选

3.LOW 低值

4.HIGH 高值

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值