4D v16.3Print form |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
Print form
|
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で示されるセクションを印刷します。以下のテーマの定数のうちの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 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 コマンドの例題参照
プロダクト: 4D
テーマ: 印刷
番号:
5
変更: 4D 2004.5
ランゲージリファレンス ( 4D v16)
ランゲージリファレンス ( 4D v16.1)
ランゲージリファレンス ( 4D v16.2)
ランゲージリファレンス ( 4D v16.3)