version 2004 (Modified)
PRINT SELECTION ({aTable}{; }{* | >})
| 引数 | 型 | 説明 | |
| aTable | テーブル | セレクションを印刷するテーブル, または | |
| 省略した場合、デフォルトテーブル | |||
| * | > | * | > | *: 印刷ダイアログを省略, または | |
| >: 印刷設定の再初期化をしない |
説明
PRINT SELECTIONは、aTableのカレントセレクションを印刷します。レコードは、カレントプロセスのテーブルのカレント出力フォームを使用して印刷されます。PRINT SELECTIONは、デザインモードのプリント...メニューと同じ動作を実行します。セレクションが空の場合、PRINT SELECTIONは何も行いません。
デフォルトで、PRINT SELECTIONは印刷前に印刷ダイアログボックスを表示します。ユーザが印刷ダイアログボックスでキャンセルを行った場合、コマンドはキャンセルされ、印刷を行いません。
オプション引数の * または > を使用して、ダイアログボックスの表示を取り消すことができます:
・* 引数は、現在の印刷設定 (デフォルトの設定、もしくはPAGE SETUPやSET PRINT OPTIONコマンドで定義した) に従い、印刷処理を行います。
・> 引数は上記に加え、現在の印刷設定を再初期化することなく印刷を行います。この設定は、以前に設定した内容を継続し、(例えばループ中で) 連続したPRINT SELECTIONコマンドを使用する時に役立ちます。この引数の使用例はPRINT RECORD コマンドの説明を参照してください。
印刷中には、デザインモードのプロパティリストウィンドウで有効にされたフォームおよびオブジェクトのイベントと、実際に発生しているイベントに応じて、出力フォームのフォームメソッドとオブジェクトメソッドが実行されます:
・On Headerイベントはヘッダを印刷する直前に生成されます。
・On Printing Detailイベントはレコードを印刷する直前に生成されます。
・On Printing Breakイベントはブレークエリアを印刷する直前に生成されます。
・On Printing Footerイベントははフッタを印刷する直前に生成されます。
PRINT SELECTIONが最初のヘッダを印刷しているかどうかは、On HeaderイベントでBefore selectionを判定することによって調べることができます。またOn Printing FooterイベントでEnd selectionを判定することによって、最後のフッタかどうかをチェックすることができます。これら関数の詳細は、それぞれのコマンドやForm event、Levelの説明を参照してください。
PRINT SELECTIONを使用し、小計やブレーク付きでセレクションを印刷するには、まずそのセレクションをソートしなければなりません。次に、レポートの各ブレークエリアに、小計を変数に代入するオブジェクトメソッドを持つ変数を配置します。変数に値を代入する、SumやAverageのような統計関数と算術関数を使用することもできます。詳細はSubtotal、BREAL LEVEL、ACCUMULATEコマンドの説明を参照してください。
警告: PRINT SELECTIONのコンテキストでPAGE BREAKコマンドを使用してはいけません。PAGE BREAKはPrint formのコンテキストで使用します。
PRINT SELECTIONの呼び出し後、プリントが正常に終了するとシステム変数OKに1がセットされます。プリントが中断された場合には、システム変数OKには0がセットされます(例えばユーザが印刷ダイアログボックスでキャンセルをクリックした場合)。
4D Server: このコマンドは、ストアドプロシージャのフレームワークにおいて4D Server上で実行することができます。この状況では、次の制約があります:
・サーバマシン上ではダイアログボックスを一切表示しないでください (特定の必要性がある場合を除く)。そのためにはこのコマンドを * または > 引数付きで呼び出さなければなりません。
・プリンタ関連の問題が発生しても (用紙切れ、プリンタ接続切断等) 、エラーメッセージは生成されません。
例題
以下の例は、最初に[People]テーブルのすべてのレコードを選択します。次にDISPLAY SELECTIONコマンドを使用してすべてのレコードを表示し、ユーザがプリントするレコードを選択します。最後にUSE SETコマンドにより、選択されたレコードをPRINT SELECTIONで印刷します:
ALL RECORDS([People]) ` 全レコード選択
DISPLAY SELECTION ([People]; *) ` レコード表示
USE SET ("UserSet") ` ユーザが指定したレコードのみを使用
PRINT SELECTION([People]) ` 印刷実行
参照
ACCUMULATE, BREAK LEVEL, Level, PAGE SETUP, Subtotal.