印刷書式
印刷書式 では、プリンターに送信するレイアウトを定義します。
印刷処理
印刷は、以下の 2 つのステップからなる処理です。
- 最初に、実行時バッファーに書式を追加する各 print ステートメントをコーディングします。
- 次に、EGL ランタイムによって、新規ページの開始に必要な記号が追加され、バッファー内のすべての書式が印刷装置に送信されて、バッファーの内容が消去されます。
これらのサービスは、以下のいずれかの状況に応じて実行されます。
- プログラムが、同じ印刷装置を宛先にした印刷書式上で close ステートメントを実行する。
- プログラムがセグメント化モード (テキスト UI プログラムおよび UI プログラムにおけるセグメンテーションを参照) で converse ステートメントを実行する。
- 非 EGL (および非 VisualAge Generator) プログラムによってプログラムが呼び出され、呼び出し先プログラムが終了する。
- 実行単位内のメインプログラムが終了する。
- iSeries 上で実行されている COBOL プログラムに、converseVar.printerAssociation システム変数 (印刷書式の出力宛先を割り当てる変数) が設定されている。
マルチ書式出力の場合は、書式の表示順序に従って print ステートメントを呼び出す必要があります。
以下の例を考えてください。
- 出力の最初にある固定書式に、購入会社およびオーダー番号が示されます。
- 続くフローティング・エリアでは、同一のフォーマット設定を持つ一連のフローティング書式に、 その会社へのオーダーにある各品目が示されます。
- 出力の最後にある固定書式では、品目のリストを表示するためにスクロールする必要がある画面数またはページ数が示されます。
この情報を印刷するには、それぞれに印刷書式に対して実行される一連の print ステートメントを呼び出します。
これらのステートメントは、以下の書式を以下の順序どおりに参照します。
- 最初の書式。
- ループで繰り返し呼び出される print ステートメントによって表示されたフローティング書式。
- 最後の書式。
新規のページを開始するには、print ステートメントを発行する前に、converseLib.pageEject() システム関数を呼び出します。
固定書式に関する考慮事項
固定書式には、以下のことが当てはまります。
- 開始行が現在行より大きい固定書式に対して print ステートメントを発行する場合、EGL は、印刷装置を指定の行まで進めるために必要な記号を挿入します。 同様に、開始行が現在行より小さい固定書式に対して print ステートメントを発行する場合、EGL は、新規ページを開始するために必要な記号を挿入します。
- 固定書式によって、別の固定書式にある一部の (すべてではありません) 行がオーバーレイされる場合、EGL は、新規のページを開始するために必要な記号を自動的に挿入し、2 つ目の固定書式を新規のページに配置します。
- 固定書式が別の固定書式にあるすべての行をオーバーレイする場合、EGL は、バッファーにある出力の残りを消去することなく、既存の書式を置き換えます。 既存の出力を保持したまま次のページに新規書式を配置するには、新規の書式に対して print ステートメントを発行する前に、converseLib.pageEject() システム関数を呼び出します。
フローティング書式に関する考慮事項
フローティング書式を使用する場合、以下のような間違いを起こす可能性があります。
- フローティング・エリアの下限を超えてフローティング書式を配置する print ステートメントを発行する。
- フローティング・エリアの少なくとも一部を固定書式でオーバーレイする print ステートメントを発行した後で、そのフローティング・エリアにフローティング書式を追加する print ステートメントを発行する。
どちらの場合でも、結果的には EGL が新規ページを開始するために必要な記号を挿入し、その新規ページのフローティング・エリアの最初の行にフローティング書式を配置します。 例えば、ページが前述のオーダーと品目の出力のようなものである場合、新規ページに一番上の固定書式は組み込まれません。
その他の考慮事項
10 進小数点および区切り文字は、decimalSymbol ビルド記述子オプションおよび separatorSymbol ビルド記述子オプションによって決定されます。印刷書式を使用しない COBOL 用に生成する EGL プログラムでは、これらのオプションのデフォルト値は、ランタイム・インストール済み環境に対して指定された言語依存のオプション・モジュールから取得されます。ただし、印刷書式を使用する場合は、decimalSymbol オプションのデフォルト値はピリオド、separatorSymbol オプションのデフォルト値はコンマです。これらの値がその場所に適していない場合は、これらのビルド記述子オプションを明示的に設定する必要があります。
印刷宛先
EGL が印刷書式を表示するための close
ステートメントを処理する際、出力はプリンターまたはデータ・セットに送信されます。
宛先は、以下の 3 つの時点で指定することができます。
- デバッグ時 (EGL デバッガーについては、「EGL Programmer's Guide」を参照してください)。
- 生成時。リソース関連パーツ (詳しくは、「EGL Generation Guide」を参照してください) を使用します。
- 実行時。converseVar.printerAssociation システム変数 (printerAssociationを参照) の現行値を使用します。