5 运行时指定 源字段
可以使用 WRITE TO 语句在运行 时指定源字 段。为此, 请用括号将 包含源字段 名的数据对 象名括起来 ,并将其放 在源字段位 置:
语法
WRITE (
系统将赋给
然而,如果 要在运行时 指定目标字 段,则必须 按使用字段符号中所述, 使用字段符 号。 DATA: NAME(10) VALUE 'SOURCE', SOURCE(10) VALUE 'Antony', TARGET(10). ... WRITE (NAME) TO TARGET. WRITE: TARGET. 则输出 Antony 字段名和字 段内容之间 的连接如下 图所示。 用指定偏移 量写入值
可以指定每 条 ABAP/4 语句中基本 数据对象的 偏移量和长 度(参见指定数据对 象的偏移量 (页 21) ) 。WRITE TO 语句语法如 下:
语法
WRITE
将字段
将值重置为 默认值
可以用 CLEAR 语句重置任 何数据对象 值,如下所 示:
语法
CLEAR
该语句将数 据对象
基本数据 类型
对于基本数 据类型的数 据对象的默 认值列表, 参见预定义的基本数据类型 (页 错误!链接无效。) 中的表 。系统将变 量值重置为 它们的初始 默认值,而 不是用DATA 语句的 VALUE 参数所赋的 初始值。无 法重置常量 。 字段串
如果将 CLEAR 语句应用于 字段串,则 将单个组件 的内容重置 为它们的初 始默认值。 内表
关于 CLEAR 语句如何使 用内表的解 释,参见初始化内表 (页 Error! Not a valid link.) 。 DATA NUMBER TYPE I VALUE '10'. WRITE NUMBER. CLEAR NUMBER. WRITE / NUMBER. 输出为: 10 0 CLEAR 语句将字段 NUMBER 的内容从10 重置为默认 值 0。
数值运算
要处理数值 数据对象并 将结果值赋 给数据对象 ,可以用 COMPUTE 语句或赋值 运算符(= )。 COMPUTE 语句语法如 下所示:
语法
COMPUTE
关键字 COMPUTE 可选。换句 话说,该语 句也可以写 成:
语法
在
在数学表达 式中,可以 按任何排列 组合运算并 用括号进行 指定。 求值顺序是 :
1. 括号 中的表达式 2. 函数
3. ** (求幂)
4. *、 /、MOD、 DIV (乘法、除 法)
7 5. +、 - (加法、减 法)
以下主题对
执行算术运 算
要定义算术 运算,可以 使用适当的 算术运算符 。使用算术 运算进行
基本算术运 算
ABAP/4 支持四种基 本算术运算 ,同时还支 持乘方计算 。可以用数 学表达式指 定以下算术 运算符:
+ 加法 - * / DIV MOD ** 减 法 乘法 除 法 整 除 求 余 求幂 可以用关键 字 ADD、SUBTRACT、 MULTIPLY和 DIVIDE进 行基本算术 运算,而不 使用数学表 达式中的运 算符。
下表说明如 何表示 ABAP/4 中的基本算 术运算: 运算 用数学 表达式的语 句 用关键字的 语句 加法 减 法 乘 法 除 法 整 除 除 法余数
= = = = = = = 可以是任何 数值字段。 如果字段类 型不同,则 系统自动进 行必要类型 转换(有关 类型转换的 详细信息, 参见类型转换 (页 22) )。 使用数学表 达式时,请 注意,运算 符 +、 -、 *、 **、 / 以及前括号 、后括号是 ABAP/4 关键字,前 面和后面都 必须有空格 。 在除法运算 中,如果被 除数不为零 ,则除数不 能为零。对 于整除,用 运算符 DIV 或 MOD 代替 / 。用 DIV 获得整数商 并用 MOD 获得余数。 如果将几种 数学表达式 组合在一起 ,对于相同 优先级的运 算符,从左 到右进行计 算(求幂计 算除外,它 是从右到左 进行)。因 此, 与 )相同,但 与( 不同 。 DATA: COUNTER TYPE I. COMPUTE COUNTER = COUNTER + 1. COUNTER = COUNTER + 1. ADD 1 TO COUNTER. 在此,三条 运算语句进 行相同算术 运算,例如 ,将1加到 字段 COUNTER 内容上并将 结果赋给 COUNTER。 8 DATA: PACK TYPE P DECIMALS 4, N TYPE F VALUE '+5.2', M TYPE F VALUE '+1.1'. PACK = N / M. WRITE PACK. PACK = N DIV M. WRITE / PACK. PACK = N MOD M. WRITE /PACK. 输出为: 4.7273 4.0000 0.8000 该示例说明 除法的不同 类型。 执行字段串 的算术运算 类似于用 MOVE-CORRESPONDING 语句在字段 串之间复制 值(参见在字段串组 件之间复制 值 (页 3) ) ,可以用以 下关键字, 执行字段串 的算术运算 : ADD-CORRESPONDING SUBTRACT-CORRESPONDING MULTIPLY-CORRESPONDING DIVIDE-CORRESPONDING 对于所有同 名字段串组 件,ABAP/4 进行相应算 术运算。然 而,仅当所 有相关组件 都是数值型 数据类型时 ,该运算才 有意义。 有关这些关 键字的详细 信息,参见 ABAP/4 关键字文档 。 DATA: BEGIN OF RATE, USA TYPE F VALUE '0.6667', FRG TYPE F VALUE '1.0', AUT TYPE F VALUE '7.0', END OF RATE. DATA: BEGIN OF MONEY, USA TYPE I VALUE 100, FRG TYPE I VALUE 200, AUT TYPE I VALUE 300, END OF MONEY. MULTIPLY-CORRESPONDING MONEY BY RATE. WRITE / MONEY-USA. WRITE / MONEY-FRG. WRITE / MONEY-AUT. 输出如下: 67 200 2,100 在此,用 RATE-USA乘 以 MONEY-USA, 以此类推。 添加字段顺 序 除基本算术运 算 (页 7) 中所述的 基本加法之 外,ADD 语句有几个 变体,用于 添加字段顺 序。例如: 添加字段 顺序并将结 果赋给另一 个字段