FORMAT OF 特殊レジスター
PROCEDURE DIVISION の FORMAT OF 句は、FORMAT OF 特殊レジスターと呼ばれる 暗黙的な特殊レジスターを作成します。このレジスターの内容は、ID によって参照 されるデータ項目の FORMAT リテラルと等価です。FORMAT OF 特殊レジスターは、日時クラスのデータ項目に対してのみ指定することができます。 この特殊レジスターの長さは、当該のデータ項目用の FORMAT 句内で指定されるリテラルまたはロケールによって決まります。
FORMAT OF 特殊レジスターには次のような暗黙の定義が入っています。
USAGE DISPLAY, PICTURE X(n)
where n equals the number of bytes of the implicit or explicit
FORMAT literal.
例として、以下の日付データ項目 date2 用のデータ記述記入項目について考えてみます。
05 date2 FORMAT DATE IS '%d,%m,%y'.
以下の MOVE ステートメントは、組み込み関数 CONVERT-DATE-TIME を使用して日付データ項目 date3 を日付データ項目 date2 の形式に変換します。
FORMAT OF 句は、その内容が %d,%m,%y となる暗黙特殊レジスターを作成します。
MOVE FUNCTION CONVERT-DATE-TIME(date3, DATE, FORMAT OF date2)
TO alpha-num-date.
この例では、特殊レジスターの長さは 8 文字です。次の規則が適用されます。
- FORMAT OF 特殊レジスターは、変更不能であり、FORMAT 非数字リテラルが使用可能な PROCEDURE DIVISION においてのみ指定可能。
- FORMAT OF 句を使って参照される ID ごとに別個の FORMAT OF 特殊レジスターが 1 つずつ存在する。