メインコンテンツまでスキップ
バージョン: 20 R7 BETA

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オブジェクト->4D View Pro フォームオブジェクト名
dataObjオブジェクト->データコンテキストに読み込むデータオブジェクト
dataCollコレクション->データコンテキストに読み込むデータのコレクション
optionsオブジェクト->追加のオプション
sheet整数->シートのインデックス

説明

VP SET DATA CONTEXT コマンドは、シートのデータコンテキストを設定します。 データコンテキストは、ワークシートにバインドされたオブジェクトまたはコレクションで、自動生成オプションまたは VP SET BINDING PATH メソッドを使用することで、シートのセルにその内容を自動的に表示させることができます。 他方、VP Get data context コマンドは、ユーザーによる編集が含まれたコンテキストを返すことができます。

vpAreaName には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。

dataObj または dataColl には、データコンテキストに読み込むデータを格納したオブジェクトまたはコレクションを渡します。 ピクチャーはデータURIスキームに変換されます。

dataObj または dataColl に時間値を渡すには、次のプロパティを持つオブジェクトにカプセル化します (例題 4 参照):

プロパティ説明
valueInteger, Real, Boolean, Text, Date, Nullコンテキストに設定する値
time実数コンテキストに設定する時間値 (秒単位)

options には、追加のオプションを格納したオブジェクトを渡せます。 利用可能なプロパティは次のとおりです:

プロパティ説明
resetオブジェクト新しいコンテキストを読み込む前にシートの内容をリセットする場合は true、それ以外は false (デフォルト)
autoGenerateColumnsオブジェクトコレクション型のデータの場合にのみ使用します。 データコンテキストがバインドされると同時に、カラムを自動生成する場合は true (デフォルト)。 この場合、次のルールが適用されます:
  • dataColl がオブジェクトのコレクションの場合、属性名はカラムのタイトルとして使用されます (例題 2 参照)。
  • dataColl がスカラー値のサブコレクションを含む場合、各サブコレクションは一つの行の値を定義します (例題 3 参照)。 最初のサブコレクションにより、生成されるカラム数が決定します。

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)

カラムが生成された後の結果です:

参照

VP SET BINDING PATH
VP Get binding path
VP Get data context