| 4D v20WP SET DATA CONTEXT | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
 | 
    4D v20
 WP SET DATA CONTEXT 
         | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| WP SET DATA CONTEXT ( wpDoc ; contextData ) | ||||||||
| 引数 | 型 | 説明 | ||||||
| wpDoc | オブジェクト |   | 4D Write Pro ドキュメント | |||||
| contextData | オブジェクト |   | コンテキストに入れるデータ | |||||
WP SET DATA CONTEXT コマンドは、contextData 引数で指定したオブジェクトを、wpDoc 引数で指定した4D Write Pro ドキュメントのデータコンテキストとして設定します。新しいコンテキスト設定した場合には、ドキュメントの既存のコンテキストは全て上書きされます。
wpDoc 引数には、データコンテキストを受け取る4D Write Pro ドキュメントを渡します。
contextData 引数には、データコンテキストの中身を決定するオブジェクトを渡します。4D オブジェクトであればどんな物でも渡すことができます。これには4D.Entity などのORDA クラスに属するオブジェクトも含まれます。コンテキストをリセットするには、null オブジェクトを渡します。
4D Write Pro データコンテキストは揮発性のものです。つまり以下のようなことを意味します:
これにより、同じドキュメントを、異なるプロセスで、各プロセスごとに異なるコンテキストで使用することが可能です。
データコンテキストが設定されると、そのデータは4D Write Pro エリア内においてThis.data というフォーミュラを用いて利用可能になります。
データコンテキストは、それが定義されたプロセス内においてのみ使用可能です:
異なるプロセスにおいて異なるデータコンテキストのフォーミュラを計算したい場合(例:同じテンプレートのドキュメントから異なる請求書を生成した場合など)、エラーを避けるためにそれぞれのプロセスにおいて WP New を使用してドキュメントを複製することが推奨されます。ドキュメントを複製してもデータコンテキストはコピーされないという点に注意してください。
4D Write Pro ドキュメントのコンテキストにオブジェクトを挿入し、その情報をページ上に表示させたい場合を考えます:
 var $person;$info: Object
 
  // person オブジェクトを作成する
 $person:=New object()
 $person.firstName:="John"
 $person.lastName:="Doe"
 
  // person オブジェクトを使用してコンテキストを設定する
 WP SET DATA CONTEXT(WParea;$person)
 
  // "This" キーワードを使用してコンテキストデータにアクセスする
 $info:=Formula(This.data.firstName+" "+This.data.lastName)
 
  // ページ上にコンテキストデータを表示する
 WP INSERT FORMULA(WParea;$info;wk replace) // ページ上に "John Doe" を表示する
上記のコードを実行した結果は以下のようになります:

テンプレートのドキュメントを使用している場合、それとコンテキストデータを組み合わせることでページにデータを流し込むことができます。これは例えばメールキャンペーンなどにおいて有用と言えます。
テンプレートがロードされてコンテキストが設定されれば、以下のようにテンプレートを活用することができます:

以下のコードは、エンティティセレクション内をループし、各エンティティに対して印刷プレビューを作成します:
	プロダクト: 4D
	テーマ: 4D Write Proランゲージ
	番号: 
        1786
        
        
        
	
	初出: 4D v19 R5
	
	
	
	
	4D Write Proリファレンス ( 4D v20)
	
	
	
 コメントを追加
コメントを追加