VP SET DATA CONTEXT
History
Release | Changes |
---|---|
19 R5 | Added |
VP SET DATA CONTEXT ( vpAreaName : Text ; dataObj : Object {; options : Object } {; sheet : Integer} )
VP SET DATA CONTEXT ( vpAreaName : Text ; dataColl : Collection ; {options : Object } {; sheet : Integer} )
Parameter | Type | Description | |
---|---|---|---|
vpAreaName | Object | -> | 4D View Pro area form object name |
dataObj | Object | -> | Data object to load in the data context |
dataColl | Collection | -> | Data collection to load in the data context |
options | Object | -> | Additional options |
sheet | Integer | -> | Sheet index |
Description
The VP SET DATA CONTEXT
command sets the data context of a sheet. A data context is an object or a collection bound to a worksheet, and whose contents can be used to automatically fill the sheet cells, either by using an autogenerate option or the VP SET BINDING PATH method. On the other hand, the VP Get data context command can return a context containing user modifications.
In vpAreaName, pass the name of the 4D View Pro area. If you pass a name that does not exist, an error is returned.
In dataObj or dataColl, pass an object or a collection containing the data to load in the data context. Images are converted to data URI schemes.
To pass a time value in dataObj or dataColl, encapsulate it in an object with the following properties (see example 4):
Property | Type | Description |
---|---|---|
value | Integer, Real, Boolean, Text, Date, Null | Value to put in the context |
time | Real | Time value (in seconds) to put in the context |
In options, you can pass an object that specifies additional options. Possible properties are:
Property | Type | Description |
---|---|---|
reset | Object | True to reset the sheet's contents before loading the new context, False (default) otherwise. |
autoGenerateColumns | Object | Only used when data is a collection. True (default) to specify that columns must be generated automatically when the data context is bound. In this case, the following rules apply:
|
In sheet, pass the index of the sheet that will receive the data context. If no index is passed, the context is applied to the current sheet.
If you export your document to an object using VP Export to object, or to a 4DVP document using VP EXPORT DOCUMENT, the includeBindingSource
option lets you copy the contents of the current contexts as cell values in the exported object or document. For more details, refer to the description of those methods.
Example
Pass an object and bind the context data to cells in the first row:
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")
Example 2
Pass a collection of objects and generate columns automatically:
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)
Example 3
The data passed as a parameter is a collection that contains subcollections. Each subcollection defines the contents of a row:
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)
Example 4 - Date and time syntax
var $data : Collection
var $options : Object
$data:= New collection()
// Dates can be passed as scalar values
$data.push(New collection("Date"; Current date))
// Time values must be passed as object attributes
$data.push(New collection("Time"; New object("time"; 5140)))
// Date + time example
$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)
Here's the result once the columns are generated: