Print form

4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次

version 2004.5 (Modified)


Print form ({aTable; }form{; area1{; area2}}){ 数値 }

引数説明
aTableテーブルフォームが属するテーブル, または
省略した場合は、デフォルトテーブル
form文字列印刷するフォーム
area1数値印刷マーカ、または開始エリア(area2が指定された場合)
area2数値終了エリア(area1が指定された場合)
戻り値数値印刷されたエリアの高さ

説明

Print formは、aTableのフィールドや変数の現在の値を使用してformを印刷します。通常は、印刷処理を完全に制御する必要のある非常に複雑なレポートを印刷するために使用します。Print formはレコード処理、ブレーク処理、改ページ処理を全く行いません。これらの処理はすべて開発者が行います。Print formは固定されたサイズの枠のなかにフィ−ルドや変数を印刷します。

Print formは、フォームの印刷後に改ページを行わないため、同じページに異なるフォームを容易に配置することができます。したがって、Print formは、異なるテーブルや異なるフォームを含む複雑な印刷処理に最適です。フォーム間で改ページを強制的に行うにはPAGE BREAKコマンドを使用してください。印刷可能領域を超える高さのフォームの印刷を次のページに持ち越すには、PAGE BREAKコマンドを使用する前にCANCELコマンドを呼び出してください。

3つの異なるシンタックスを使用できます:

・詳細エリアの印刷

シンタックス:

   height:=Print form (myTable;myForm)

この場合、Print formはフォームの詳細エリア (ヘッダマーカと詳細マーカの間のエリア) だけを印刷します。

・フォームエリアの印刷

シンタックス:

   height:=Print form (myTable;myForm;marker)

この場合コマンドはmarkerで示されるセクションを印刷します。以下のForm areaテーマの定数のうちの1つをmarker引数に渡します:

定数
Form Header倍長整数200
Form Header1...10倍長整数201...210
Form Detail倍長整数0
Form Break0...9倍長整数300...309
Form Footer倍長整数100

・任意のエリア部分の印刷

シンタックス:

   height:=Print form (myTable;myForm;areaStart;areaEnd)

この場合、コマンドはareaStartおよびareaEnd引数間に含まれる部分を印刷します。値はピクセル単位で入力しなければいけません。

Print formによって返される値は印刷可能範囲の高さを表します。この値は、Get printed height コマンドに自動的に考慮されます。

Print formを使用する場合、印刷ダイアログボックスは表示されません。レポートはデザインモードでフォームに割り当てられた用紙設定を使用しません。Print formを実行する前に用紙設定を指定する方法は2通りあります:

PRINT SETTINGSコマンドを使用する。この場合、ユーザが設定を行います。

PAGE SETUPコマンドを使用する。この場合、用紙設定はプログラムで指定します。

Print formは、印刷するページをそれぞれメモリ中に作成します。各ページはメモリ中のページがいっぱいになるか、PAGE BREAKコマンドを実行すると印刷されます。Print formの使用後、最後のページの印刷を確実に行うためには、PAGE BREAKコマンドで終了しなければなりません。そうでないと、最後のページはメモリ中に残り印刷されません。

4D バージョン2004.5以降から、このコマンドはプラグインエリアおよびオブジェクトの印刷に対応します (例えば4D Writeや4D Viewエリア)。エリアはコマンドの実行の度にリセットされます。

警告: サブフォームは、Print formでは印刷できません。このようなオブジェクトを持つフォームを1つだけ印刷するには、代りにPRINT RECORDコマンドを使用します。

Print formは、1回だけフォームメソッドのOn Printing Detailイベントを生成します。

4D Server: このコマンドは、ストアドプロシージャのフレームワークにおいて4D Server上で実行することができます。この状況では、次の制約があります:

・サーバマシン上ではダイアログボックスを一切表示しないでください (特定の必要性がある場合を除く)。

・プリンタ関連の問題が発生しても (用紙切れ、プリンタ接続切断等) 、エラーメッセージは生成されません。

例題

1. 以下の例はPRINT SELECTIONコマンドをエミュレートします。しかし、レコードが小切手用かデポジット用であるかによって2種類のフォームの1つを使用します:

   QUERY([Register])  ` レコードを選択
   If (OK=1) 
      ORDER BY([Register])  ` レコードをソート
      If (OK=1) 
         PRINT SETTINGS ` 印刷設定ダイアログを表示
         If (OK=1) 
            For ($vlRecord; 1; Records in selection([Register]))
               If ([Register]Type = "Check") 
                  Print form ([Register]; "Check Out") ` 小切手用のフォーム
               Else 
                  Print form ([Register]; "Deposit Out")   ` デポジット用のフォーム
               End if 
               NEXT RECORD([Register]) 
            End for 
            PAGE BREAK ` 最後のページを印刷
         End if
      End if
   End if

2. SET PRINT MARKER コマンドの例題参照

参照

CANCEL, PAGE BREAK, PAGE SETUP, PRINT SETTINGS.


4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次