转自http://www.sapjx.com/abap-range-table.html

1. Range Table 概述

Range Table 为 SAP R/3系统标准内表的一种,结构与 Selection Table 一致,
由 SIGN, OPTION, LOW 和 HIGH字段组成;

可以通过 TYPE RANGE OF 语句或 RANGES 关键字定义 Range Table。

Range Table 常用于Open SQL语句中的条件筛选,可以优化取数效率与程序性能。

2.定义Range Table

可以通过两种方式定义:

1) TYPE RANGE OF…

DATA rtab {TYPE RANGE OF type}|{LIKE RANGE OF dobj}

[INITIAL SIZE n]

[WITH HEADER LINE]

[VALUE IS INITIAL]

[READ-ONLY].

2) RANGES

语法:

RANGES rtab FOR dobj [OCCURS n].

* 全局变量
DATA: gt_marc TYPE STANDARD TABLE OF marc. *-------------------------------------------
* 通过 RANGE OF 定义
*-------------------------------------------
DATA: gr_werks TYPE RANGE OF werks_d,
gw_werks LIKE LINE OF gr_werks. * 宏定义
DEFINE set_range.
gw_werks-sign = 'I'.
gw_werks-option = 'EQ'.
gw_werks-low = &.
append gw_werks to gr_werks.
END-OF-DEFINITION. set_range ''.
set_range ''. SELECT *
FROM marc
INTO CORRESPONDING FIELDS OF TABLE gt_marc
WHERE werks IN gr_werks. *-------------------------------------------
* 通过 RANGES 定义
*-------------------------------------------
TABLES:marc. RANGES: gr_matnr FOR marc-matnr.

这里需要注意,For后面字段必须为参考表的字段,不能使用 Data Element 来定义,否则系统会报出错误。

3. 在 Subroutine 中传输 Range Table

TABLES: mara.

* 全局变量
DATA: gt_mara TYPE STANDARD TABLE OF mara. DATA: gr_matnr TYPE RANGE OF mara-matnr WITH HEADER LINE,
gl_matnr LIKE LINE OF gr_matnr. *&---------------------------------------------------------------------*
*& Form frm_get_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->PT_MARA text
* -->PR_MATNR text
*----------------------------------------------------------------------*
FORM frm_get_data TABLES pt_mara STRUCTURE mara
pr_matnr STRUCTURE gr_matnr. SELECT matnr mtart matkl
FROM mara
INTO CORRESPONDING FIELDS OF TABLE pt_mara
WHERE matnr IN pr_matnr. ENDFORM. " F_GET_DATA

4. 在 Function Module 中传输 Range Table

当需要在 Function Module 中传输Range Table 时,可以直接参考预定义类型 Table:

FIELD-SYMBOLS < fs_line >  TYPE ANY.
FIELD-SYMBOLS < fs_value > TYPE ANY. DATA lv_value TYPE char40. LOOP AT t_selection ASSIGNING < fs_line >. ASSIGN COMPONENT 'LOW' OF STRUCTURE < fs_line > TO < fs_value >.
lv_value = < fs_value >. …
ENDLOOP.

ABAP range 用法的更多相关文章

  1. Python基础学习Day4 列表的使用方法、range 用法、in用法

    一.列表 1.1列表:python基础数据类型之一:其他语言也有列表的概念,js 数组,可索引 ,可切片,可加步长 1.2列表的索引,切片,切片+ 步长 结果: 注意:列表里元素的数据类型,就是它本身 ...

  2. python之变量的数据类型(2)list 、 tuple 及range用法

    一.变量的数据类型(2) 1.list 类型 列表的特点: 列表是一个可变的数据类型 列表由[]来表示, 每一项元素使用逗号隔开. 列表什么都能装. 能装对象的对象. 列表可以装大量的数据 列表的索引 ...

  3. 转 python range 用法

    详细记录python的range()函数用法   使用python的人都知道range()函数很方便,今天再用到他的时候发现了很多以前看到过但是忘记的细节.这里记录一下range(),复习下list的 ...

  4. python基础-range用法_python2.x和3.x的区别

    #range帮助创建连续的数字,通过设置步长来指定不连续 python2.7 #直接就在内存中创建出来(0-99) >>> range(100)[0, 1, 2, 3, 4, 5, ...

  5. abap append 用法

    [转自http://blog.chinaunix.net/uid-7982817-id-91999.html]Append用法总结 2008-11-14 11:42:19 分类: Syntax APP ...

  6. 转:http range 用法与说明

    转: http://www.cnblogs.com/Googler/archive/2010/08/19/1803700.html HTTP RANGE Range,是在 HTTP/1.1(http: ...

  7. day5 range 用法示例

    函数语法 range(start, stop[, step]) 参数说明: start: 计数从 start 开始.默认是从 0 开始.例如range(5)等价于range(0, 5); stop: ...

  8. python range用法

    1. range(n) 相当于枚举 从0<=i<n的整数 增量为1 for i in range(4): print(i) 结果:0 1 2 3 2. range(5,10) 相当于枚举 ...

  9. Python3---常见函数---range()用法

    0X01函数说明: python range() 函数可创建一个整数列表,一般用在 for 循环中. 0X02函数语法: range(start,stop[,step]) start: 计数从 sta ...

随机推荐

  1. tomcat设置去项目路径

    1. 新建一个目录专门用于存放工程, 如: G:\apache-tomcat-6.0.20\project 2. 将工程存放到以上目录下:即:G:\apache-tomcat-6.0.20\proje ...

  2. mysql/oracle 连接参数中文变问号

    jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=utf8&useSSL=true

  3. Spring的@Configuration来代替xml配置

    一. Xml配置法 下面是一个典型的spring配置文件(application-config.xml): [xml] view plain copy <beans> <bean i ...

  4. BestCoder Round #25 1002 Harry And Magic Box [dp]

    传送门 Harry And Magic Box Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/ ...

  5. ls 不是内部或外部命令

    在C:\windows目录下新建一个文件 命名为 ls.bat 打开编辑这个文件 输入: @echo off dir 这两句保存即可.

  6. 洛谷——P1746 离开中山路

    P1746 离开中山路 题目背景 <爱与愁的故事第三弹·shopping>最终章. 题目描述 爱与愁大神买完东西后,打算坐车离开中山路.现在爱与愁大神在x1,y1处,车站在x2,y2处.现 ...

  7. 动态规划—最长回文子串LEETCODE第5题深度剖析

    动态规划对于笔者来说有很重要的意义 一.题目如下: 对于此类题目,笔者常用的的办法是先做个暴力解题思路,然后再对暴力法进行优化. 二.暴力法 //字串遍历 public static String l ...

  8. springboot启动报异常,Failed to load property source from location 'classpath:/application.yml'

    学习springboot,在启动时抛出下图异常 往下看异常信息,找到异常的具体位置 找到application.yml文件的对应位置,发现params配置前面多了空格 去掉空格重新启动,可以了 写代码 ...

  9. DBA总结

    HA MHA(1)从宕机崩溃的master保存二进制日志事件(binlog events);(2)识别含有最新更新的slave:(3)应用差异的中继日志(relay log)到其他的slave:(4) ...

  10. Chrome查看DNS状态提示:DNS pre-resolution and TCP pre-connection is disabled.

    chrome://dns 别试了,在这个功能在旧版可以通过关闭预读可以实现,但是新版的不行. 但是可以通过这种方式替代: chrome://net-internals/#dns 这个方式更直观,可以看 ...