RANGES语句:要用与选择表相同的结构创建内表,可使用RANGES语句,如下所示:
语法:RANGES
<seltab> FOR
<f>.
该语句创建选择表<seltab>,该表参考数据库表的列<f>或内部字段<f>。选择表<seltab>必须在程序中填充。不必在程序中再用TABLES语句声明数据库表。
RANGES语句是下列语句的短格式:
DATA:
BEGIN OF <seltab> OCCURS 10,
SIGN(1),
OPTION(2)
LOW LIKE <f>,
HIGH LIKE
<f>,
END OF
<seltab>.
用RANGES创建的内表与选择表结构相同,但功能不同。
用RANGES语句创建的选择表:
1)不是选择屏幕的一部分:
它们在程序<prog>中不能用于数据传递,该程序由下列语句启动:SUBMIT <prog>
WITH <seltab> IN <table>.
请注意,表<table>可以在调用程序中用RANGES创建(参见《调用报表》)。
2)不与数据库表相链接。这意味着:
它们不被传递给连接数据库(参见《自定义选择标准与逻辑数据库》)。
它们不能与逻辑表达式的短格式一起使用(参见《在逻辑表达式中使用选择表》)
它们不能与《在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选择表:
系统为每个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语句》
分享到:
相关推荐
2. 讲解了Kotlin的基础语法,包括定义包名、函数、变量、注释、字符串模板、条件表达式、可空值处理、循环、when表达式、ranges的使用、集合的使用方式等。 3. 列举了一些Kotlin中常见的习惯用语,如创建数据类、使用...
3.2.1 Data Types and Value Ranges: CASL的数据类型包括基本类型和数组等,每个类型都有特定的取值范围。 3.2.2 Parameter Types for Predefined Functions: 预定义函数的参数类型需根据函数的定义来设定。 ...
VBA还提供了丰富的对象模型,例如Excel VBA中,你可以操作Workbooks、Worksheets、Ranges等对象。理解这些对象及其属性和方法是进行Excel自动化的关键。例如,Range对象代表单元格或单元格区域,它的 `.Value` 属性...
在Excel VBA编程中,Range和Cells对象是两个非常关键的概念,它们允许程序员对电子表格中的数据进行操作。本文将详细介绍这两个对象的用法,并通过一系列应用示例进行讲解。 首先,Range对象代表了Excel工作表中的...
print("Outside the given ranges") } ``` 6. **循环控制**: Swift支持`for-in`、`while`和`do-while`循环。例如: ```swift for index in 0.. print("\(index): \(myArray[index])") } while myInt > 0...
- **范围**(Ranges):讲解了如何使用范围类型来表示连续的整数序列。 #### 三、集合协议 此部分深入探讨了Swift中的集合抽象概念,为开发者提供了更加灵活的数据结构设计思路。 - **序列**(Sequences):解释...
- `kotlin.ranges.*` - `kotlin.sequences.*` - `kotlin.text.*` #### 二、函数定义 函数是 Kotlin 中的核心组成部分。函数定义使用 `fun` 关键字,并且可以指定参数类型和返回类型。例如: ```kotlin fun sum(a:...
汇总区间”(Summary Ranges)的Python 解决方案。 “228. 汇总区间”是一道中等难度的题目,题目要求编写一个函数,输入一个无序的整数数组,输出该数组中所有区间合并后的结果。具体要求是,如果一组数字连续,...
法语指示代词是法语语法中的重要组成部分,它们用于指代或替换先前提及的人、事、物,以便避免重复并使语言表达更加流畅。在本文中,我们将深入探讨法语指示代词的不同形式和用法。 首先,指示代词分为阳性、阴性和...
多重申明 Ranges 类型检查和自动转换 This表达式 等式 运算符重载 空安全 异常 注解 反射 动态类型 参考 API 语法 互用性 Introduction 6 与 java 交互 工具 Kotlin代码文档 使用Maven 使用Ant 使用Griffon 使用...
- **C++20**: 引入了模块化、协程、`std::ranges`、概念化模板等。 2. **C++语言核心**: - **类与对象**: 定义类,构造函数,析构函数,封装,继承,多态。 - **模板**: 普通模板,函数模板,类模板,模板特化...
### 正则表达式语法一览表详解 #### 一、锚点(Anchors) - **^**:匹配字符串的开头。 - **\A**:同样用于匹配字符串的开头,但与^的区别在于,\A不会在多行模式下匹配每一行的开头,而^可以。 - **$**:匹配字符...
22. **Case Ranges**:支持范围的case语句,如`case 1 ... 9`,简化switch语句。 23. **Mixed Declarations**:允许在代码中混写声明,使代码组织更加灵活。 这些扩展在编写更复杂、高效或灵活的代码时非常有用,...
这是C ++ 17的类似于范围的库,它提供了类似管道的语法的零开销列表列表。 可以对标准容器进行过滤,转换,通过各种算法进行传递,以优化循环,如果用手工编写,循环效率将更高。 目的是提供编写更具可读性的循环...
5. **范围(Ranges)**:查询还可以包含范围限制,比如查找特定行或列的节点。 6. **正则表达式(Regular Expressions)**:在某些情况下,可以使用正则表达式匹配文本内容,如变量或函数名。 Tree-sitter-query-...
- **ranges**:定义了父总线和子总线之间的地址映射关系。 - **dma-ranges**:定义了DMA地址映射信息。 - **name** 和 **device_type**:已被弃用的属性,建议使用更具体的属性来代替。 #### 2.3 中断与映射 中断...
Lambda表达式的语法结构如下: ```cpp [capture-list] (parameters) -> return-type { function-body } ``` - `capture-list`:捕获列表,用于捕获外部作用域的变量,可以是值捕获或引用捕获。 - `(parameters)`:...
3. 设备树中dts、dtsi文件的基本语法 3.1. chosen node 3.2. aliases node 3.3. memory node 3.4. 其他节点 3.4.1. Reg属性 3.4.2. Compatible属性 3.4.3. Interrupts属性 3.4.4. Ranges属性 4. ...
- 范围(Ranges) - 类型检查与转换(Type Checks and Casts) - this表达式(This Expression) - 等号运算符重载(Equality Operator overloading) - 空安全(Null Safety) - 异常(Exceptions) - 注解...
在IT行业中,Python语言因其简洁明了的语法和强大的功能,被广泛应用于自动化办公领域。本教程将聚焦于如何利用Python进行文件管理,特别是针对初中生电脑阅卷考试成绩和试卷图像的分类处理。我们将深入探讨`os`模块...