ABAP定义Range

**

ABAP定义Range

**

Range使用
Range Table为SAP R/3系统标准内表的一种,结构与Selection Table一致,由SIGN,OPTION,LOW,HIGH字段组成。Range Table 常用于 Open SQL 语句中的条件筛选,变式判断,可以优化取数效率与程序性能.

当然要注意 RANGE 的行项目有上限的,在 ECC6 中大概 2 万行将导致 ABAP DUMP。
定义
DATA: range_tab {TYPE RANGE OF type} | {LIKE RANGE OF dobj}.

DATA: gr_werks TYPE RANGE OF werks_d WITH HEADER LINE, gw_werks LIKE LINE OF gr_werks.

RANGES range_tab FOR dobj [OCCURS n] :创建一个选择表

For 后面字段必须为参考表的字段,不能使用 Data Element 来定义.
使用
RANGES: gr_matnr FOR marc-matnr.
gr_matnr-sign = ‘I’
gr_matnr-option = ‘EQ’
gr_matnr-low = xxx
gr_matnr-high = xxx
APPEND gr_matnr.
内表gr_matnr按照选择表结构创建,字段参照数据库表字段。
在这里插入图片描述

选择表
系统为每个 SELECT-OPTIONS 语句创建选择表。选择表的目的是按标准化的方式保存复合选择限制。它们可按多种方式使用。它们的主要目的是使用 Open SQL 语句的 WHERE 子句 把选择标准直接传输到数据库表。

选择表是一个带表头行的内表。它的行结构是字段字符串,由四个组件构成,即 SIGN、OPTION、LOW 和 HIGH。每个选择表行表示数据选择的条件:

SIGN:控制保存在OPTION中的运算符是否需要翻转。
I:包含标准-运算符不翻转
E:排除标准-运算符翻转
OPTION:包含选择运算符
HIGH为空:可以使用EQ、NE、GT、LE、LT、CP、NP运算符
HIGH不空:可以使用BT、NB运算符
LOW:LOW的数据类型与参照的标准表字段一致
HIGH为空:LOW的内容定义单值选择,与OPTION结合指定条件
HIGH不空:LOW与HIGH共同组成范围值
HIGH:为间隔选择指定上界
将选择表转换为 Range
在这里插入图片描述

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值