!--a11y-->

ソース項目の値を対象項目のデータ型に変換する MOVE 命令に加えて、ソース項目の内容をデータ型 C の項目に変換する WRITE TO 命令もあります。
WRITE <f1> TO <f2> [<option>].
この命令により、データオブジェクト <f1> の内容がデータ型 C に変換され、文字列が変数 <f2> に格納されます。<f1> のデータ型は文字項目に変換可能でなければなりません。変換不可能な場合、構文エラーまたは実行時エラーが発生します。<f1> の内容は変更されません。変数 <f2> は、その実際の行データ型にかかわらず、常に文字列として解釈されます。変換でその他のデータ型は考慮されません。したがって、数値データ型 (F 、I 、または P) の対象項目は使用しないでください。数値データ型を使用すると、対象項目が静的に定義されている場合、構文チェックで警告が表示されます。ただし、この警告は将来のリリースで、実際の構文エラーまたは実行時エラーに引き上げられる可能性があります。
WRITE TO 命令では、常にユーザマスタレコードの設定がチェックされます。これらの設定により、たとえば小数点をピリオド (.) またはカンマで (,) で表示するかどうかが指定されます。UNDER および NO-GAPY を除いて、WRITE 命令で利用可能な書式オプションをすべて使用することもできます。

DATA: NUMBER TYPE F VALUE '4.3',
TEXT(10),
FLOAT
TYPE F,
PACK TYPE P DECIMALS
1.
WRITE NUMBER.
WRITE NUMBER TO TEXT EXPONENT 2.
WRITE / TEXT.
WRITE NUMBER TO FLOAT.
WRITE / FLOAT.
WRITE NUMBER TO PACK.
WRITE / PACK.
MOVE NUMBER TO PACK.
WRITE / PACK.
この例では、構文チェックにより、PACK と FLOAT を文字項目 ( データ型 C 、D 、N 、T 、または X) にするよう警告されます。出力一覧は以下のとおりです。
4.30000000000000E+00
0.043E+02
1.50454551753894E-153
20342<33452;30,3
4.3
1 行目には、型 F 項目の標準出力書式で項目 NUMBER の内容が格納されます。2 行目には、項目 NUMBER をデータ型 C 項目に変換した結果が、書式オプションEXPONENT 2 および長さ 10 で格納されます。3 行目と 4 行目には、数値データ型である対象項目の使用が不可能なことを示す行が出力されます。5 行目には、MOVE 命令の動作が WRITE TO とは異なることが例示されます。型 F 項目は、型 P に正しく変換されました。
WRITE TO 命令では、他項目の内容として、ソース項目名を動的に指定することができます。これを行うには、ソース項目名が格納されている項目の名称を括弧で指定します。
WRITE (<f>) TO <g>.
<f> に代入したデータオブジェクトの値が、<g> に格納されます。対象項目を動的に指定する場合は、フィールドシンボルを使用する必要があります。

DATA: NAME(10) VALUE 'SOURCE',
SOURCE(10) VALUE 'Antony',
TARGET(10).
...
WRITE (NAME) TO
TARGET.
WRITE: TARGET.
これにより、以下が出力されます。
Antony
項目名と項目内容の関係は、以下の図に示されています。
