语法: WRITE <f1> TO <f2> [<option>].
对于<option>,可以使用 WRITE 语句的所有格式化选项(UNDER 和 NO-GAP 除外)。
[LEFT-JUSTIFIED|CENTERED|RIGHT-JUSTIFIED]
{ { [EXPONENT exp]
[NO-GROUPING]
[NO-SIGN]
[NO-ZERO]
[CURRENCY cur]
{ { [DECIMALS dec]
[ROUND scale] }
| [UNIT unit] } }
| [TIME ZONE tz] }
[USING { {NO EDIT MASK}|{EDIT MASK mask} }]
[ DD/MM/YY | MM/DD/YY
| DD/MM/YYYY | MM/DD/YYYY
| DDMMYY | MMDDYY
| YYMMDD ]
WRITE TO 语句总是检查用户主记录中的设置。例如,这些设置指定是将小数点显示为句号(.),还是逗号(,)。
WRITE TO 语句并不遵循类型转换中所述的转换规则。 系统总是将源字段内容转换为类型C,它不将结果字符串转换为目标字段的数据类型,而直接写入目标字段。因此,不应使用数值数据类型的目标字段。WRITE (<f>) TO <g>.
系统将赋给 <f> 的数据对象值放到 <g> 中。
将字段<f1>中从<o1>+1位置开始且长度为<l1>的内容赋给字段<f2>,覆盖从<o2>+1位置开始且长度为<l2>的段。
REPORT demo_data_write .
* WRITE <f1> TO <f2> [<option>].
DATA: number TYPE f VALUE '4.3',
text(10) TYPE c,
float TYPE f,
pack TYPE p DECIMALS 1.
WRITE number.
WRITE number TO text EXPONENT 2.
WRITE / text.
* WRITE NUMBER TO FLOAT. " <- not possible anymore!
* WRITE / FLOAT.
* WRITE NUMBER TO PACK. " <- not possible anymore!
* WRITE / PACK.
MOVE number TO pack.
WRITE / pack.
* WRITE (<f>) TO <g>.
ULINE.
DATA: name(10) TYPE c VALUE 'SOURCE',
source(10) TYPE c VALUE 'Antony',
target(10) TYPE c.
...
WRITE name TO target.
WRITE: 'name = ', target.
WRITE (name) TO target.
WRITE: / '(name) = ', target.
DATA: string(20),
number2(8) TYPE c VALUE '123456',
offset TYPE i VALUE 8,
length TYPE i VALUE 12.
WRITE number2+(6) TO string+offset(length) LEFT-JUSTIFIED.
WRITE: / string.
CLEAR string.
WRITE number2+(6) TO string+offset(length) CENTERED.
WRITE: / string.
CLEAR string.
WRITE number2 TO string+offset(length) RIGHT-JUSTIFIED.
WRITE: / string.
输出结果:
4.2999999999999998E+00
0.043E+02
4.3
——————————————————————————————————————————————————————————————————————————————
name = SOURCE
(name) = Antony
123456
123456
123456