| 4D v18Print object | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
 | 
    4D v18
 Print object 
         | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Print object ( {* ;} object {; posX {; posY {; width {; height}}}} ) -> 戻り値 | ||||||||
| 引数 | 型 | 説明 | ||||||
| * | 演算子 |   | 指定時objectはオブジェクト名 (文字列) 省略時 objectは変数 | |||||
| object | フォームオブジェクト |   | オブジェクト名 (* 指定時) または 変数 (* 省略時) | |||||
| posX | 倍長整数 |   | オブジェクトの横位置 | |||||
| posY | 倍長整数 |   | オブジェクトの縦位置 | |||||
| width | 倍長整数 |   | オブジェクトの幅 (ピクセル) | |||||
| height | 倍長整数 |   | オブジェクトの高さ (ピクセル) | |||||
| 戻り値 | ブール |   | True = オブジェクトが完全に印刷された; そうでなければFalse | |||||
Print object コマンドを使用して objectと* 引数で指定したフォームオブジェクトを、posXとposYの位置に、任意のサイズで印刷できます。
Print object コマンドを呼び出す前に、印刷するテーブルまたはオブジェクトを含むプロジェクトフォームを新しい FORM LOAD で指定しなければなりません。
オプションの* 引数を渡すと、object引数にはオブジェクト名 (文字列) を渡します。* 引数を渡さない場合、objectには変数を指定します。この場合、文字列ではなく変数参照 (オブジェクトタイプのみ) を渡します。
posXとposY引数はオブジェクトを印刷する開始位置を指定します。これらの値はピクセル単位で指定ます。これらの引数を省略すると、オブジェクトはフォーム上の位置に基づいて印刷されます。
widthとheight引数はフォームオブジェクトの幅と高さを指定します。Print object コマンドは可変長のオブジェクトを管理しません。OBJECT GET BEST SIZE コマンドでオブジェクトのサイズを管理しなければなりません。またOBJECT GET BEST SIZE コマンドでテキストを含むオブジェクトのもっとも適切なサイズを知ることができます。同様に、Print object はページブレークを自動では生成しません。必要に応じて開発者が管理しなければなりません。
4Dコマンドを使用してオブジェクトプロパティ (色やサイズなど) をオンザフライで変更できます。
オブジェクトが完全に印刷されるとコマンドはTrueを返します。そうでないばあい、言い換えればフレームワーク内のオブジェクトに割り当てられた データをすべて印刷できなかった場合、コマンドはFalseを返します。特にリストボックスのすべての行を印刷できなかった場合、コマンドはFalseを 返します。この場合Print object コマンドを、それがTrueを返すまで繰り返し呼び出します。特別なメカニズムが自動で使用され、オブジェクトの内容が呼び出しごとに自動でスクロールされます。ユーザーが印刷オペレーションをキャンセルした場合、エラー-128 が生成されます。このエラーはON ERR CALL で割り込み可能です。
注:
 
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リストボックス全体を印刷したい場合を考えます:
 OPEN PRINTING JOB
 FORM LOAD("myForm")
 $Over:=False
 gError:=0
 ON ERR CALL("err")
 Repeat
    $Total:=Print object(*;"List_Box")
    LISTBOX GET PRINT INFORMATION(*;"List_Box";lk printing is over;$Over)
    PAGE BREAK
    If(gError=-128) //ユーザーが印刷をキャンセルした
       $Over:=True
    End if
 Until($Over)
 CLOSE PRINTING JOB
 ON ERR CALL("")
	プロダクト: 4D
	テーマ: 印刷
	番号: 
        1095
        
        
        
	
	初出: 4D v12
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	ランゲージリファレンス ( 4D v18)
	
	
	
	
	
 コメントを追加
コメントを追加