4D v16.3

Print form

ホーム

 
4D v16.3
Print form

Print form 


 

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

説明   

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で示されるセクションを印刷します。以下のテーマの定数のうちの1つをmarker引数に渡します:

定数
Form break0 倍長整数 300
Form break1 倍長整数 301
Form break2 倍長整数 302
Form break3 倍長整数 303
Form break4 倍長整数 304
Form break5 倍長整数 305
Form break6 倍長整数 306
Form break7 倍長整数 307
Form break8 倍長整数 308
Form break9 倍長整数 309
Form detail 倍長整数 0
Form footer 倍長整数 100
Form header 倍長整数 200
Form header1 倍長整数 201
Form header10 倍長整数 210
Form header2 倍長整数 202
Form header3 倍長整数 203
Form header4 倍長整数 204
Form header5 倍長整数 205
Form header6 倍長整数 206
Form header7 倍長整数 207
Form header8 倍長整数 208
Form header9 倍長整数 209

任意のエリア部分の印刷

シンタックス:

 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コマンドで終了しなければなりません。そうでないと、最後のページはメモリ中に残り印刷されません。

警告: このコマンドが OPEN PRINTING JOB で開かれた印刷ジョブのコンテキストで呼び出された場合、 PAGE BREAK を使用して最後のページを印刷しようとしてはいけません。なぜなら、最後のページはCLOSE PRINTING JOB コマンドによって自動的に印刷されるからです。この状況で PAGE BREAK を使用した場合、空のページが印刷されます。

このコマンドは外部エリアとオブジェクト(例えば 4D Write や 4D Viewエリアなど)を印刷します。エリアはコマンドの実行の際に毎回リセットされます。

警告: サブフォームは、 Print form では印刷はされません。そのようなオブジェクトを含んだフォームを一つだけ印刷したい場合は、代わりに PRINT RECORD を使用して下さい。

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

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

  • サーバマシン上ではダイアログボックスを一切表示しないでください (特定の必要性がある場合を除く)。
  • プリンタ関連の問題が発生しても (用紙切れ、プリンタ接続切断等) 、エラーメッセージは生成されません。

以下の例は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

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



参照 

CANCEL
PAGE BREAK
PAGE SETUP
PRINT SETTINGS

 
プロパティ 

プロダクト: 4D
テーマ: 印刷
番号: 5

リモートモードでは動作が異なります。

 
履歴 

変更: 4D 2004.5

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v16)
ランゲージリファレンス ( 4D v16.1)
ランゲージリファレンス ( 4D v16.2)
ランゲージリファレンス ( 4D v16.3)