4D v16.3

Print object

ホーム

 
4D v16.3
Print object

Print object 


 

Print object ( {* ;} object {; posX {; posY {; width {; height}}}} ) -> 戻り値 
引数   説明
演算子 in 指定時objectはオブジェクト名 (文字列) 省略時 objectは変数
object  フォームオブジェクト in オブジェクト名 (* 指定時) または 変数 (* 省略時)
posX  倍長整数 in オブジェクトの横位置
posY  倍長整数 in オブジェクトの縦位置
width  倍長整数 in オブジェクトの幅 (ピクセル)
height  倍長整数 in オブジェクトの高さ (ピクセル)
戻り値  ブール in True = オブジェクトが完全に印刷された; そうでなければFalse

説明   

Print object コマンドを使用して object* 引数で指定したフォームオブジェクトを、posXposYの位置に、任意のサイズで印刷できます。

Print object コマンドを呼び出す前に、印刷するテーブルまたはオブジェクトを含むプロジェクトフォームを新しい FORM LOAD で指定しなければなりません。

オプションの* 引数を渡すと、object引数にはオブジェクト名 (文字列) を渡します。* 引数を渡さない場合、objectには変数を指定します。この場合、文字列ではなく変数参照 (オブジェクトタイプのみ) を渡します。

posXposY引数はオブジェクトを印刷する開始位置を指定します。これらの値はピクセル単位で指定ます。これらの引数を省略すると、オブジェクトはフォーム上の位置に基づいて印刷されます。

widthheight引数はフォームオブジェクトの幅と高さを指定します。Print object コマンドは可変長のオブジェクトを管理しません。OBJECT GET BEST SIZE コマンドでオブジェクトのサイズを管理しなければなりません。またOBJECT GET BEST SIZE コマンドでテキストを含むオブジェクトのもっとも適切なサイズを知ることができます。同様に、Print object はページブレークを自動では生成しません。必要に応じて開発者が管理しなければなりません。 

4Dコマンドを使用してオブジェクトプロパティ (色やサイズなど) をオンザフライで変更できます。

オブジェクトが完全に印刷されるとコマンドはTrueを返します。そうでないばあい、言い換えればフレームワーク内のオブジェクトに割り当てられた データをすべて印刷できなかった場合、コマンドはFalseを返します。特にリストボックスのすべての行を印刷できなかった場合、コマンドはFalseを 返します。この場合Print object コマンドを、それがTrueを返すまで繰り返し呼び出します。特別なメカニズムが自動で使用され、オブジェクトの内容が呼び出しごとに自動でスクロールされます。

注:

  • 4D の現在のバージョンでは、リストボックスタイプのオブジェクトのみがこのメカニズムを持っています (他のオブジェクトではコマンドは常に Trueを返します)。4Dの将来のバージョンでこの機能は他の可変長オブジェクトに拡張されます。
  • LISTBOX GET PRINT INFORMATION コマンドを使用して、処理中に印刷状況を知ることができます。

Print object コマンドは事前にOPEN PRINTING JOB で開かれた印刷ジョブのコンテキストでのみ使用できます。このコンテキストの外で呼び出された場合、コマンドはなにも行いません。同じ印刷ジョブ内でPrint object コマンドを複数回呼び出すことができます。

: 階層リスト、サブフォーム、およびWebエリアを印刷することはできません。

フォーム上の10個のオブジェクトを印刷する例:

 PRINT SETTINGS
 If(OK=1)
    OPEN PRINTING JOB
    If(OK=1)
       FORM LOAD("PrintForm")
       x:=100
       y:=50
       GET PRINTABLE AREA(hpaper;wpaper)
       For($i;1;10)
          OBJECT GET BEST SIZE(*;"Obj"+String($i);bestwidth;bestheight)
          $end:=Print object(*;"Obj"+String($i))
          y:=y+bestheight+15
          If(y>hpaper)
             PAGE BREAK(>)
             y:=50
          End if
       End for
    End if
    CLOSE PRINTING JOB
 End if

リストボックスを完全に印刷する例:

 Repeat
    $end:=Print object(*;"mylistbox")
 Until($end)



参照 

FORM LOAD

 
プロパティ 

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

 
履歴 

初出: 4D v12

 
ARTICLE USAGE

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