ABAP语法基础篇(3)——赋值
三、赋值
在 ABAP/4中,可以在声明语句和操作语句中给数据对象赋值。在声明语句中,将初始值赋给声明的数据对象。为此,可以在DATA 、常量或 STATICS 语句中使用 VALUE 参数 。
要在操作语句中给数据对象赋值,可以使用:
MOVE
语句 和 WRITE TO
语句 ,对应于赋值运算符 =
3.1用MOVE赋值
3.1.1 基本赋值操作
要将值(文字)或源字段的内容赋给目标字段,可以使用 MOVE
语句或赋值运算符 =
。
MOVE
语句的语法如下所示:
MOVE
MOVE
语句将源字段
的内容传送给目标字段
。
可以是任何数据对象。
必须是变量,不能是文字或常量。传送后,
的内容保持不变。
赋值运算符 =
的语法如下所示:
MOVE
语句和赋值运算符功能相同。
3.1.2 用指定偏移量赋值
可以在每条 ABAP/4 语句中为基本数据类型指定偏移量和长度。在这种情况下, MOVE
语句语法如下:
MOVE
将字段
从
位置开始且长度为
的段内容赋给字段
,覆盖从
位置开始且长度为
的段。
在 MOVE
语句中,所有偏移量和长度指定都可为变量。
3.1.3 在字符串组件之间赋值
描述的 MOVE
语句赋值方法适用于基本数据对象和结构化数据对象。另外,还有一种 MOVE
语句变体,允许将源字段串组件内容复制到目标字段串组件中。语法如下:
MOVE-CORRESPONDING
该语句将字段串
组件的内容赋给有相同名称的字段串
组件。
对于每对名称,系统都执行 MOVE
语句,如下所示:
MOVE STRING1-
系统分别执行所有必要类型转换。该处理不同于包括整个字段串的赋值。在这种情况下,应用不兼容的字段串和基本字段所述的转换规则。
3.2 用WRITE TO 赋值
要将值(文字)或源字段内容写入目标字段,可以使用 WRITE TO
语句:
WRITE
WRITE TO
语句将源字段
内容写入目标字段
。
可以是任何数据对象,
必须是变量,不能是文字或常量。写入后,
内容保持不变。
对于 ,可以使用
WRITE
语句的所有格式化选项( UNDER 和 NO-GAP 除外)。
WRITE TO
语句总是检查用户主记录中的设置。例如,这些设置指定是将小数点显示为句号( .),还是逗号( , )。
WRITE TO
语句并不遵循类型转换中所述的转换规则。目标字段解释为 C
类型字段。系统总是将源字段内容转换为类型 C,它不将结果字符串转换为目标字段的数据类型,而直接写入目标字段。因此 ,不应使用数值数据类型的目标字段。
3.2.1 运行时指定源字段
可以使用 WRITE TO
语句在运行时指定源段
。为此, 需用括号将包含源字段名的数据对象名括起来,并将其放在源字段位置:
WRITE (
系统将赋给
的数据对象值放到
中。
然而,如果要在运行时指定目标字段,则必须按使用字段符号中所述,使用字段符号。
3.2.2 用指定偏移量写入值
可以指定每条 ABAP/4 语句中基本数据对象的偏移量和长度。 WRITE TO
语句语法如下:
WRITE
将字段
中从
位置开始且长度为
的内容赋给字段
,覆盖从
位置开始且长度为
的段。
在 WRITE TO
语句中,目标字段的偏移量和长度指定可为变量。