ADVANCING 句および END-OF-PAGE 句は、印刷されるページ上の各行の垂直位置決めを制御します。 印刷されるページが中間装置 (たとえばディスク) 上で保持されると、それが編集またはブラウズされたときに、形式が予期した出力と異なることがあります。
外部で定義されたファイルの境界を超えて書き込みを試みると、WRITE ステートメントの処理が正常に完了せず、EXCEPTION/ERROR 条件が起こります。 レコード名の内容は影響を受けません。 その後 USE ステートメントのプログラミング上の注意事項で説明されているエラー処理の規則に従って、処理が行われます。
装置タイプ TAPEFILE または DISKETTE 上の順次ファイルの場合、 マルチボリューム OUTPUT ファイルのボリュームの終わりが検出されると、WRITE ステートメントによって以下の操作が行われます。
ボリュームの終わりに達したという標識はプログラムに返されません。
WRITE ステートメント - 形式 - 順次ファイル >>-WRITE--レコード名-1--+------------+--------------------------> '-FROM--ID-1-' >--+------------------------------------------------------+-----> '-+-BEFORE-+--+-----------+--+-+-ID-2---+--+-------+-+-' '-AFTER--' '-ADVANCING-' | '-整数-1-' +-LINE--+ | | '-LINES-' | +-簡略名-1--------------+ '-PAGE------------------' >--+-----------------------------+------------------------------> | (1) | '-NULL-MAP-------+----+--ID-9-' '-IS-' >--+---------------------------------------------+--------------> '-+----+-+-END-OF-PAGE-+-命令ステートメント-1-' '-AT-' '-EOP---------' >--+----------------------------------------------------+-------> '-NOT--+----+--+-END-OF-PAGE-+--命令ステートメント-2-' '-AT-' '-EOP---------' >--+-----------+----------------------------------------------->< '-END-WRITE-'
注:
+----------------------------------IBM 拡張----------------------------------+
レコード名-1 は 浮動小数点データ項目にすることができます。
レコード名-1 は DBCS データ項目を定義できます。 レコード名-1 が DBCS データ項目の場合、ID-1 は、DBCS データ項目でなければなりません。
+------------------------------End of IBM 拡張-------------------------------+
MOVE identifier-1 TO record-name-1 WRITE record-name-1
移動は、CORRESPONDING 句のない MOVE ステートメントの規則に従って実行されます。
WRITE ステートメントの実行後、情報は ID-1 ではまだ使用可能ですが、レコード名-1 では使用不可になります。 (INTO/FROM ID 句を参照してください。)
ID-1 は、英数字または DBCS 関数 ID の名前にすることができます。
+----------------------------------IBM 拡張----------------------------------+
ID-1 は、浮動小数点にすることも、日時データ項目にすることもできます。
+------------------------------End of IBM 拡張-------------------------------+
ファイルの最大レコード・サイズはファイルの作成時に設定され、後で変更することはできません。
レコード名-1 と ID-1 で同じ記憶域を参照してはなりません。
WRITE ステートメントの実行後には、次のいずれかの場合を除き、レコードはレコード名-1 で使用可能でなくなります。
これらのいずれかの場合には、レコードはレコード名-1 でまだ使用できます。
ファイル位置標識は、WRITE ステートメントの実行によって影響されません。
ファイルの中にレコードを保管するのに必要な文字桁数は、COBOL プログラムの中でそのレコードの論理記述によって定義された文字桁数と同じであってもなくてもかまいません。 (PICTURE 文節の編集および USAGE 文節を参照してください。)
ファイル制御記入項目で FILE STATUS 文節が指定されている場合には、WRITE ステートメントの実行時に、 実行が成功するかどうかに関係なく、関連する状況キーが更新されます。
I-O モードでオープンされた順次ファイルに対しては、WRITE ステートメントを実行することはできません。
関連情報
ADVANCING 句は、ページ上の出力レコードの位置決めを制御します。 この句は、装置タイプ PRINTER にのみ適用されます。次の規則が適用されます。
FD 記入項目に LINAGE 文節が入っている場合には、その文節で指定されているように、 次のページの最初の印刷可能行への位置変更が行われます。 LINAGE 文節が省略されている場合には、次のページの 1 行目への位置変更が行われます。
LINAGE-COUNTER の規則 このファイルについて LINAGE 文節 が指定されている場合は、WRITE ステートメントの実行時に、関連 する LINAGE-COUNTER 特殊レジスターが次の規則に従って変更されます。
この句が省略される場合には、AFTER ADVANCING 1 LINE が書かれている場合と同様に、自動的な行送りが行われます。
+----------------------------------IBM 拡張----------------------------------+
NULL-MAP IS 句のこの句についての説明を参照してください。
+------------------------------End of IBM 拡張-------------------------------+
この句が指定されている (さらに、このファイルについての FD 記入項目に LINAGE 文節が入っている) 場合、WRITE ステートメントの実行中に、 印刷されるページの論理的な終わりに達すると、命令ステートメントが実行されます。
NOT AT END-OF-PAGE 句が指定されている WRITE ステートメントの処理後に END-OF-PAGE 条件が存在しない場合には、 制御はその句に関連する命令ステートメントに移動されます。
関連情報
キーワード END-OF-PAGE とキーワード EOP は同等です。 END-OF-PAGE 句を指定する場合には、 このファイルの FD 記入項目に LINAGE 文節が入っていなければなりません。 END-OF-PAGE を指定し、WRITE ステートメントの処理後に END-OF-PAGE 条件が存在する場合には、END-OF-PAGE 命令ステートメントが処理されます。 印刷されるページの論理的な終わりは、レコード名に関連する LINAGE 文節の中で指定します。
プリンター・ファイルについての WRITE ステートメントの処理によってページ本体のフッター域での印刷または行送りが行われる場合には、 そのファイルの END-OF-PAGE 条件が起こります。 これは、WRITE ステートメントの実行により、LINAGE-COUNTER 中の値が、LINAGE 文節中の WITH FOOTING 句で指定された値と等しいかまたはそれより大きくなったときに起こります。 WRITE ステートメントが処理されてから、END-OF-PAGE 命令ステートメント (コーディングされている場合) が処理されます。
WRITE ステートメントの処理が現行のページ本体内で完全に実行できないときには、END-OF-PAGE 句が指定されているかどうかに関係なく、 必ず自動ページ・オーバーフロー条件が起こります。 これは、WRITE ステートメントを処理した場合に、LINAGE-COUNTER の値が LINAGE 文節で指定されているページ本体の行数を超えるときに起こります。 このケースでは、装置が LINAGE 文節で指定されているように次の論理ページの最初の印刷可能行に位置変更される前または後 (指定されているオプションによる) に、行が印刷されます。
END-OF-PAGE 句が指定されている場合には、END-OF-PAGE 命令ステートメントが実行されます。 次の場合には、END-OF-PAGE 条件と自動ページ・オーバーフロー条件が同時発生します。
キーワード END-OF-PAGE とキーワード EOP は同等です。
キーワード END-OF-PAGE とキーワード EOP は同等です。 END-OF-PAGE 句を指定し、FORMATFILE ファイルについての WRITE ステートメントの処理後に EOP 条件が存在する場合には、END-OF-PAGE 命令ステートメントが実行されます。 FORMATFILE ファイルの EOP 条件が起こるのは、 そのファイルについての WRITE ステートメントの処理時にページの論理的な終わりに到達したときです。 印刷されるページの論理的な終わりは、CRTPRTF コマンドまたは OVRPRTF コマンドのオーバーフロー行番号パラメーターで指定します。
この明示範囲終了符号は、WRITE ステートメントの有効範囲を区切る働きをします。 END-WRITE 句を使用することによって、WRITE 条件ステートメントを別の条件ステートメントにネストすることができます。 また、END-WRITE 句は、WRITE 命令ステートメントで使用することもできます。
詳細は 範囲区切りステートメントを参照してください。
マルチボリューム OUTPUT ファイル (テープまたは順次直接アクセス・ファイル) のボリュームの終わりが検出されると、WRITE ステートメントは次の操作を実行します。