RANGES语句要用与选择表相同的结构创建内表,可使用RANGES语句,如下所示:

语法RANGES <seltab> FOR <f>.

该语句创建选择表<seltab>,该表参考数据库表的列<f>或内部字段<f>。选择表<seltab>必须在程序中填充。不必在程序中再用TABLES语句声明数据库表。

RANGES语句是下列语句的短格式:

DATA: BEGIN OF <seltab> OCCURS ,

         SIGN(),

         OPTION()

         LOW  LIKE <f>,

         HIGH LIKE <f>,

      END OF <seltab>.

用RANGES创建的内表与选择表结构相同,但功能不同。

用RANGES语句创建的选择表:

不是选择屏幕的一部分:它们在程序<prog>中不能用于数据传递,该程序由下列语句启动:SUBMIT <prog> WITH <seltab> IN <table>. 请注意,表<table>可以在调用程序中用RANGES创建(参见《调用报表》)。

不与数据库表相链接。这意味着:

ü          它们不被传递给连接数据库(参见《自定义选择标准与逻辑数据库》)。

ü          它们不能与逻辑表达式的短格式一起使用(参见《在逻辑表达式中使用选择表》)

ü          它们不能与《在GET事件中与CHECK语句一起使用选择表》中描述的变体CHECK SELECT-OPTIONS一起使用。

您可以象使用真正的选择表一样在开放式SQL语句的WHERE子句中和在带IN参数(参见《使用报表的选择标准》)的逻辑表达式中使用这些内表。

RANGES S_CARRID FOR SPFLI-CARRID.

S_CARRID-SIGN   = 'I'.

S_CARRID-OPTION = 'EQ'.

S_CARRID-LOW    = 'LH'.

APPEND S_CARRID.

该示例中,内表S_CARRID按选择表的结构创建,并参考数据库表SPFLI的列CARRID。字段S_CARRID-LOW和S_CARRID-HIGH具有相同的类型CARRID。内表S_CARRID的表头行被填充并添加到表中。表中定义的选择条件与下列逻辑表达式的功能相同:SPFLI-CARRID EQ 'LH'

选择表:

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

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

Ø         SIGN :SIGN的数据类型是C,长度为1。SIGN是标志,表示保存在OPTION中的运算符是否需要翻转。允许值是I和E。

ü          I表示“包含”(包含标准-运算符不翻转)

ü          E表示“排除”(排除标准-运算符翻转)

Ø         OPTION:OPTION的数据类型是C,长度为2。OPTION包含选择运算符。如果SIGN包含E,运算符的作用就象它的前面有NOT(有关NOT的详细信息,参见《组合几个逻辑表达式》)一样。下列运算符是可用的:

ü          如果HIGH是空的,您可以使用EQ、NE、GT、LE、LT、CP和NP。这些运算符在《编程逻辑表达式》中描述。运算符CP和NP没有它们在通常逻辑表达式中所具有的范围。只有当在输入字段中使用了通配符(“*”或“+”)时它们才是有效的。没有定义退出符号。

ü          如果HIGH已被填充,则可以使用BT(位于)和NB(不位于)。这些运算符的功能与BETWEEN和NOT BETWEEN一样(参见《检查字段是否属于某一范围》)。

Ø         LOW:LOW的数据类型与数据库表的列类型相同,该表与选择标准相连接。

ü          如果HIGH为空,LOW的内容定义单值选择。它与OPTION中的运算符相结合,为数据库选择指定了条件。

ü          如果HIGH已填充,LOW和HIGH中的内容为间隔选择指定上界和下界。与OPTION中的运算符相结合,该间隔为数据库选择指定了条件。

Ø         HIGH:HIGH的数据类型与数据库表的列类型相同,该表与选择标准相连接。HIGH中的内容为间隔选择指定了上界。与OPTION中的运算符相结合,该间隔为数据库选择指定了条件。

如果选择表包含多行,系统将按下列规则执行数据选择:

Ø         组成在SIGN字段值为I(包含)的行上定义的集合联合。

Ø         去掉在SIGN字段值为E(排除)的行上定义的集合联合。

Ø         选择结果集合。

如果选择表只具有SIGN字段等于E的行,系统将选择这些行所指定的集合之外的所有数据。

除了用SELECT-OPTIONS语句创建选择表,您可以用在《创建和处理内表》中描述的语句或RANGES语句,按相同的结构创建内表。这些表可以用与SELECT-OPTIONS语句创建的真正的选择表相似方法使用,但是有限制。有关RANGES语句的详细信息,参见《RANGES语句》

Ranges用法的更多相关文章

  1. 转-Nmap扫描原理与用法

    1     Nmap介绍 操作系统与设备类型等信息. Nmap的优点: 1.      灵活.支持数十种不同的扫描方式,支持多种目标对象的扫描. 2.      强大.Nmap可以用于扫描互联网上大规 ...

  2. Go cron定时任务的用法

    cron是什么 cron的意思就是:计划任务,说白了就是定时任务.我和系统约个时间,你在几点几分几秒或者每隔几分钟跑一个任务(job),就那么简单. cron表达式 cron表达式是一个好东西,这个东 ...

  3. Nmap扫描原理与用法

    Nmap扫描原理与用法 1     Nmap介绍 Nmap扫描原理与用法PDF:下载地址 Nmap是一款开源免费的网络发现(Network Discovery)和安全审计(Security Audit ...

  4. 英文破折号(em dash)、连接号(en dash)与连字符(hyphen)的区别及各自用法是什么?

    英文破折号(em dash).连接号(en dash)与连字符(hyphen)的区别及各自用法是什么?在科技写作中有何特点?   2 条评论 分享   按票数排序按时间排序 6 个回答 赞同85反对, ...

  5. iOS block的用法

    本章学习目标: 1. 了解何谓block. 2. 了解block的使用方法. Block 是iOS在4.0之后新增的程式语法,严格来说block的概念并不算是基础程式设计的范围,对初学者来说也不是很容 ...

  6. linux mail命令用法

    在Linux系统下mail命令的测试 1. 最简单的一个例子: mail -s test admin@aispider.com 这条命令的结果是发一封标题为test的空信给后面的邮箱,如果你有mta并 ...

  7. Oracle分析函数及常用函数: over(),rank()over()作用及用法--分区(分组)求和& 不连续/连续排名

    (1)   函数:  over()的作用及用法:    -- 分区(分组)求和. sum() over( partition by column1 order by column2 )主要用来对某个字 ...

  8. 扫描工具——Nmap用法详解

    Nmap使用 Nmap是主机扫描工具,他的图形化界面是Zenmap,分布式框架为Dnamp. Nmap可以完成以下任务: 主机探测 端口扫描 版本检测 系统检测 支持探测脚本的编写 Nmap在实际中应 ...

  9. 在Linux系统下mail命令的用法

    在Linux系统下mail命令的测试 1. 最简单的一个例子: mail -s test admin@aispider.com 这条命令的结果是发一封标题为test的空信给后面的邮箱,如果你有mta并 ...

随机推荐

  1. BW对应后台表[转]

    数据源对应后台表 (2012-01-04 20:08:57) 转载▼ 标签: 杂谈 分类: SAP MM Data Sources Tables Purchasing 2LIS_02_SCL EKKO ...

  2. Linux下grep显示前后几行信息

    Linux下grep显示前后几行信息 标准unix/linux下的grep通过下面參数控制上下文 grep -C 5 foo file 显示file文件里匹配foo字串那行以及上下5行grep -B ...

  3. AppStore下载慢的真实原因

    今天有个朋友说他的app下载很慢,他说下载其他的不会,就他的会很慢很卡.我心想这东西苹果的我也没办法了呀,不过我心里也想我平时下载挺快的呀.于是就开始试试.搜索了几个app下载发现确实是有快有慢,并且 ...

  4. djngo快速实现--使用Bootstrap

    继续django学习之旅,之前我们所做的Django练习前端都非常丑.这节我们使用Bootstrap,顿时使丑陋的页面变成白天鹅. 安装Bootstrap                        ...

  5. [linux]记录如何设置一个新的vps

    背景 我正在做一个小项目,做好了打算上线,所有需要买个服务器,看了一圈,发现还是卖个vps合算.买了之后,进行了一些列的设置,这里记录一下,以便后面查看. 系统: ubuntu 内存:1G 一.更改时 ...

  6. 对于大于8046 bytes的行,RCSI/SI事务隔离级别无效

    自SQL Server 2005起,我们有了READ COMMITTED SNAPSHOT ISOLATION level (RCSI) 和SNAPSHOT ISOLATION level (SI)两 ...

  7. IntelliTrace简介

    解决无法复现bug所使用的策略是在遇到bug时捕获尽可能多的信息,在使用IntelliTrace进行调试时可以充分利用这些信息.最令人称道的一个功能在于bug本身可以自动修复. 打开IntelliTr ...

  8. Sql Server来龙去脉系列之四 数据库和文件

        在讨论数据库之前我们先要明白一个问题:什么是数据库?     数据库是若干对象的集合,这些对象用来控制和维护数据.一个经典的数据库实例仅仅包含少量的数据库,但用户一般也不会在一个实例上创建太多 ...

  9. 利用Aspose.Cell控件导入Excel非强类型的数据

    导入Excel的操作是非常常见的操作,可以使用Aspose.Cell.APOI.MyXls.OLEDB.Excel VBA等操作Excel文件,从而实现数据的导入,在导入数据的时候,如果是强类型的数据 ...

  10. WinForm公共控件

    公共控件:1.Button:按钮 用户点击时触发事件 行为属性 Enabled -是否启用 Visible -是否隐藏2.CheckBox .CheckListBox - 复选框 复选框组 3.Com ...