VP SET DATA CONTEXT
履歴
| リリース | 内容 | 
|---|---|
| 19 R5 | 追加 | 
VP SET DATA CONTEXT ( vpAreaName : Text ; dataObj : Object {; options : Object } {; sheet : Integer} )
VP SET DATA CONTEXT ( vpAreaName : Text ; dataColl : Collection ; {options : Object } {; sheet : Integer} )
| 引数 | 型 | 説明 | ||
|---|---|---|---|---|
| vpAreaName | Text | -> | 4D View Pro フォームオブジェクト名 | |
| dataObj | Object | -> | データコンテキストに読み込むデータオブジェクト | |
| dataColl | Collection | -> | データコンテキストに読み込むデータのコレクション | |
| options | Object | -> | 追加のオプション | |
| sheet | Integer | -> | シートのインデックス | 
説明
VP SET DATA CONTEXT コマンドは、シートのデータコンテキストを設定します。 データコンテキストは、ワークシートにバインドされたオブジェクトまたはコレクションで、自動生成オプションまたは VP SET BINDING PATH メソッドを使用することで、シートのセルにその内容を自動的に表示させることができます。 他方、VP Get data context コマンドは、ユーザーによる編集が含まれたコンテキストを返すことができます。
vpAreaName には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。
dataObj または dataColl には、データコンテキストに読み込むデータを格納したオブジェクトまたはコレクションを渡します。 ピクチャーはデータURIスキームに変換されます。
dataObj または dataColl に時間値を渡すには、次のプロパティを持つオブジェクトにカプセル化します (例題 4 参照):
| プロパティ | 型 | 説明 | 
|---|---|---|
| value | Integer, Real, Boolean, Text, Date, Null | コンテキストに設定する値 | 
| time | Real | コンテキストに設定する時間値 (秒単位) | 
options には、追加のオプションを格納したオブジェクトを渡せます。 利用可能なプロパティは次のとおりです:
| プロパティ | 型 | 説明 | 
|---|---|---|
| reset | Object | 新しいコンテキストを読み込む前にシートの内容をリセットする場合は true、それ以外は false (デフォルト) | 
| autoGenerateColumns | Object | コレクション型のデータの場合にのみ使用します。 データコンテキストがバインドされると同時に、カラムを自動生成する場合は true (デフォルト)。 この場合、以下のルールが適用されます: 
  | 
sheet には、データコンテキストを受け取るシートのインデックスを渡します。 インデックスを渡さなかった場合、コンテキストはカレントシートに対して適用されます。
VP Export to object でドキュメントをオブジェクトにエクスポート、または VP EXPORT DOCUMENT でドキュメントを 4DVP ドキュメントにエクスポートする場合、includeBindingSource オプションを使うことで、現在のコンテキストの内容をエクスポート先のセルの値としてコピーすることができます。 詳細については、これらのメソッドの説明を参照ください。
例題
オブジェクトを受け渡し、先頭行のセルにコンテキストデータをバインドします:
var $data : Object
$data:=New object
$data.firstName:="Freehafer"
$data.lastName:="Nancy"
VP SET DATA CONTEXT("ViewProArea"; $data)
VP SET BINDING PATH(VP Cell("ViewProArea"; 0; 0); "firstName")
VP SET BINDING PATH(VP Cell("ViewProArea"; 1; 0); "lastName")
例題 2
オブジェクトのコレクションを受け渡して、カラムを自動生成します:
var $options : Object
var $data : Collection
$data:=New collection()
$data.push(New object("firstname"; "John"; "lastname"; "Smith"))
$data.push(New object("firstname"; "Mary"; "lastname"; "Poppins"))
$options:=New object("autoGenerateColumns"; True)
VP SET DATA CONTEXT("ViewProArea"; $data; $options)
例題 3
引数として渡す data は、サブコレクションを含むコレクションです。 それぞれのサブコレクションは行を定義します:
var $data : Collection
var $options : Object
$data:=New collection
$data.push(New collection(1; 2; 3; False; ""))  // 5 columns are created
$data.push(New collection)  // Second row is empty
$data.push(New collection(4; 5; Null; "hello"; "world"))  // Third row has 5 values
$data.push(New collection(6; 7; 8; 9))  // Fourth row has 4 values
$options:=New object("autoGenerateColumns"; True)
VP SET DATA CONTEXT("ViewProArea"; $data; $options)
例題 4 - 日付と時間のシンタックス
var $data : Collection
var $options : Object
$data:= New collection()
// 日付はスカラー値として渡すことができます
$data.push(New collection("Date"; Current date)) 
// 時間はオブジェクト属性として渡す必要があります
$data.push(New collection("Time"; New object("time"; 5140)))
// 日付 + 時間の例
$data.push(New collection("Date + Time"; New object("value"; Current date; "time"; 5140))) 
$options:=New object("autoGenerateColumns"; True)
VP SET DATA CONTEXT("ViewProArea"; $data; $options)
カラムが生成された後の結果です: