APからPCに対して書式印刷をする場合,印刷用ファイルへ行データを出力するためにPROCEDURE DIVISIONで指定する文を次に示します。
また,APで行データをコーディングするときに,印刷時のずれを防ぐために設定する行データの属性と指定値を「8.2.3(2) 行データの属性の設定」に示します。
表8-2 PROCEDURE DIVISIONで指定する文
命令文 | 内容 |
---|---|
オープン (OPEN文) | プリンタ出力用ファイルの処理を開始する準備をします OPEN文のモードに出力専用(OUTPUT)を指定して実行します |
出力 (WRITE文) | レコードをプリンタ出力用ファイルに書き出します 明示的または間接的※にADVANCING指定をします |
クローズ (CLOSE文) | プリンタ出力用ファイルの処理を終了します |
書式印刷時にずれを生じさせないように,書式設計前にAPで行データの属性を決定しておきます。APで設定できる属性と指定値を次の表に示します。
表8-3 行データの属性と指定値
属性 | 指定値 | 内容 |
---|---|---|
文字サイズ※ | 5/7/9/12 | 文字サイズを5,7,9,または12ポイントにして文字を配置します |
文字の間隔※ | 0 | 文字の間隔を空けないで文字を配置します |
1~7 | 文字の間隔を1~7ポイントにして文字を配置します | |
書体※ | 0 | 文字の書体を元に戻します |
1 | 文字を明朝体にして配置します | |
2 | 文字をゴシック体にして配置します | |
9 | 文字をOCR体にして配置します | |
拡大 | 指定あり | 横方向に2倍に拡大した文字を配置します |
指定なし | 横方向の拡大を解除した文字を配置します |
APで属性を設定する場合,レコード名または一意名にCHARACTER TYPE句を指定します。CHARACTER TYPE句の形式を次に示します。
CHARACTER TYPE句の詳細については,マニュアル「COBOL2002 言語 拡張仕様編」またはマニュアル「COBOL85 言語」を参照してください。また,WRITE文の形式によって,レコード名のCHARACTER TYPE句を有効にするか,一意名のCHARACTER TYPE句を有効にするかが異なります。
「WRITE レコード名」の場合は,レコード名にCHARACTER TYPE句があるときだけ,行データの印刷制御をします。WRITE文と,CHARACTER TYPE句との関係を次の図に示します。
図8-3 WRITE文と,CHARACTER TYPE句との関係(「WRITE レコード名」の場合)
「WRITE レコード名 FROM 一意名」の場合は,一意名にCHARACTER TYPE句があるときだけ,行データの印刷制御をします。このとき,レコード名にCHARACTER TYPE句があっても無視されます。WRITE文と,CHARACTER TYPE句との関係を次の図に示します。
図8-4 WRITE文と,CHARACTER TYPE句との関係(「WRITE レコード名 FROM 一意名」の場合)
行データを出力する場合,行データおよびページデータの上限値によってデータを出力できない場合があります。必要に応じて,推奨コーディングを参考にしてください。
ドローの書式作成時に,書式属性ダイアログ,および行データ属性ダイアログで文字サイズなどを設定します。APでCHARACTER TYPE句を指定する必要はありません。
行データ設定用のテーブルと送信用のテーブルを用意します。WRITE文の直前で,データを送信用のテーブルにコピーしてから,送信用のテーブルを使用して,WRITE文を実行します。
行データ設定用のテーブルは,項目ごとに定義します。送信用のテーブルは,行データ設定用のテーブルの長さを1項目として定義します。CHARACTER TYPE句は,送信用のテーブルに指定します。
図8-5 推奨コーディング
1行中の行データを,行データの上限値を超えないようにデータを分けます。改行は,1行中の最終データを出力するときにします。1行中の最終データを出力するまでは,改行しないようにしてください。行データの上限値は,概算式を参考にします。概算式については,「付録D.3 書式オーバレイの1ページデータ量の制限」を参照してください。
文字サイズなど,同じ項目が連続する場合には,行データ設定用のテーブルと送信用のテーブルを用意します。WRITE文の直前で,送信用のテーブルにデータをコピーしてから,送信用のテーブルを使用してWRITE文を実行します。送信用のテーブルでは,文字サイズなど,同じ項目が連続する領域を一つの項目として定義してください。CHARACTER TYPE句は,送信用のテーブルに指定します。
図8-6 推奨コーディング