SAP RANG语法

Range  和select-option 的变量是差不多的

sign = 'I' 或 sign = 'E' 是指INCLUED 和 EXCLUDE

OPTION = 'EQ' 或其他操作符。。

LOW 是指最少值(操作符是范围的话)

HIGH ( 如果操作符是‘EQ’,该field没用)

EX.

REPORT  YPMRP001.

TABLES MARA.
DATA: N TYPE I.
DATA: N1 TYPE I.
DATA: N2 TYPE I.

"用RANGE定义的内表
RANGES S_MATNR FOR MARA-MATNR OCCURS 0.
S_MATNR-SIGN = 'I'.
S_MATNR-OPTION = 'BT'.
S_MATNR-LOW  = '000000004000000041'.
S_MATNR-HIGH = '000000004000000100'.
APPEND S_MATNR.
SELECT COUNT(*) INTO N FROM MARA
WHERE MATNR IN S_MATNR.
WRITE N.

"普通方法定义的内表
DATA: BEGIN OF S_MATNR1 OCCURS 0,
        SIGN      TYPE C,
        OPTION(2) TYPE C,
        LOW       LIKE MARA-MATNR,
        HIGH      LIKE MARA-MATNR,
      END OF S_MATNR1.
S_MATNR1-SIGN = 'I'.
S_MATNR1-OPTION = 'BT'.
S_MATNR1-LOW  = '000000004000000041'.
S_MATNR1-HIGH = '000000004000000100'.
APPEND S_MATNR1.
SELECT COUNT(*) INTO N1 FROM MARA
WHERE MATNR IN S_MATNR1.
WRITE N1.

"用SELECT-OPTIONS
SELECT-OPTIONS:S_MATNR2 FOR MARA-MATNR
                  DEFAULT '000000004000000041' TO '000000004000000100' .
SELECT COUNT(*) INTO N2 FROM MARA
WHERE MATNR IN S_MATNR2.
WRITE N2.

输出结果如下:

转载于:https://my.oschina.net/u/4092683/blog/3039172

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值