環境部 (ENVIRONMENT DIVISION) でプリンター・ファイルの名前を指定した後で、データ部 (DATA DIVISION) のファイル記述項目でそのプリンター・ファイルを記述しなければなりません。 ファイル記述項目の詳細については、「WebSphere Development Studio: ILE COBOL 解説書」を参照してください。 プリンター・ファイルを記述するには、形式 4 のファイル記述項目を使用します。
プリンター・ファイルは、プログラム記述にしたり外部記述にしたりすることができます。 プログラム記述のプリンター・ファイルは、装置 PRINTER に割り当てられます。 外部記述プリンター・ファイルは、装置 FORMATFILE に割り当てられます。 FORMATFILE を使用した場合は AS/400 の機能を最大限活用でき、PRINTER を使用した場合はプログラムの移植性が大きくなります。
外部記述プリンター・ファイルを使用することは、 プログラム記述のプリンター・ファイルを使用する場合に比べて次の利点があります。
FORMATFILE 使用時に END-OF-PAGE 条件になる場合については 図 116 に示されています。
FORMATFILE ファイルに ADVANCING 句を使用すると、コンパイル・エラーが出されます。 FORMATFILE ファイルにおいて行の ADVANCING は、SKIPA や SKIPB などの DDS キーワードによって、また行番号の使用によって管理されます。
プログラム記述のプリンター・ファイルは、装置 PRINTER に割り当てなければなりません。 DATA DIVISION の中にプログラム記述のプリンター・ファイルを記述した簡単なファイル記述項目は、次のようになります。
FD print-file. 01 print-record PIC X(132).
すべての行送りと改ページの制御は、プログラム記述プリンター・ファイルのファイル記述項目の中に LINAGE 文節を指定することによって、 コンパイラーの生成するコードにより内部的に要求することができます。
FD print-file LINAGE IS integer-1 LINES WITH FOOTING AT integer-2 LINES AT TOP integer-3 LINES AT BOTTOM integer-4. 01 print-record PIC X(132).
用紙の位置指定が行われるのは、最初の WRITE ステートメントの実行時だけです。 プリンターの用紙は新しい物理ページになり、LINAGE-COUNTER は 1 に設定されます。 プリンター・ファイルが共用されている場合に他のプログラムがレコードをこのファイルに書き込んだ場合も、 依然として ILE COBOL の WRITE ステートメントが最初の WRITE ステートメントであると見なされます。 そのファイルの最初の WRITE ステートメントでない場合でも、用紙の位置指定は ILE COBOL コンパイラーによって処理されます。
WRITE ステートメントの行送りや改ページは、すべて内部で制御されます。 用紙の位置指定が ILE COBOL コンパイラーに適切に定義されていないなら、ページの物理サイズは無視されます。 LINAGE 文節があり PRINTER に割り当てられているファイルの場合、 改ページ操作は、論理ページ (ページ本体) の終わりにまで進んでから、 下部マージンと上部マージンの分だけ行送りするということです。
LINAGE 文節を使用するとパフォーマンスが低下します。 LINAGE 文節は必要な場合にだけ使用するようにしてください。 物理ページ送りが受け入れられる場合、LINAGE 文節は必要ありません。
外部記述プリンター・ファイルは、装置 FORMATFILE に割り当てなければなりません。 FORMATFILE という語が使用されているのは、 そのようなファイルの WRITE ステートメントでは FORMAT 句が有効であり、そのファイルの DDS においてデータのフォーマット設定が指定されることによります。 DATA DIVISION の中に外部記述プリンター・ファイルを記述した簡単なファイル記述項目は、次のようになります。
FD print-file. 01 print-record. COPY DDS-ALL-FORMATS-O OF print-file-dds.
使用する FORMATFILE ファイルの DDS を作成してください。 DDS の作成方法については、Web サイト http://www.ibm.com/eserver/iseries/infocenter にある iSeries Information Center の 「プログラミング」カテゴリーを参照してください。
FORMATFILE ファイルの DDS を作成したなら、 形式 2 の COPY ステートメントを使用して、プリンター・ファイルのデータ・レコードのレイアウトを記述してください。 ILE COBOL プログラムをコンパイルすると、形式 2 の COPY により、プリンター・ファイルを記述するためのデータ部 (DATA DIVISION) ステートメントが作成されます。 すべての様式に対して 1 つのストレージ域を生成するためには、形式 2 の COPY ステートメントの DDS-ALL-FORMATS-O オプションを使用してください。
FORMATFILE の装置を指定すれば、次の 2 つの方法で印刷出力のフォーマット設定を行えます。
FORMATFILE に割り当てられたファイルには LINAGE 文節を使用しないでください。 もし使用すると、LINAGE 文節を無視することを示すコンパイル時エラー・メッセージが出されます。
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.