Skip to main content
Version: v20 R4 BETA

Method List

Warning: The commands on this page are not thread-safe.

A - C - D - E - F - G - I - M - N - O - P - R - S

A

VP ADD FORMULA NAME

VP ADD FORMULA NAME ( vpAreaName : Text ; vpFormula : Text ; name : Text { ; options : Object } )

ParameterTypeDescription
vpAreaNameText->4D View Pro area form object name
vpFormulaText->4D View Pro formula
nameText->Name for the formula
optionsObject->Options for the named formula

Description

The VP ADD FORMULA NAME command creates or modifies a named formula in the open document.

Named formulas created by this command are saved with the document.

In vpAreaName, pass the name of the 4D View Pro area. If you pass a name that does not exist, an error is returned.

Pass the 4D View Pro formula that you want to name in vpFormula. For detailed information about formula syntax, see Formulas and Functions page.

Pass the new name for the formula in name. If the name is already used within the same scope, the new named formula replaces the existing one. Note that you can use the same name for different scopes (see below).

You can pass an object with additional properties for the named formula in options. The following properties are supported:

PropertyTypeDescription
scopeNumberScope for the formula. You can pass the sheet index (counting begins at 0) or use the following constants:
  • vk current sheet
  • vk workbook
  • The scope determines whether a formula name is local to a given worksheet (scope=sheet index or vk current sheet), or global across the entire workbook (scope=vk workbook).
    commentTextComment associated to named formula

    Example

    VP ADD FORMULA NAME("ViewProArea";"SUM($A$1:$A$10)";"Total2")

    See also

    Cell references
    VP Get formula by name
    VP Get names

    VP ADD RANGE NAME

    VP ADD RANGE NAME ( rangeObj : Object ; name : Text { ; options : Object } )

    ParameterTypeDescription
    rangeObjObject->Range object
    nameText->Name for the fomula
    optionsObject->Options for the named formula

    Description

    The VP ADD RANGE NAME command creates or modifies a named range in the open document.

    Named ranges created by this command are saved with the document.

    In rangeObj, pass the range that you want to name and in name, pass the new name for the range. If the name is already used within the same scope, the new named range replaces the existing one. Note that you can use the same name for different scopes (see below).

    You can pass an object with additional properties for the named range in options. The following properties are supported:

    PropertyTypeDescription
    scopeNumberScope for the range. You can pass the sheet index (counting begins at 0) or use the following constants:
  • vk current sheet
  • vk workbook
  • The scope determines whether a range name is local to a given worksheet (scope=sheet index or vk current sheet), or global across the entire workbook (scope=vk workbook).
    commentTextComment associated to named range
    • A named range is actually a named formula containing coordinates. VP ADD RANGE NAME facilitates the creation of named ranges, but you can also use the VP ADD FORMULA NAME method to create named ranges.
    • Formulas defining named ranges can be retrieved with the VP Get formula by name method.

    Example

    You want to create a named range for a cell range:

    $range:=VP Cell("ViewProArea";2;10)
    VP ADD RANGE NAME($range;"Total1")

    See also

    VP Get names
    VP Name

    VP ADD SELECTION

    VP ADD SELECTION ( rangeObj : Object )

    ParameterTypeDescription
    rangeObjText->Range object

    Description

    The VP ADD SELECTION command adds the specified cells to the currently selected cells.

    In rangeObj, pass a range object of cells to add to the current selection.

    The active cell is not modified.

    Example

    You have cells currently selected:

    The following code will add cells to your selection:

    $currentSelection:=VP Cells("myVPArea";3;4;2;3)
    VP ADD SELECTION($currentSelection)

    Result:

    See also

    VP Get active cell
    VP Get selection
    VP RESET SELECTION
    VP SET ACTIVE CELL
    VP SET SELECTION
    VP SHOW CELL

    VP ADD SHEET

    VP ADD SHEET ( vpAreaName : Text )
    VP ADD SHEET ( vpAreaName : Text ; index : Integer )
    VP ADD SHEET ( vpAreaName : Text ; sheet : Integer ; name : Text )

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    sheetInteger->Index of the new sheet
    nameText->Sheet name

    Description

    The VP ADD SHEET command inserts a sheet in the document loaded in vpAreaName.

    In vpAreaName, pass the name of the 4D View Pro area.

    In sheet, you can pass an index for the new sheet. If the passed index is inferior to or equal to 0, the command inserts the new sheet at the beginning. If index exceeds the number of sheets, the command inserts the new sheet after the existing ones.

    Indexing starts at 0.

    In name, you can pass a name for the new sheet. The new name cannot contain the following characters: *, :, [, ], ?,\,/

    Example

    The document currently has 3 sheets:

    vp-document-with-3-sheets

    To insert a sheet at the third position (index 2) and name it "March":

    VP ADD SHEET("ViewProArea";2;"March")

    vp-add-sheet

    See also

    VP REMOVE SHEET

    VP ADD SPAN

    VP ADD SPAN ( rangeObj : Object )

    ParameterTypeDescription
    rangeObjObject->Range object

    Description

    The VP ADD SPAN command combines the cells in rangeObj as a single span of cells.

    In rangeObj, pass a range object of cells. The cells in the range are joined to create a larger cell extending across multiple columns and/or rows. You can pass multiple cell ranges to create several spans at the same time. Note that if cell ranges overlap, only the first cell range is used.

    • Only the data in the upper-left cell is displayed. Data in the other combined cells is hidden until the span is removed.
    • Hidden data in spanned cells is accessible via formulas (beginning with the upper-left cell).

    Example

    To span the First quarter and Second quarter cells across the two cells beside them, and the South area cell across the two rows below it:

    initial-document

     // First quarter range
    $q1:=VP Cells("ViewProArea";2;3;3;1)

    // Second quarter range
    $q2:=VP Cells("ViewProArea";5;3;3;1)

    // South area range
    $south:=VP Cells("ViewProArea";0;5;1;3)

    VP ADD SPAN(VP Combine ranges($q1;$q2;$south))

    vp-add-span-result

    See also

    4D View Pro Range Object Properties
    VP Get spans
    VP REMOVE SPAN

    VP ADD STYLESHEET

    VP ADD STYLESHEET ( vpAreaName : Text ; styleName : Text ; styleObj : Object { ; sheet : Integer } )

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    styleNameText->Name of style
    styleObjObject->Object defining attribute settings
    sheetInteger->Sheet index (current sheet if omitted)

    Description

    The VP ADD STYLESHEET command creates or modifies the styleName style sheet based upon the combination of the properties specified in styleObj in the open document. If a style sheet with the same name and index already exists in the document, this command will overwrite it with the new values.

    Style sheets created by this command are saved with the document.

    In vpAreaName, pass the name of the 4D View Pro area. If you pass a name that does not exist, an error is returned.

    The styleName parameter lets you assign a name to the style sheet. If the name is already used within the same scope, the new style sheet replaces the existing one. Note that you can use the same name for different scopes (see below).

    Within the styleObj, designate the settings for the style sheet (e.g., font, text decoration, alignment, borders, etc.). For the full list of style properties, see Style object properties.

    You can designate where to define the style sheet in the optional sheet parameter using the sheet index (indexing starts at 0) or with the following constants:

    • vk current sheet
    • vk workbook

    If a styleName style sheet is defined at the workbook level and at a sheet level, the sheet level has priority over the workbook level when the style sheet is set.

    To apply the style sheet, use the VP SET DEFAULT STYLE or VP SET CELL STYLE commands.

    Example

    The following code:

    $styles:=New object
    $styles.backColor:="green"

    //Line Border Object
    $borders:=New object("color";"green";"style";vk line style medium dash dot)

    $styles.borderBottom:=$borders
    $styles.borderLeft:=$borders
    $styles.borderRight:=$borders
    $styles.borderTop:=$borders

    VP ADD STYLESHEET("ViewProArea";"GreenDashDotStyle";$styles)

    //To apply the style
    VP SET CELL STYLE(VP Cells("ViewProArea";1;1;2;2);New object("name";"GreenDashDotStyle"))

    will create and apply the following style object named GreenDashDotStyle:

    {
    backColor:green,
    borderBottom:{color:green,style:10},
    borderLeft:{color:green,style:10},
    borderRight:{color:green,style:10},
    borderTop:{color:green,style:10}
    }

    See also

    4D View Pro Style Objects and Style Sheets
    VP Get stylesheet
    VP Get stylesheets
    VP REMOVE STYLESHEET
    VP SET CELL STYLE
    VP SET DEFAULT STYLE

    VP All

    VP All ( vpAreaName : Text { ; sheet : Integer } ) : Object

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    sheetInteger->Sheet index (current sheet if omitted)
    ResultObject<-Range object of all cells

    Description

    The VP ALL command returns a new range object referencing all cells.

    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 the optional sheet parameter, you can designate a specific spreadsheet where the range will be defined (counting begins at 0). If omitted or if you pass vk current sheet, the current spreadsheet is used.

    Example

    You want to define a range object for all of the cells of the current spreadsheet:

    $all:=VP All("ViewProArea") // all cells of the current sheet

    See also

    VP Cell
    VP Cells
    VP Column
    VP Combine ranges
    VP Name
    VP Row

    C

    VP Cell

    VP Cell ( vpAreaName ; column : Integer ; row : Integer ; Text { ; sheet : Integer } ) : Object

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    columnLongint->Column index
    rowLongint->Row index
    sheetInteger->Sheet index (current sheet if omitted)
    ResultObject<-Range object of a single cell

    Description

    The VP Cell command returns a new range object referencing a specific cell.

    This command is intended for ranges of a single cell. To create a range object for multiple cells, use the VP Cells command.

    In vpAreaName, pass the name of the 4D View Pro area. If you pass a name that does not exist, an error is returned.

    The column parameter defines the column of the cell range's position. Pass the column index in this parameter.

    The row parameter defines the row of the cell range's position. Pass the row index in this parameter.

    In the optional sheet parameter, you can indicate the index of the sheet where the range will be defined. If omitted or if you pass vk current sheet, the current spreadsheet is used by default.

    indexing starts at 0.

    Example

    You want to define a range object for the cell shown below (on the current spreadsheet):

    vp-cell

    The code would be:

    $cell:=VP Cell("ViewProArea";2;4) // C5

    See also

    VP All
    VP Cells
    VP Column
    VP Combine ranges
    VP Name
    VP Row

    VP Cells

    VP Cells ( vpAreaName : Text ; column: Integer ; row: Integer ; columnCount : Integer ; rowCount : Integer { ; sheet : Integer } ) : Object

    History
    VersionChanges
    v17 R4Added
    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    columnInteger->Column index
    rowInteger->Row index
    columnCountInteger->Number of columns
    rowCountInteger->Number of rows
    sheetInteger->Sheet index (current sheet if omitted)
    ResultObject<-Range object of cells

    Description

    The VP Cells command returns a new range object referencing specific cells.

    In vpAreaName, pass the name of the 4D View Pro area. If you pass a name that does not exist, an error is returned.

    The column parameter defines the first column of the cell range. Pass the column index (counting begins at 0) in this parameter. If the range is within multiple columns, you should also use the columnCount parameter.

    In the row parameter, you can define the row(s) of the cell range's position. Pass the row index (counting begins at 0) in this parameter. If the range is within multiple rows, you should also use the rowCount parameter.

    The columnCount parameter allows you to define the total number of columns the range is within. columnCount must be greater than 0.

    The rowCount parameter allows you to define the total number of rows the range is within. rowCount must be greater than 0.

    In the optional sheet parameter, you can designate a specific spreadsheet where the range will be defined (counting begins at 0). If omitted or if you pass vk current sheet, the current spreadsheet is used by default.

    Example

    You want to define a range object for the following cells (on the current sheet):

    The code would be:

    $cells:=VP Cells("ViewProArea";2;4;2;3) // C5 to D7

    See also

    VP All
    VP Cells
    VP Column
    VP Combine ranges
    VP Name
    VP Row

    VP Column

    VP Column ( vpAreaName : Text ; column: Integer ; columnCount : Integer { ; sheet : Integer } ) : Object

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    columnInteger->Column index
    columnCountInteger->Number of columns
    sheetInteger->Sheet index (current sheet if omitted)
    ResultObject<-Range object of cells

    Description

    The VP Column command returns a new range object referencing a specific column or columns.

    In vpAreaName, pass the name of the 4D View Pro area. If you pass a name that does not exist, an error is returned.

    The column parameter defines the first column of the column range. Pass the column index (counting begins at 0) in this parameter. If the range contains multiple columns, you should also use the optional columnCount parameter.

    The optional columnCount parameter allows you to define the total number of columns of the range. columnCount must be greater than 0. If omitted, the value will be set to 1 by default and a column type range is created.

    In the optional sheet parameter, you can designate a specific spreadsheet where the range will be defined (counting begins at 0). If omitted or if you pass vk current sheet, the current spreadsheet is used by default.

    Example

    You want to define a range object for the column shown below (on the current spreadsheet):

    The code would be:

     $column:=VP Column("ViewProArea";3) // column D

    See also

    VP All
    VP Cells
    VP Column
    VP Combine ranges
    VP Name
    VP Row
    VP SET COLUMN ATTRIBUTES

    VP COLUMN AUTOFIT

    VP COLUMN AUTOFIT ( rangeObj : Object )

    ParameterTypeDescription
    rangeObjObject->Range object

    Description

    The VP COLUMN AUTOFIT command automatically sizes the column(s) in rangeObj according to their contents.

    In rangeObj, pass a range object containing a range of the columns whose size will be automatically handled.

    Example

    The following columns are all the same size and don't display some of the text:

    Selecting the columns and running this code:

     VP COLUMN AUTOFIT(VP Get selection("ViewProarea"))

    ... resizes the columns to fit the size of the contents:

    See also

    VP ROW AUTOFIT

    VP Combine ranges

    VP Combine ranges ( rangeObj : Object ; otherRangeObj : Object {;...otherRangeObjN : Object } ) : Object

    ParameterTypeDescription
    rangeObjObject->Range object
    otherRangeObjObject->Range object
    ResultObject<-Object containing a combined range

    Description

    The VP Combine Ranges command returns a new range object that incorporates two or more existing range objects. All of the ranges must be from the same 4D View Pro area.

    In rangeObj, pass the first range object.

    In otherRangeObj, pass another range object(s) to combine with rangeObj.

    The command incorporates rangeObj and otherRangeObj objects by reference.

    Example

    You want to combine cell, column, and row range objects in a new, distinct range object:

     $cell:=VP Cell("ViewProArea";2;4) // C5
    $column:=VP Column("ViewProArea";3) // column D
    $row:=VP Row("ViewProArea";9) // row 10

    $combine:=VP Combine ranges($cell;$column;$row)

    See also

    VP All
    VP Cells
    VP Column
    VP Combine ranges
    VP Name
    VP Row
    VP SET COLUMN ATTRIBUTES

    VP Convert from 4D View

    VP Convert from 4D View ( 4DViewDocument : Blob ) : Object

    ParameterTypeDescription
    4DViewDocumentBlob->4D View document
    ResultObject<-4D View Pro object

    Description

    The VP Convert from 4D View command allows you to convert a legacy 4D View document into a 4D View Pro object.

    This command does not require that the legacy 4D View plug-in be installed in your environment.

    In the 4DViewDocument parameter, pass a BLOB variable or field containing the 4D View document to convert. The command returns a 4D View Pro object into which all the information originally stored within the 4D View document is converted to 4D View Pro attributes.

    Example

    You want to get a 4D View Pro object from a 4D View area stored in a BLOB:

    C_OBJECT($vpObj)
    $vpObj:=VP Convert from 4D View($pvblob)

    VP Convert to picture

    VP Convert to picture ( vpObject : Object {; rangeObj : Object} ) : Picture

    ParameterTypeDescription
    vpObjectObject->4D View Pro object containing the area to convert
    rangeObjObject->Range object
    ResultObject<-SVG picture of the area

    Description

    The VP Convert to picture command converts the vpObject 4D View Pro object (or the rangeObj range within vpObject) to a SVG picture.

    This command is useful, for example:

    • to embed a 4D View Pro document in an other document such as a 4D Write Pro document
    • to print a 4D View Pro document without having to load it into a 4D View Pro area.

    In vpObject, pass the 4D View Pro object that you want to convert. This object must have been previously parsed using VP Export to object or saved using VP EXPORT DOCUMENT.

    SVG conversion process requires that expressions and formats (cf. Cell Format) included in the 4D View Pro area be evaluated at least once, so that they can be correctly exported. If you convert a document that was not evaluated beforehand, expressions or formats may be rendered in an unexpected way.

    In rangeObj, pass a range of cells to convert. By default, if this parameter is omitted, the whole document contents are converted.

    Document contents are converted with respect to their viewing attributes, including formats (see note above), visibility of headers, columns and rows. The conversion of the following elements is supported:

    • Text : style / font / size / alignment / orientation / rotation / format
    • Cell background : color / image
    • Cell borders : thickness / color / style
    • Cell merge
    • Pictures
    • Row height
    • Column width
    • Hidden columns / rows.

    Gridline visibility depends on document attribute defined with VP SET PRINT INFO.

    Function result

    The command returns a picture in SVG format.

    Example

    You want to convert a 4D View Pro area in SVG, preview the result, and send it to a picture variable:

    C_OBJECT($vpAreaObj)
    C_PICTURE($vPict)
    $vpAreaObj:=VP Export to object("ViewProArea")
    $vPict:=VP Convert to picture($vpAreaObj) //export the whole area

    See also

    VP EXPORT DOCUMENT
    VP Export to object
    VP SET PRINT INFO

    VP Copy to object

    History
    VersionChanges
    v19 R4Added

    VP Copy to object ( rangeObj : Object {; options : Object} ) : Object

    ParameterTypeDescription
    rangeObjObject->Range object
    optionsObject->Additional options
    ResultObject<-Object returned. Contains the copied data

    Description

    The VP Copy to object command copies the contents, style and formulas from rangeObj to an object.

    In rangeObj, pass the cell range with the values, formatting, and formulas to copy. If rangeObj is a combined range, only the first one is used.

    You can pass an optional options parameter with the following properties:

    PropertyTypeDescription
    copyBooleanTrue (default) to keep the copied values, formatting and formulas after the command executes. False to remove them.
    copyOptionsLongintSpecifies what is copied or moved. Possible values:

    ValueDescription
    vk clipboard options all (default)Copies all data objects, including values, formatting, and formulas.
    vk clipboard options formattingCopies only the formatting.
    vk clipboard options formulasCopies only the formulas.
    vk clipboard options formulas and formattingCopies the formulas and formatting.
    vk clipboard options valuesCopies only the values.
    vk clipboard options value and formattingCopies the values and formatting.

    The paste options defined in the workbook options are taken into account.

    The command returns an object that contains the copied data.

    Example

    This code sample first stores the contents, values, formatting and formulas from a range to an object, and then pastes them in another range:

    var $originRange; $targetRange; $dataObject; $options : Object

    $originRange:=VP Cells("ViewProArea"; 0; 0; 2; 5)

    $options:=New object
    $options.copy:=True
    $options.copyOptions:=vk clipboard options all

    $dataObject:=VP Copy to object($originRange; $options)

    $targetRange:=VP Cell("ViewProArea"; 4; 0)
    VP PASTE FROM OBJECT($targetRange; $dataObject; vk clipboard options all)

    See also

    VP PASTE FROM OBJECT
    VP MOVE CELLS
    VP Get workbook options
    VP SET WORKBOOK OPTIONS

    VP CREATE TABLE

    History
    VersionChanges
    v19 R8Support of theme options: bandColumns, bandRows, highlightFirstColumn, highlightLastColumn, theme
    v19 R7Support of allowAutoExpand option
    v19 R6Added

    VP CREATE TABLE ( rangeObj : Object ; tableName : Text {; source : Text} {; options : cs.ViewPro.TableOptions} )

    ParameterTypeDescription
    rangeObjObject->Range object
    tableNameText->Name for the table
    sourceText->Data context property name to display in the table
    optionscs.ViewPro.TableOptions->Additional options

    Description

    The VP CREATE TABLE command creates a table in the specified range. You can create a table in a range of cells to make managing and analyzing a group of related data easier. A table typically contains related data in rows and columns, and takes advantage of a data context.

    In rangeObj, pass the cell range where the table will be created.

    In tableName, pass a name for the table. The name must:

    • be unique in the sheet
    • include at least 5 characters
    • not include spaces or start with a number

    In source, you can pass a property name of a data context to display its data in the table. This binds the table to the data context. When the data context is updated, the data displayed in the table is updated accordingly. The source property must contain a collection of objects and each element represents a row.

    • If you don't specify a source, the command creates an empty table with the size defined in rangeObj.
    • If the specified source cannot be fully displayed in the document, no table is created.

    In the options parameter, pass an object of the cs.ViewPro.TableOptions class that contains the table properties to set.

    Within the options object, the tableColumns collection determines the structure of the table's columns. The length of the tableColumns collection must be equal to the range column count:

    • When the column count in rangeObj exceeds the number of columns in tableColumns, the table is filled with additional empty columns.
    • When the column count in rangeObj is inferior to the number of tableColumns, the table displays a number of columns that match the range's column count.

    If you pass a source but no tableColumn option, the command generates columns automatically. In this case, rangeObj must be a cell range. Otherwise, the first cell of the range is used. When generating columns automatically, the following rules apply:

    • If the data passed to the command is a collection of objects, the property names are used as column titles. For example:
    ([{ LastName: \"Freehafer\", FirstName: \"Nancy\"},{ LastName: \"John\", FirstName: \"Doe\"})

    Here the titles of the columns would be LastName and FirstName.

    • If the data passed to the command is a collection of scalar values, it must contain a collection of subcollections:

      • The first-level collection contains subcollections of values. Each subcollection defines a row. Pass an empty collection to skip a row. The number of values in the first subcollection determines how many columns are created.
      • The subcollections' indices are used as column titles.
      • Each subcollection defines cell values for the row. Values can be Integer, Real, Boolean, Text, Date, Null, Time or Picture. A Time value must be an a object containing a time attribute, as described in VP SET VALUE.

    This only works when generating columns automatically. You cannot use a collection of scalar data with the tableColumns option.

    Example

    To create a table using a data context:

    // Set a data context
    var $data : Object

    $data:=New object()
    $data.people:=New collection()
    $data.people.push(New object("firstName"; "John"; "lastName"; "Smith"; "email"; "johnsmith@gmail.com"))
    $data.people.push(New object("firstName"; "Mary"; "lastName"; "Poppins"; "email"; "marypoppins@gmail.com"))


    VP SET DATA CONTEXT("ViewProArea"; $data)

    // Define the columns for the table
    var $options : cs.ViewPro.TableOptions

    $options:=cs.ViewPro.TableOptions.new()
    $options.tableColumns:=New collection()
    $options.tableColumns.push(cs.ViewPro.TableColumns.new("name"; "First name"; "dataField"; "firstName"))
    $options.tableColumns.push(cs.ViewPro.TableColumns.new("name"; "Last name"; "dataField"; "lastName"))
    $options.tableColumns.push(cs.ViewPro.TableColumns.new("name"; "Email"; "dataField"; "email"))

    // Create a table from the "people" collection
    VP CREATE TABLE(VP Cells("ViewProArea"; 1; 1; $options.tableColumns.length; 1); "ContextTable"; "people"; $options)

    Here's the result:

    See also

    VP Find table
    VP Get table column attributes
    VP Get table column index
    VP INSERT TABLE COLUMNS
    VP INSERT TABLE ROWS
    VP REMOVE TABLE
    VP RESIZE TABLE
    VP SET DATA CONTEXT
    VP SET TABLE COLUMN ATTRIBUTES
    VP SET TABLE THEME

    D

    VP DELETE COLUMNS

    VP DELETE COLUMNS ( rangeObj : Object )

    ParameterTypeDescription
    rangeObjObject->Range object

    Description

    The VP DELETE COLUMNS command removes the columns in the rangeObj.

    In rangeObj, pass an object containing a range of columns to remove. If the passed range contains:

    • both columns and rows, only the columns are removed.
    • only rows, the command does nothing.

    Columns are deleted from right to left.

    Example

    To delete columns selected by the user (in the image below columns B, C, and D):

    use the following code:

    VP DELETE COLUMNS(VP Get selection("ViewProArea"))

    See also

    VP All
    VP Cells
    VP Column

    VP DELETE ROWS

    VP DELETE ROWS ( rangeObj : Object )

    ParameterTypeDescription
    rangeObjObject->Range object

    Description

    The VP DELETE ROWS command removes the rows in the rangeObj.

    In rangeObj, pass an object containing a range of rows to remove. If the passed range contains:

    • both columns and rows, only the rows are removed.
    • only columns, the command does nothing.

    Rows are deleted from bottom to top.

    Example

    To delete rows selected by the user (in the image below rows 1, 2, and 3):

    use the following code:


    VP DELETE ROWS(VP Get selection("ViewProArea"))

    See also

    VP All
    VP Cells
    VP Column

    E

    VP EXPORT DOCUMENT

    History
    VersionChanges
    v20 R2Support of .sjs documents

    VP EXPORT DOCUMENT ( vpAreaName : Text ; filePath : Text {; paramObj : Object} )

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    filePathText->Pathname of the document
    paramObjObject->Export options

    Description

    The VP EXPORT DOCUMENT command exports the 4D View Pro object attached to the 4D View Pro area vpAreaName to a document on disk according to the filePath and paramObj parameters.

    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 filePath, pass the destination path and name of the document to be exported. If you don't specify a path, the document will be saved at the same level as the Project folder.

    You can specify the exported file's format by including an extension after the document's name:

    • 4D View Pro (".4vp")
    • Microsoft Excel (".xlsx")
    • PDF (".pdf")
    • CSV (".txt", or ".csv")
    • SpreadJS document (".sjs")

    If the extension is not included, but the format is specified in paramObj, the exported file will have the extension that corresponds to the format, except for the CSV format (no extension is added in this case).

    The optional paramObj parameter allows you to define multiple properties for the exported 4D View Pro object, as well as launch a callback method when the export has completed.

    PropertyTypeDescription
    formattext(optional) When present, designates the exported file format: ".4vp" (default), ".csv", ".xlsx", ".pdf", or ".sjs". You can use the following constants:
  • vk 4D View Pro format
  • vk csv format
  • vk MS Excel format
  • vk pdf format
  • vk sjs format
  • 4D adds the appropriate extension to the file name if needed. If the format specified doesn't correspond with the extension in filePath, it will be added to the end of filePath. If a format is not specified and no extension is provided in filePath, the default file format is used.
    passwordtextMicrosoft Excel only (optional) - Password used to protect the MS Excel document
    formula4D.FunctionCallback method to be launched when the export has completed. Using a callback method is necessary when the export is asynchronous (which is the case for PDF and Excel formats) if you need some code to be executed after the export. The callback method must be passed with the Formula command. See Passing a callback method (formula).
    valuesOnlybooleanSpecifies that only the values from formulas (if any) will be exported.
    includeFormatInfobooleanTrue to include formatting information, false otherwise (default is true). Formatting information is useful in some cases, e.g. for export to SVG. On the other hand, setting this property to false allows reducing export time.
    includeBindingSourceboolean4DVP and Microsoft Excel only. True (default) to export the current data context values as cell values in the exported document (data contexts themselves are not exported). False otherwise. Cell binding is always exported. For data context and cell binding management, see VP SET DATA CONTEXT and VP SET BINDING PATH.
    sheetnumberPDF only (optional) - Index of sheet to export (starting from 0). -2=all visible sheets (default), -1=current sheet only
    pdfOptionsobjectPDF only (optional) - Options for pdf export

    PropertyTypeDescription
    creatortextname of the application that created the original document from which it was converted.
    titletexttitle of the document.
    authortextname of the person who created that document.
    keywordstextkeywords associated with the document.
    subjecttextsubject of the document.

    csvOptionsobjectCSV only (optional) - Options for csv export

    PropertyTypeDescription
    rangeobjectRange object of cells
    rowDelimitertextRow delimiter. Default: "\r\n"
    columnDelimitertextColumn delimiter. Default: ","

    sjsOptionsobjectSJS only (optional) - Options for sjs export

    PropertyTypeDescription
    includeAutoMergedCellsbooleanwhether to include the automatically merged cells, default is false.
    includeBindingSourcebooleanwhether to include the binding source, default is true.
    includeCalcModelCachebooleanwhether to include the extra data of calculation. Can be faster when open the file with those data, default is false.
    includeEmptyRegionCellsbooleanwhether to include any empty cells (cells with no data or only style) outside the used data range, default is true.
    includeFormulasbooleanwhether to include the formulas, default is true.
    includeStylesbooleanwhether to include the style, default is true.
    includeUnusedNamesbooleanwhether to include the unused custom names, default is true.
    saveAsViewbooleanwhether to apply the format string to exporting values, default is false.

    customPropertyanyAny custom property that will be available through the $3 parameter in the callback method.

    Notes about Excel format:

    • When exporting a 4D View Pro document into a Microsoft Excel-formatted file, some settings may be lost. For example, 4D methods and formulas are not supported by Excel. You can verify other settings with this list from SpreadJS.
    • Exporting in this format is run asynchronously, use the formula property of the paramObj for code to be executed after the export.

    Notes about PDF format:

    • When exporting a 4D View Pro document in PDF, the fonts used in the document are automatically embedded in the PDF file. Only OpenType fonts (.OTF or .TTF files) having a Unicode map can be embedded. If no valid font file is found for a font, a default font is used instead.
    • Exporting in this format is run asynchronously, use the formula property of the paramObj for code to be executed after the export.

    Notes about CSV format:

    • When exporting a 4D View Pro document to CSV, some settings may be lost, as only the text and values are saved.
    • All the values are saved as double-quoted strings. For more information on delimiter-separated values, see this article on Wikipedia.
    • Exporting in this format is run asynchronously, use the formula property of the paramObj for code to be executed after the export.

    Notes about SpreadJS file format:

    • SpreadJS files are zipped files.
    • Exporting in this format is run asynchronously, use the formula property of the paramObj for code to be executed after the export.

    Once the export operation is finished, VP EXPORT DOCUMENT automatically triggers the execution of the method set in the formula property of the paramObj, if used.

    Passing a callback method (formula)

    When including the optional paramObj parameter, the command allows you to use the Formula command to call a 4D method which will be executed once the export has completed. The callback method will receive the following values in local parameters:

    ParameterTypeDescription
    param1textThe name of the 4D View Pro area object
    param2textThe filepath of the exported 4D View Pro object
    param3objectA reference to the command's paramObj
    param4objectAn object returned by the method with a status message
    .successbooleanTrue if export with success, False otherwise.
    .errorCodeintegerError code.
    .errorMessagetextError message.

    Example 1

    You want to export the contents of the "VPArea" area to a 4D View Pro document on disk:

    var $docPath: Text

    $docPath:="C:\\Bases\\ViewProDocs\\MyExport.4VP"
    VP EXPORT DOCUMENT("VPArea";$docPath)
    //MyExport.4VP is saved on your disk

    Example 2

    You want to export the current sheet in PDF:

    var $params: Object
    $params:=New object
    $params.format:=vk pdf format
    $params.sheet:=-1
    $params.pdfOptions:=New object("title";"Annual Report";"author";Current user)
    VP EXPORT DOCUMENT("VPArea";"report.pdf";$params)

    Example 3

    You want to export a 4D View Pro document in ".xlsx" format and call a method that will launch Microsoft Excel with the document open once the export has completed:

     $params:=New object
    $params.formula:=Formula(AfterExport)
    $params.format:=vp MS Excel format //".xlsx"
    $params.valuesOnly:=True

    VP EXPORT DOCUMENT("ViewProArea";"c:\\tmp\\convertedfile";$params)

    AfterExport method:

     #DECLARE($areaName : Text ; $filePath : Text ; $params : Object ; $status : Object )

    If($status.success=False)
    ALERT($status.errorMessage)
    Else
    LAUNCH EXTERNAL PROCESS("C:\\Program Files\\Microsoft Office\\Office15\\excel "+$filePath)
    End if

    Example 4

    You want to export the current sheet to a .txt file with pipe-separated values:

    example-export-csv

    var $params : Object
    $params:=New object
    $params.range:=VP Cells("ViewProArea";0;0;2;5)
    $params.rowDelimiter:="\n"
    $params.columnDelimiter:="|"
    VP EXPORT DOCUMENT("ViewProArea";"c:\\tmp\\data.txt";New object("format";vk csv format;"csvOptions";$params))

    Here's the result:

    example-export-csv

    See also

    VP Convert to picture
    VP Export to object
    VP Column
    VP Print

    VP EXPORT TO BLOB

    VP EXPORT TO BLOB ( vpAreaName : Text ; paramObj : Object )

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    paramObjObject->Export options

    Description

    The VP EXPORT TO BLOB command exports the vpAreaName 4D View Pro document in a 4D.Blob according to the paramObj options. The exported blob is available through the export callback. Exporting and importing 4D View Pro areas as blobs is fast and memory-efficient.

    In paramObj, you can pass several properties:

    PropertyTypeDescription
    formula4D.Function(mandatory) Callback method to be launched when the export has completed. See Passing a callback method (formula).
    includeAutoMergedCellsBooleanWhether to include the automatically merged cells when saving, default=false.
    includeBindingSourceBooleanWhether to include the binding source when saving, default=true.
    includeCalcModelCacheBooleanWhether to include the extra data of calculation. Can impact the speed of opening the file, default=false.
    includeEmptyRegionCellsBooleanWhether to include any empty cells(cells with no data or only style) outside the used data range, default=true
    includeFormulasBooleanWhether to include the formula when saving, default=true.
    includeStylesBooleanWhether to include the style when saving, default=true.
    includeUnusedNamesBooleanWhether to include the unused custom name when saving, default=true.

    |saveAsView|Boolean|Whether to apply the format string to exporting value when saving, default=false.|

    The following parameters can be used in the callback method:

    ParameterTypeDescription
    param1textThe name of the 4D View Pro object
    param24D.blobThe exported blob
    param3objectA reference to the command's paramObj parameter
    param4objectAn object returned by the method with a status message
    .successbooleanTrue if export with success, False otherwise.
    .errorCodeintegerError code.
    .errorMessagetextError message.

    Example

    The command VP EXPORT TO BLOB is asynchronous. You must create a callback method (named VPBlobCallback in our example) to use the export results.

    //Export the VP document
    VP EXPORT TO BLOB("ViewProArea"; {formula: Formula(VPBlobCallback)})
    //VPBlobCallback method
    #DECLARE($area : Text; $data : 4D.Blob; $parameters : Object; $status : Object)
    var $myEntity : cs.myTableEntity

    If ($status.success)
    // Save the document in a table
    $myEntity:=ds.myTable.new()
    $myEntity.blob:=$data
    $myEntity.save()
    End if

    See also

    VP IMPORT FROM BLOB

    VP Export to object

    VP Export to object ( vpAreaName : Text {; options : Object} ) : Object

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    optionsObject->Export options
    ResultObject<-4D View Pro object

    Description

    The VP Export to object command returns the 4D View Pro object attached to the 4D View Pro area vpAreaName. You can use this command for example to store the 4D View Pro area in a 4D database object field.

    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 the options parameter, you can pass the following export options, if required:

    PropertyTypeDescription
    includeFormatInfoBooleanTrue (default) to include formatting information, false otherwise. Formatting information is useful in some cases, e.g. for export to SVG. On the other hand, setting this property to False allows reducing export time.
    includeBindingSourceBooleanTrue (default) to export the current data context values as cell values in the exported object (data contexts themselves are not exported). False otherwise. Cell binding is always exported.

    For more information on 4D View Pro objects, please refer to the 4D View Pro object paragraph.

    Example 1

    You want to get the "version" property of the current 4D View Pro area:

    var $vpAreaObj : Object
    var $vpVersion : Number
    $vpAreaObj:=VP Export to object("vpArea")
    // $vpVersion:=OB Get($vpAreaObj;"version")
    $vpVersion:=$vpAreaObj.version

    Example 2

    You want to export the area, excluding formatting information:

    var $vpObj : Object
    $vpObj:=VP Export to object("vpArea";New object("includeFormatInfo";False))

    See also

    VP Convert to picture
    VP EXPORT DOCUMENT
    VP IMPORT FROM OBJECT

    F

    VP Find

    VP Find ( rangeObj : Object ; searchValue : Text ) : Object
    VP Find ( rangeObj : Object ; searchValue : Text ; searchCondition : Object } ) : Object
    VP Find ( rangeObj : Object ; searchValue : Text ; searchCondition : Object ; replaceValue : Text ) : Object

    ParameterTypeDescription
    rangeObjObject->Range object
    searchValueText->Search value
    searchConditionObject->Object containing search condition(s)
    replaceValueText->Replacement value
    ResultObject<-Range object

    Description

    The VP Find command searches the rangeObj for the searchValue. Optional parameters can be used to refine the search and/or replace any results found.

    In the rangeObj parameter, pass an object containing a range to search.

    The searchValue parameter lets you pass the text to search for within the rangeObj.

    You can pass the optional searchCondition parameter to specify how the search is performed. The following properties are supported:

    PropertyTypeDescription
    afterColumnIntegerThe number of the column just before the starting column of the search. If the rangeObj is a combined range, the column number given must be from the first range. Default value: -1 (beginning of the rangeObj)
    afterRowIntegerThe number of the row just before the starting row of the search. If the rangeObj is a combined range, the row number given must be from the first range. Default value: -1 (beginning of the rangeObj)
    allBoolean
  • True - All cells in rangeObj corresponding to searchValue are returned
  • False - (default value) Only the first cell in rangeObj corresponding to searchValue is returned
  • flagsInteger
    vk find flag exact matchThe entire content of the cell must completely match the search value
    vk find flag ignore caseCapital and lower-case letters are considered the same. Ex: "a" is the same as "A".
    vk find flag noneno search flags are considered (default)
    vk find flag use wild cardsWildcard characters (*,?) can be used in the search string. Wildcard characters can be used in any string comparison to match any number of characters:
  • * for zero or multiple characters (for example, searching for "bl*" can find "bl", "black", or "blob")
  • ? for a single character (for example, searching for "h?t" can find "hot", or "hit"
  • These flags can be combined. For example: $search.flags:=vk find flag use wild cards+vk find flag ignore case
    orderInteger
    vk find order by columnsThe search is performed by columns. Each row of a column is searched before the search continues to the next column.
    vk find order by rowsThe search is performed by rows. Each column of a row is searched before the search continues to the next row (default)
    targetInteger
    vk find target formulaThe search is performed in the cell formula
    vk find target tagThe search is performed in the cell tag
    vk find target textThe search is performed in the cell text (default)

    These flags can be combined. For example:$search.target:=vk find target formula+vk find target text

    In the optional replaceValue parameter, you can pass text to take the place of any instance of the text in searchValue found in the rangeObj.

    Returned Object

    The function returns a range object describing each search value that was found or replaced. An empty range object is returned if no results are found.

    Example 1

    To find the first cell containing the word "Total":

    var $range;$result : Object

    $range:=VP All("ViewProArea")

    $result:=VP Find($range;"Total")

    Example 2

    To find "Total" and replace it with "Grand Total":

    var $range;$condition;$result : Object

    $range:=VP All("ViewProArea")

    $condition:=New object
    $condition.target:=vk find target text
    $condition.all:=True //Search entire document
    $condition.flags:=vk find flag exact match

    // Replace the cells containing only 'Total' in the current sheet with "Grand Total"



    $result:=VP Find($range;"Total";$condition;"Grand Total")

    // Check for empty range object
    If($result.ranges.length=0)
    ALERT("No result found")
    Else
    ALERT($result.ranges.length+" results found")
    End if

    VP Find table

    History
    VersionChanges
    v19 R7Added

    VP Find table ( rangeObj : Object ) : Text

    ParameterTypeDescription
    rangeObjObject->Cell range
    ResultText<-Table name

    Description

    The VP Find table command returns the name of the table to which to the rangeObj cell belongs.

    In rangeObj, pass a cell range object. If the designated cells do not belong to a table, the command returns an empty string.

    If rangeObj is not a cell range or contains multiple ranges, the first cell of the first range is used.

    Example

    If (FORM Event.code=On After Edit && FORM Event.action="valueChanged")
    $tableName:=VP Find table(FORM Event.range)
    If ($tableName#"")
    ALERT("The "+$tableName+" table has been modified.")
    End if
    End if

    See also

    VP Get table range

    VP FLUSH COMMANDS

    VP FLUSH COMMANDS ( vpAreaName : Text )

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name

    Description

    The VP FLUSH COMMANDS command immediately executes stored commands and clears the command buffer.

    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 order to increase performance and reduce the number of requests sent, the 4D View Pro commands called by the developer are stored in a command buffer. When called, VP FLUSH COMMANDS executes the commands as a batch when leaving the method and empties the contents of the command buffer.

    Example

    You want to trace the execution of the commands and empty the command buffer:


    VP SET TEXT VALUE(VP Cell("ViewProArea1";10;1);"INVOICE")
    VP SET TEXT VALUE(VP Cell("ViewProArea1";10;2);"Invoice date: ")
    VP SET TEXT VALUE(VP Cell("ViewProArea1";10;3);"Due date: ")

    VP FLUSH COMMANDS(("ViewProArea1")
    TRACE

    VP Font to object

    VP Font to object ( font : Text ) : Object

    ParameterTypeDescription
    fontText->Font shorthand string
    ResultObject<-Font object

    Description

    The VP Font to object utility command returns an object from a font shorthand string. This object can then be used to set or get font property settings via object notation.

    In the font parameter, pass a font shorthand string to specify the different properties of a font (e.g., "12 pt Arial"). You can learn more about font shorthand strings in this page for example.

    The returned object contains defined font attributes as properties. For more information about the available properties, see the VP Object to font command.

    Example 1

    This code:

    $font:=VP Font to object("16pt arial")

    will return the following $font object:

    {

    family:arial
    size:16pt
    }

    Example 2

    See example for VP Object to font.

    See also

    4D View Pro Style Objects and Style Sheets
    VP Object to font
    VP SET CELL STYLE
    VP SET DEFAULT STYLE

    G

    VP Get active cell

    VP Get active cell ( vpAreaName : Text { ; sheet : Integer } ) : Object

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    sheetInteger->Sheet index (current sheet if omitted)
    ResultObject<-Range object of single cell

    Description

    The VP Get active cell command returns a new range object referencing the cell which has the focus and where new data will be entered (the active cell).

    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 the optional sheet parameter, you can designate a specific spreadsheet where the range will be defined (counting begins at 0). If omitted or if you pass vk current sheet, the current spreadsheet is used.

    Example

    The following code will retrieve the coordinates of the active cell:

    $activeCell:=VP Get active cell("myVPArea")

    //returns a range object containing:
    //$activeCell.ranges[0].column=3
    //$activeCell.ranges[0].row=4
    //$activeCell.ranges[0].sheet=0

    See also

    VP ADD SELECTION
    VP Get selection
    VP RESET SELECTION
    VP SET ACTIVE CELL
    VP SET SELECTION
    VP SHOW CELL

    VP Get binding path

    History
    VersionChanges
    v19 R5Added

    VP Get binding path ( rangeObj : Object ) : Text

    ParameterTypeDescription
    rangeObjObject->Range object
    ResultText<-Name of the attribute bound to the cell

    Description

    The VP Get binding path command returns the name of the attribute bound to the cell specified in rangeObj.

    In rangeObj, pass an object that is either a cell range or a combined range of cells. Note that:

    • If rangeObj is a range with several cells, the command returns the attribute name linked to the first cell in the range.
    • If rangeObj contains several ranges of cells, the command returns the attribute name linked to the first cell of the first range.

    Example

    var $p; $options : Object
    var $myAttribute : Text

    $p:=New object
    $p.firstName:="Freehafer"
    $p.lastName:="Nancy"

    VP SET DATA CONTEXT("ViewProArea"; $p)

    VP SET BINDING PATH(VP Cell("ViewProArea"; 0; 0); "firstName")
    VP SET BINDING PATH(VP Cell("ViewProArea"; 1; 0); "lastName")

    $myAttribute:=VP Get binding path(VP Cell("ViewProArea"; 1; 0)) // "lastName"

    See also

    VP SET BINDING PATH
    VP Get data context
    VP SET DATA CONTEXT

    VP Get cell style

    VP Get cell style ( rangeObj : Object ) : Object

    ParameterTypeDescription
    rangeObjObject->Range object
    ResultObject<-Style object

    Description

    The VP Get cell style command returns a style object for the first cell in the rangeObj.

    In rangeObj, pass a range containing the style to retrieve.

    • If rangeObj contains a cell range, the cell style is returned.
    • If rangeObj contains a range that is not a cell range, the style of the first cell in the range is returned.
    • If rangeObj contains several ranges, only the style of the first cell in the first range is returned.

    Example

    To get the details about the style in the selected cell (B2):

    This code:

    $cellStyle:=VP Get cell style(VP Get selection("myDoc"))

    ... will return this object:

    {
    "backColor":"Azure",
    "borderBottom":
    {
    "color":#800080,
    "style":5
    }
    "font":"8pt Arial",
    "foreColor":"red",
    "hAlign":1,
    "isVerticalText":"true",
    "vAlign":0
    }

    See also

    VP GET DEFAULT STYLE
    VP SET CELL STYLE

    VP Get column attributes

    VP Get column attributes ( rangeObj : Object ) : Collection

    ParameterTypeDescription
    rangeObjObject->Range object
    ResultCollection<-Collection of column properties

    Description

    The VP Get column attributes command returns a collection of properties for any column in the rangeObj.

    In rangeObj, pass an object containing a range of the columns whose attributes will be retrieved.

    The returned collection contains any properties for the columns, whether or not they have been set by the VP SET COLUMN ATTRIBUTES command.

    Example

    The following code:

    C_OBJECT($range)
    C_COLLECTION($attr)

    $range:=VP Column("ViewProArea";1;2)
    $attr:=VP Get column attributes($range)

    ... will return a collection of the attributes within the given range:

    See also

    VP Get row attributes
    VP SET COLUMN ATTRIBUTES
    VP SET ROW ATTRIBUTES

    VP Get column count

    VP Get column count ( vpAreaName : Text { ; sheet : Integer } ) : Integer

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area from object name
    sheetInteger->Sheet index (current sheet if omitted)
    ResultInteger<-Total number of columns

    Description

    The VP Get column count command returns the total number of columns from the designated sheet.

    In vpAreaName, pass the name property of the 4D View Pro area. If you pass a name that does not exist, an error is returned.

    You can define where to get the column count in the optional sheet parameter using the sheet index (counting begins at 0). If omitted or if you pass vk current sheet, the current spreadsheet is used.

    Example

    The following code returns the number of columns in the 4D View Pro area:

    C_INTEGER($colCount)
    $colCount:=VP Get column count("ViewProarea")

    See also

    VP Get row count
    VP SET COLUMN COUNT
    VP SET ROW COUNT

    VP Get current sheet

    VP Get current sheet ( vpAreaName : Text )

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    Function resultInteger<-Index of the current sheet

    Description

    The VP Get current sheet command returns the index of the current sheet in vpAreaName. The current sheet is the selected sheet in the document.

    In vpAreaName, pass the name of the 4D View Pro area.

    Indexing starts at 0.

    Example

    When the third sheet is selected:

    third-sheet

    The command returns 2:

    $index:=VP Get current sheet("ViewProArea")

    See also

    VP SET CURRENT SHEET

    VP Get data context

    History
    VersionChanges
    v19 R5Added

    VP Get data context ( vpAreaName : Text {; sheet : Integer } ) : Object
    VP Get data context ( vpAreaName : Text {; sheet : Integer } ) : Collection

    ParameterTypeDescription
    vpAreaNameObject->4D View Pro area form object name
    sheetInteger->Index of the sheet to get the data context from
    ResultObject | Collection<-Data context

    Description

    The VP Get data context command returns the current data context of a worksheet. The returned context includes any modifications made to the contents of the data context.

    In sheet, pass the index of the sheet to get the data context from. If no index is passed, the command returns the data context of the current worksheet. If there is no context for the worksheet, the command returns Null.

    The function returns an object or a collection depending on the type of data context set with VP SET DATA CONTEXT.

    Example

    To get the data context bound to the following cells:

    var $dataContext : Object

    $dataContext:=VP Get data context("ViewProArea") // {firstName:Freehafer,lastName:Nancy}

    See also

    VP SET DATA CONTEXT
    VP Get binding path
    VP SET BINDING PATH

    VP Get default style

    VP Get default style ( vpAreaName : Text { ; sheet : Integer } ) : Object

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area from object name
    sheetInteger->Sheet index (current sheet if omitted)
    ResultObject<-Default style settings

    Description

    The VP Get default style command returns a default style object for a sheet. The returned object contains basic document rendering properties as well as the default style settings (if any) previously set by the VP SET DEFAULT STYLE method. For more information about style properties, see Style Objects & Style Sheets.

    In vpAreaName, pass the name property of the 4D View Pro area. If you pass a name that does not exist, an error is returned.

    You can define where to get the column count in the optional sheet parameter using the sheet index (counting begins at 0). If omitted or if you pass vk current sheet, the current spreadsheet is used.

    Example

    To get the details about the default style for this document:

    This code:

    $defaultStyle:=VP Get default style("myDoc")

    will return this information in the $defaultStyle object:

    {
    backColor:#E6E6FA,
    hAlign:0,
    vAlign:0,
    font:12pt papyrus
    }

    See also

    VP Get cell style
    VP SET DEFAULT STYLE

    VP Get formula

    VP Get formula ( rangeObj : Object) : Text

    ParameterTypeDescription
    rangeObjObject->Range object
    ResultText<-Formula

    Description

    The VP Get formula command retrieves the formula from a designated cell range.

    In rangeObj, pass a range whose formula you want to retrieve. If rangeObj designates multiple cells or multiple ranges, the formula of the first cell is returned. If rangeObj is a cell that does not contain a formula, the method returns an empty string.

    Example

      //set a formula
    VP SET FORMULA(VP Cell("ViewProArea";5;2);"SUM($A$1:$C$10)")

    $result:=VP Get formula(VP Cell("ViewProArea";5;2)) // $result="SUM($A$1:$C$10)"

    See also

    VP Get formulas
    VP SET FORMULA
    VP SET ROW COUNT

    VP Get formula by name

    VP Get formula by name ( vpAreaName : Text ; name : Text { ; scope : Number } ) : Object

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    nameText->Name of the named range
    scopeNumber->Target scope (default=current sheet)
    ResultObject<-Named formula or named range definition

    Description

    The VP Get formula by name command returns the formula and comment corresponding to the named range or named formula passed in the name parameter, or null if it does not exist in the defined scope.

    In vpAreaName, pass the name of the 4D View Pro area. If you pass a name that does not exist, an error is returned.

    Pass the named range or named formula that you want to get in name. Note that named ranges are returned as formulas containing absolute cell references.

    You can define where to get the formula in scope using either the sheet index (counting begins at 0) or the following constants:

    • vk current sheet
    • vk workbook
    Returned Object

    The returned object contains the following properties:

    PropertyTypeDescription
    formulaTextText of the formula corresponding to the named formula or named range. For named ranges, the formula is a sequence of absolute coordinates.
    commentTextComment corresponding to the named formula or named range

    Example

    $range:=VP Cell("ViewProArea";0;0)
    VP ADD RANGE NAME("Total1";$range)

    $formula:=VP Get formula by name("ViewProArea";"Total1")
    //$formula.formula=Sheet1!$A$1

    $formula:=VP Get formula by name("ViewProArea";"Total")
    //$formula=null (if not existing)

    See also

    VP ADD FORMULA NAME
    VP Get names

    VP Get formulas

    VP Get formulas ( rangeObj : Object ) : Collection

    ParameterTypeDescription
    rangeObjObject->Range object
    ResultCollection<-Collection of formula values

    Description

    The VP Get formulas command retrieves the formulas from a designated rangeObj.

    In rangeObj, pass a range whose formulas you want to retrieve. If rangeObj designates multiple ranges, the formula of the first range is returned. If rangeObj does not contain any formulas, the command returns an empty string.

    The returned collection is two-dimensional:

    • The first-level collection contains subcollections of formulas. Each subcollection reprensents a row.
    • Each subcollection defines cell values for the row. Values are text elements containing the cell formulas.

    Example

    You want to retrieve the formulas in the Sum and Average columns from this document:

    You can use this code:

    $formulas:=VP Get formulas(VP Cells("ViewProArea";5;1;2;3))
    //$formulas[0]=[Sum(B2:D2),Average(B2:D2)]
    //$formulas[1]=[Sum(B3:D3),Average(B3:D3)]
    //$formulas[2]=[Sum(B4:D4),Average(C4:D4)]

    See also

    VP Get formula
    VP Get values
    VP SET FORMULAS
    VP SET VALUES

    VP Get frozen panes

    VP Get frozen panes ( vpAreaName : Text { ; sheet : Integer } ) : Object

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    sheetInteger->Sheet index (current sheet if omitted)
    ResultObject<-Object containing frozen column and row information

    Description

    The VP Get frozen panes command returns an object with information about the frozen columns and rows in vpAreaName.

    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 the optional sheet parameter, you can designate a specific spreadsheet where the range will be defined (counting begins at 0). If omitted or if you pass vk current sheet, the current spreadsheet is used.

    Returned object

    The command returns an object describing the frozen columns and rows. This object can contain the following properties:

    PropertyTypeDescription
    columnCountIntegerThe number of frozen columns on the left of the sheet
    trailingColumnCountIntegerThe number of frozen columns on the right of the sheet
    rowCountIntegerThe number of frozen rows on the top of the sheet
    trailingRowCountIntegerThe number of frozen rows on the bottom of the sheet

    Example

    You want to retrieve information about the number of frozen columns and rows:

    var $panesObj : Object


    $panesObj:=VP Get frozen panes("ViewProArea")

    The returned object contains, for example:

    See also

    VP SET FROZEN PANES

    VP Get names

    VP Get names ( vpAreaName : Text { ; scope : Number } ) : Collection

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    scopeNumber->Target scope (default= current sheet)
    ResultCollection<-Existing names in the defined scope

    Description

    The VP Get names command returns a collection of all defined "names" in the current sheet or in the scope designated by the scope parameter.

    In vpAreaName, pass the name of the 4D View Pro area. If you pass a name that does not exist, an error is returned.

    You can define where to get the names in scope using either the sheet index (counting begins at 0) or the following constants:

    • vk current sheet
    • vk workbook
    Returned collection

    The returned collection contains one object per name. The following object properties can be returned:

    PropertyTypeDescription
    result[ ].nameTextcell or range name
    result[ ].formulaTextformula
    result[ ].commentTextComment associated to the name

    Available properties depend on the type of the named element (named cell, named range, or named formula).

    Example

    var $list : Collection


    $list:=VP Get names("ViewProArea";2) //names in 3rd sheet

    See also

    VP ADD FORMULA NAME
    VP ADD RANGE NAME
    VP Get formula by name
    VP Name

    VP Get print info

    VP Get print info ( vpAreaName : Text { ; sheet : Integer } ) : Object

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    sheetInteger->Sheet index (current sheet if omitted)
    ResultObject<-Object of printing information

    Description

    The VP Get print info command returns an object containing the print attributes of the vpAreaName.

    Pass the the name of the 4D View Pro area in vpAreaName. If you pass a name that does not exist, an error is returned.

    In the optional sheet parameter, you can designate a specific spreadsheet (counting begins at 0) whose printing attributes you want returned. If omitted or if you pass vk current sheet, the current spreadsheet is used.

    Example

    This code:

    $pinfo:=VP Get print info("ViewProArea")

    ... returns the print attributes of the 4D View Pro area set in the VP SET PRINT INFO command:

    {
    bestFitColumns:false,
    bestFitRows:false,
    blackAndWhite:false,
    centering:0,
    columnEnd:8,
    columnStart:0,
    firstPageNumber:1,
    fitPagesTall:1,
    fitPagesWide:1,
    footerCenter:"&BS.H.I.E.L.D. &A Sales Per Region",
    footerCenterImage:,
    footerLeft:,
    footerLeftImage:,
    footerRight:"page &P of &N",
    footerRightImage:,
    headerCenter:,
    headerCenterImage:,
    headerLeft:"&G",
    headerLeftImage:logo.png,
    headerRight:,
    headerRightImage:,
    margin:{top:75,bottom:75,left:70,right:70,header:30,footer:30},
    orientation:2,
    pageOrder:0,
    pageRange:,
    paperSize:{width:850,height:1100,kind:1},
    qualityFactor:2,
    repeatColumnEnd:-1,
    repeatColumnStart:-1,
    repeatRowEnd:-1,
    repeatRowStart:-1,
    rowEnd:24,
    rowStart:0,
    showBorder:false,
    showColumnHeader:0,
    showGridLine:false,
    showRowHeader:0,
    useMax:true,
    watermark:[],
    zoomFactor:1
    }

    See also

    4D View Pro Print Attributes
    VP SET PRINT INFO

    VP Get row attributes

    VP Get row attributes ( rangeObj : Object ) : Collection

    ParameterTypeDescription
    rangeObjObject->Range object
    ResultCollection<-Collection of row properties

    Description

    The VP Get row attributes command returns a collection of properties for any row in the rangeObj.

    In rangeObj, pass an object containing a range of the rows whose attributes will be retrieved.

    The returned collection contains any properties for the rows, whether or not they have been set by the VP SET ROW ATTRIBUTES method.

    Example

    The following code returns a collection of the attributes within the given range:

    var $range : Object
    var $attr : Collection

    $range:=VP Column("ViewProArea";1;2)
    $attr:=VP Get row attributes($range)

    See also

    VP Get column attributes
    VP SET COLUMN ATTRIBUTES
    VP SET ROW ATTRIBUTES

    VP Get row count

    VP Get row count ( vpAreaName : Text {; sheet : Integer } ) : Integer

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area from object name
    sheetInteger->Sheet index (current sheet if omitted)
    ResultInteger<-Total number of rows

    Description

    The VP Get row count command returns the total number of rows from the designated sheet.

    In vpAreaName, pass the name property of the 4D View Pro area. If you pass a name that does not exist, an error is returned.

    You can define where to get the row count in the optional sheet parameter using the sheet index (counting begins at 0). If omitted or if you pass vk current sheet, the current spreadsheet is used.

    Example

    The following code returns the number of rows in the 4D View Pro area:

    var $rowCount : Integer
    $rowCount:=VP Get row count("ViewProarea")

    See also

    VP Get column count
    VP SET COLUMN COUNT
    VP SET ROW COUNT

    VP Get selection

    VP Get selection ( vpAreaName : Text {; sheet : Integer } ) ) : Object

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area from object name
    sheetInteger->Sheet index (current sheet if omitted)
    ResultObject<-Range object of cells

    Description

    The VP Get selection command returns a new range object referencing the current selected cells.

    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 the optional sheet parameter, you can designate a specific spreadsheet where the range will be defined (counting begins at 0). If omitted or if you pass vk current sheet, the current spreadsheet is used.

    Example

    The following code will retrieve the coordinates of all the cells in the current selection:

    $currentSelection:=VP Get selection("myVPArea")


    //returns a range object containing:
    //$currentSelection.ranges[0].column=5
    //$currentSelection.ranges[0].columnCount=2
    //$currentSelection.ranges[0].row=8
    //$currentSelection.ranges[0].rowCount=6

    See also

    VP ADD SELECTION
    VP Get active cell
    VP SET ACTIVE CELL
    VP SET SELECTION
    VP SHOW CELL

    VP Get sheet count

    VP Get sheet count ( vpAreaName : Text ) : Integer

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    Function resultInteger<-Number of sheets

    Description

    The VP Get sheet count command returns the number of sheets in the document loaded in vpAreaName.

    In vpAreaName, pass the name of the 4D View Pro area.

    Example

    In the following document:

    Get the sheet count and set the current sheet to the last sheet:

     $count:=VP Get sheet count("ViewProArea")
    //set the current sheet to the last sheet (indexing starts at 0)
    VP SET CURRENT SHEET("ViewProArea";$count-1)

    See also

    VP Get sheet index
    VP SET SHEET COUNT

    VP Get sheet index

    VP Get sheet index ( vpAreaName : Text ; name : Text ) : Integer

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    nameText->Sheet name
    Function resultInteger<-Sheet index

    Description

    The VP Get sheet index command returns the index of a sheet based on its name in vpAreaName.

    In vpAreaName, pass the name of the 4D View Pro area.

    In name, pass the name of the sheet whose index will be returned. If no sheet named name is found in the document, the method returns -1.

    Indexing starts at 0.

    Example

    In the following document:

    Get the index of the sheet called "Total first quarter":

    $index:=VP Get sheet index("ViewProArea";"Total first quarter") //returns 2

    See also

    VP Get sheet count
    VP Get sheet name

    VP Get sheet name

    VP Get sheet name ( vpAreaName : Text ; sheet : Integer ) : Text

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    sheetInteger->Sheet index
    Function resultText<-Sheet name

    Description

    The VP Get sheet name command returns the name of a sheet based on its index in vpAreaName.

    In vpAreaName, pass the name of the 4D View Pro area.

    In sheet, pass the index of the sheet whose name will be returned.

    If the passed sheet index does not exist, the method returns an empty name.

    Indexing starts at 0.

    Example

    Get the name of the third sheet in the document:

    $sheetName:=VP Get sheet name("ViewProArea";2)

    See also

    VP Get sheet index

    VP Get sheet options

    VP Get sheet options ( vpAreaName : Text {; sheet : Integer } ) ) : Object

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area from object name
    sheetInteger->Sheet index (current sheet if omitted)
    ResultObject<-Sheet options object

    Description

    The VP Get sheet options command returns an object containing the current sheet options of the vpAreaName area.

    Pass the name of the 4D View Pro area in vpAreaName. If you pass a name that does not exist, an error is returned.

    In the optional sheet parameter, you can designate a specific spreadsheet (counting begins at 0). If omitted or if you pass vk current sheet, the current spreadsheet is used.

    Returned object

    The method returns an object containing the current values for all available sheet options. An option value may have been modified by the user or by the VP SET SHEET OPTIONS method.

    To view the full list of the options, see Sheet Options.

    Example

    $options:=VP Get sheet options("ViewProArea")
    If($options.colHeaderVisible) //column headers are visible
    ... //do something
    End if

    See also

    4D VIEW PRO SHEET OPTIONS
    VP SET SHEET OPTIONS

    VP Get show print lines

    VP Get show print lines ( vpAreaName : Text {; sheet : Integer } ) : Boolean

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    sheetInteger<-Sheet index
    Function resultBoolean<-True if print lines are visible, False otherwise

    Description

    The VP Get show print lines command returns True if the print preview lines are visible and False if they are hidden.

    In vpAreaName, pass the name of the 4D View Pro area.

    In sheet, pass the index of the target sheet. If sheet is omitted, the command applies to the current sheet.

    Indexing starts at 0.

    Example

    The following code checks if preview lines are displayed or hidden in the document:

     var $result : Boolean
    $result:=VP Get show print lines("ViewProArea";1)

    See also

    VP SET SHOW PRINT LINES

    VP Get spans

    VP Get spans ( rangeObj : Object ) : Object

    ParameterTypeDescription
    rangeObjObject->Range object
    ResultObject<-Object of cell spans in the defined range

    Description

    The VP Get spans command retrieves the cell spans in the designated rangeObj.

    In rangeObj, pass a range of cell spans you want to retrieve. If rangeObj does not contain a cell span, an empty range is returned.

    Example

    You want to center the text for the spanned cells in this document:

    // Search for all cell spans 
    $range:=VP Get spans(VP All("ViewProArea"))

    //center text
    $style:=New object("vAlign";vk vertical align center;"hAlign";vk horizontal align center)
    VP SET CELL STYLE($range;$style)

    See also

    VP ADD SPAN
    VP REMOVE SPAN

    VP Get stylesheet

    VP Get stylesheet ( vpAreaName : Text ; styleName : Text { ; sheet : Integer } ) : Object

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    styleNameText->Name of style
    sheetInteger->Sheet index (current sheet if omitted)
    ResultObject<-Style sheet object

    Description

    The VP Get stylesheet command returns the styleName style sheet object containing the property values which have been defined.

    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 styleName, pass the name of the style sheet to get.

    You can define where to get the style sheet in the optional sheet parameter using the sheet index (counting begins at 0) or with the following constants:

    • vk current sheet
    • vk workbook

    Example

    The following code:

    $style:=VP Get stylesheet("ViewProArea";"GreenDashDotStyle")

    ... will return the GreenDashDotStyle style object from the current sheet:

    {
    backColor:green,
    borderBottom:{color:green,style:10},
    borderLeft:{color:green,style:10},
    borderRight:{color:green,style:10},
    borderTop:{color:green,style:10}
    }

    See also

    4D View Pro Style Objects and Style Sheets
    VP ADD STYLESHEET
    VP Get stylesheets
    VP REMOVE STYLESHEET

    VP Get stylesheets

    VP Get stylesheets ( vpAreaName : Text { ; sheet : Integer } ) : Collection

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    sheetInteger->Target scope (default = current sheet)
    ResultCollection<-Collection of style sheet objects

    Description

    The VP Get stylesheets command returns the collection of defined style sheet objects from the designated sheet.

    In vpAreaName, pass the name property of the 4D View Pro area. If you pass a name that does not exist, an error is returned.

    You can define where to get the style sheets in the optional sheet parameter using the sheet index (counting begins at 0) or with the following constants:

    • vk current sheet
    • vk workbook

    Example

    The following code will return a collection of all the style objects in the current sheet:

    $styles:=VP Get stylesheets("ViewProArea")

    In this case, the current sheet uses two style objects:

    [
    {
    backColor:green,
    borderLeft:{color:green,style:10},
    borderTop:{color:green,style:10},
    borderRight:{color:green,style:10},
    borderBottom:{color:green,style:10},
    name:GreenDashDotStyle
    },
    {
    backColor:red,
    textIndent:10,
    name:RedIndent
    }
    ]

    See also

    VP ADD STYLESHEET
    VP Get stylesheet
    VP REMOVE STYLESHEET

    VP Get table column attributes

    History
    VersionChanges
    v19 R7Added

    VP Get table column attributes ( vpAreaName : Text ; tableName : Text ; column : Integer {; sheet : Integer } ) : Object

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    tableNameText->Table name
    columnInteger->Index of the column in the table
    sheetInteger->Sheet index (current sheet if omitted)
    ResultObject<-Attributes of the column

    Description

    The VP Get table column attributes command returns the current attributes of the specified column in the tableName.

    In vpAreaName, pass the name of the 4D View Pro area.

    In sheet, pass the index of the target sheet. If no index is specified or if you pass -1, the command applies to the current sheet.

    Indexing starts at 0.

    The command returns an object describing the current attributes of the column:

    PropertyTypeDescription
    dataFieldtextTable column's property name in the data context. Not returned if the table is displayed automatically
    nametextTable column's name.
    footerTexttextColumn footer value.
    footerFormulatextColumn footer formula.
    filterButtonVisiblebooleanTrue if the table column's filter button is displayed, False otherwise.

    If tableName is not found or if column index is higher than the number of columns, the command returns null.

    Example

    var $attributes : Object
    $attributes:=VP Get table column attributes("ViewProArea"; $tableName; 1)
    If ($attributes.dataField#"")
    ...
    End if

    See also

    VP CREATE TABLE
    VP Find table
    VP SET TABLE COLUMN ATTRIBUTES
    VP RESIZE TABLE

    VP Get table column index

    History
    VersionChanges
    v19 R7Added

    VP Get table column index ( vpAreaName : Text ; tableName : Text ; columnName : Text {; sheet : Integer } ) : Integer

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    tableNameText->Table name
    columnNameText->Name of the table column
    sheetInteger->Sheet index (current sheet if omitted)
    ResultInteger<-Index of columnName

    Description

    The VP Get table column index command returns the index of the columnName in the tableName.

    In vpAreaName, pass the name of the 4D View Pro area.

    In columnName, pass the name of the table column for which you want to get the index.

    In sheet, pass the index of the target sheet. If no index is specified or if you pass -1, the command applies to the current sheet.

    Indexing starts at 0.

    If tableName or columnName is not found, the command returns -1.

    Example

        // Search the column id according the column name
    var $id : Integer
    $id:=VP Get table column index($area; $tableName; "Weight price")
    // Remove the column by id
    VP REMOVE TABLE COLUMNS($area; $tableName; $id)

    See also

    VP CREATE TABLE
    VP Find table
    VP Get table column attributes
    VP SET TABLE COLUMN ATTRIBUTES

    VP Get table dirty rows

    History
    VersionChanges
    v19 R8Added

    VP Get table dirty rows ( vpAreaName : Text ; tableName : Text { ; reset : Boolean {; sheet : Integer }} ) : Collection

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    tableNameText->Table name
    resetBoolean->True to clear the dirty status from the current table, False to keep it untouched. Default=True
    sheetInteger->Sheet index (current sheet if omitted)
    ResultCollection<-Collection of objects with all the items modified since the last reset

    Description

    The VP Get table dirty rows command returns a collection of dirty row objects, containing items that were modified since the last reset in the specified tableName.

    In vpAreaName, pass the name of the 4D View Pro area.

    In tableName, pass the name of the table for which you want to get the dirty rows. Only modified columns bound to a data context will be taken into account.

    By default, calling the command will clear the dirty status from the current table. To keep this status untouched, pass False in the reset parameter.

    In sheet, pass the index of the target sheet. If no index is specified or if you pass -1, the command applies to the current sheet.

    Indexing starts at 0.

    Each dirty row object in the returned collection contains the following properties:

    PropertyTypeDescription
    itemobjectModified object of the modified row
    originalItemobjectObject before modification
    rowintegerIndex of the modified row

    If tableName is not found or if it does not contain a modified column, the command returns an empty collection.

    Example

    You want to count the number of edited rows:

    var $dirty : Collection
    $dirty:=VP Get table dirty rows("ViewProArea"; "ContextTable"; False)
    VP SET NUM VALUE(VP Cell("ViewProArea"; 0; 0); $dirty.length)

    See also

    VP CREATE TABLE
    VP Find table
    VP SET TABLE COLUMN ATTRIBUTES
    VP RESIZE TABLE

    VP Get table range

    History
    VersionChanges
    v19 R7Added

    VP Get table range ( vpAreaName : Text ; tableName : Text {; onlyData : Integer {; sheet : Integer }} ) : Object

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    tableNameText->Table name
    onlyDataInteger->vk table full range (default) or vk table data range
    sheetInteger->Sheet index (current sheet if omitted)
    ResultObject<-Range that contains the table

    Description

    The VP Get table range command returns the range of tableName.

    In vpAreaName, pass the name of the 4D View Pro area.

    In the onlyData parameter, you can pass one of the following constants to indicate if you want to get the data only:

    ConstantValueDescription
    vk table full range0Get the cell range for the table area with footer and header (default if omitted)
    vk table data range1Get the cell range for the table data area only

    In sheet, pass the index of the target sheet. If no index is specified, the command applies to the current sheet.

    Indexing starts at 0.

    If tableName is not found, the command returns null.

    See also

    VP RESIZE TABLE
    VP Find table

    VP Get table theme

    History
    VersionChanges
    v19 R8Added

    VP Get table theme ( vpAreaName : Text ; tableName : Text ) : cs.ViewPro.TableTheme

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    tableNameText->Table name
    Resultcs.ViewPro.TableTheme<-Current table theme property values

    Description

    The VP Get table theme command returns the current theme propertie values of the tableName. A table theme can be set using the VP CREATE TABLE or VP SET TABLE THEME commands, or through the interface.

    In vpAreaName, pass the name of the 4D View Pro area and in tableName, the name of the table.

    The command returns an object of the cs.ViewPro.TableTheme class with properties and values that describe the current table theme.

    Example

    The command returns a full theme object even if a native SpreadJS theme name was used to define the theme.

    var $param : cs.ViewPro.TableTheme
    $param:=cs.ViewPro.TableTheme.new()
    $param.theme:="dark10" //use of a native theme name

    VP SET TABLE THEME("ViewProArea"; "ContextTable"; $param)
    $vTheme:=VP Get table theme("ViewProArea"; "ContextTable")
    $result:=Asserted(Value type($vTheme.theme)=Is object) //true

    See also

    VP CREATE TABLE
    VP SET TABLE THEME

    VP Get tables

    History
    VersionChanges
    v19 R7Added

    VP Get tables ( vpAreaName : Text { ; sheet : Integer } ) : Collection

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    sheetInteger->Sheet index (current sheet if omitted)
    ResultCollection<-Text collection with all table names

    Description

    The VP Get tables command returns a collection of all table names defined in the sheet.

    In vpAreaName, pass the name of the 4D View Pro area.

    In sheet, pass the index of the target sheet. If no index is specified, the command applies to the current sheet.

    Indexing starts at 0.

    Example

    The following code will return a collection of all the table names in the current sheet:

    $tables:=VP Get tables("ViewProArea")
    //$tables contains for example ["contextTable","emailTable"]

    See also

    VP CREATE TABLE

    VP Get value

    VP Get value ( rangeObj : Object ) : Object

    ParameterTypeDescription
    rangeObjObject->Range object
    ResultObject<-Object containing a cell value

    Description

    The VP Get value command retrieves a cell value from a designated cell range.

    In rangeObj, pass a range whose value you want to retrieve.

    Returned object

    The object returned will contain the value property, and, in case of a js date value, a time property:

    PropertyTypeDescription
    valueInteger, Real, Boolean, Text, DateValue in the rangeObj (except- time)
    timeRealTime value (in seconds) if the value is of the js date type

    If the object returned includes a date or time, it is treated as a datetime and completed as follows:

    • time value - the date portion is completed as December 30, 1899 in dd/MM/yyyy format (30/12/1899)
    • date value - the time portion is completed as midnight in HH:mm:ss format (00:00:00)

    If rangeObj contains multiple cells or multiple ranges, the value of the first cell is returned. The command returns a null object if the cell is empty.

    Example

    $cell:=VP Cell("ViewProArea";5;2)
    $value:=VP Get value($cell)
    If(Value type($value.value)=Is text)
    VP SET VALUE($cell;New object("value";Uppercase($value.value)))
    End if

    See also

    VP Get values
    VP SET VALUE
    VP SET VALUES

    VP Get values

    VP Get values ( rangeObj : Object ) : Collection

    ParameterTypeDescription
    rangeObjObject->Range object
    ResultCollection<-Collection of values

    Description

    The VP Get values command retrieves the values from the designated rangeObj.

    In rangeObj, pass a range whose values you want to retrieve. If rangeObj includes multiple ranges, only the first range is used.

    The collection returned by VP Get values contains a two-dimensional collection:

    • Each element of the first-level collection represents a row and contains a subcollection of values

    • Each subcollection contains cell values for the row. Values can be Integer, Real, Boolean, Text, Null. If a value is a date or time, it is returned in an object with the following properties:

      PropertyTypeDescription
      valueDateValue in the cell (except- time)
      timeRealTime value (in seconds) if the value is of the js date type

    Dates or times are treated as a datetime and completed as follows:

    • time value - the date portion is completed as December 30, 1899
    • date value - the time portion is completed as midnight (00:00:00:000)

    Example

    You want to get values from C4 to G6:

    $result:=VP Get values(VP Cells("ViewProArea";2;3;5;3))
    // $result[0]=[4,5,null,hello,world]
    // $result[1]=[6,7,8,9,null]
    // $result[2]=[null,{time:42,value:2019-05-29T00:00:00.000Z},null,null,null]

    See also

    VP Get formulas
    VP Get value
    VP SET FORMULAS
    VP SET VALUES

    VP Get workbook options

    VP Get workbook options ( vpAreaName : Text ) : Object

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    ResultObject<-Object containing the workbook options

    Description

    VP Get workbook options returns an object containing all the workbook options in vpAreaName

    In vpAreaName, pass the name of the 4D View Pro area.

    The returned object contains all the workbook options (default and modified ones), in the workbook.

    The list of workbook options is referenced in VP SET WORKBOOK OPTIONS's description.

    Example

    var $workbookOptions : Object

    $workbookOptions:=VP Get workbook options("ViewProArea")

    See also

    VP SET WORKBOOK OPTIONS

    I

    VP IMPORT DOCUMENT

    History
    VersionChanges
    v20 R2Support of .sjs documents

    VP IMPORT DOCUMENT ( vpAreaName : Text ; filePath : Text { ; paramObj : Object} )

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    filePathText->Pathname of the document
    paramObjObject->Import options

    Description

    The VP IMPORT DOCUMENT command imports and displays the document designated by filePath in the 4D View Pro area vpAreaName. The imported document replaces any data already inserted in the area.

    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 filePath, pass the path and name of the document to be imported. The following formats are supported :

    • 4D View Pro documents (extension ".4vp")
    • Microsoft Excel (extension ".xlsx")
    • text documents (extension ".txt", ".csv", the document must be in utf-8)
    • SpreadJS documents (extension ".sjs")

    If the document extension is not a recognized extension, such as .4vp or .xlsx, the document is considered a text document. You must pass a full path, unless the document is located at the same level as the Project folder, in which case you can just pass its name.

    An error is returned if the filePath parameter is invalid, or if the file is missing or malformed.

    The optional paramObj parameter allows you to define properties for the imported document:

    ParameterTypeDescription
    formula4D.FunctionA callback method to be launched when the import has completed. You must use a formula returned by the Formula command. See Passing a callback method (formula).
    passwordtextMicrosoft Excel only (optional) - The password used to protect a MS Excel document.
    csvOptionsobjectoptions for csv import
    rangeobjectCell range that contains the first cell where the data will be written. If the specified range is not a cell range, only the first cell of the range is used.
    rowDelimitertextRow delimiter. If not present, the delimiter is automatically determined by 4D.
    columnDelimitertextColumn delimiter. Default: ","
    sjsOptionsobjectoptions for sjs import
    calcOnDemandbooleanWhether to calculate formulas only when they are demanded, default is false.
    dynamicReferencesbooleanWhether to calculate functions with dynamic references, default is true.
    fullRecalcbooleanWhether to calculate after loading the json data, false by default.
    includeFormulasbooleanWhether to include the formulas when loading, default is true.
    includeStylesbooleanWhether to include the styles when loading, default is true.
    includeUnusedStylesbooleanWhether to include the unused name styles when converting excel xml to the json, default is true.
    openModeinteger
  • 0 (normal): normal open mode, without lazy and incremental. When opening file, UI and UI event could be refreshed and responsive at specific time points.
  • 1 (lazy): lazy open mode. When opening file, only the active sheet will be loaded directly. Other sheets will be loaded only when they are be used.
  • 2 (incremental): incremental open mode. When opening file, UI and UI event could be refreshed and responsive directly.
  • Notes
    • Importing files in .xslx, .csv, and .sjs formats is asynchronous. With these formats, you must use the formula attribute if you want to start an action at the end of the document processing.
    • When importing a Microsoft Excel-formatted file into a 4D View Pro document, some settings may be lost. You can verify your settings with this list from SpreadJS.
    • For more information on the CSV format and delimiter-separated values in general, see this article on Wikipedia

    Example 1

    You want to import a default 4D View Pro document stored on the disk when the form is open:

    C_TEXT($docPath)
    If(Form event code=On VP Ready) //4D View Pro area loaded and ready
    $docPath:="C:\\Bases\\ViewProDocs\\MyExport.4VP"
    VP IMPORT DOCUMENT("VPArea";$docPath)
    End if

    Example 2

    You want to import a password protected Microsoft Excel document into a 4D View Pro area:

        //Import code
    var $o : Object
    $o:=New object
    $o.password:="excel123"
    $o.formula:=Formula(myImport)

    VP IMPORT DOCUMENT("ViewProArea";"c:\\tmp\\excelfilefile.xlsx";$o)
        //myImport callback method
    #DECLARE($area : Text; $filePath : Text; $param : Object; $status : Object)

    If ($status.success)
    ALERT("Import successfully completed")
    Else
    ALERT("Error: "+$status.errorMessage)
    End if

    Example 3

    You want to import a .txt file that uses a comma (",") as delimiter:

    example-import-csv

    $params:=New object
    $params.range:=VP Cells("ViewProArea";0;0;2;5)
    VP IMPORT DOCUMENT("ViewProArea";"c:\\import\\my-file.txt";New object("csvOptions";$params))

    Here's the result: example-import-csv

    See also

    VP EXPORT DOCUMENT
    VP NEW DOCUMENT

    VP IMPORT FROM BLOB

    VP IMPORT FROM BLOB ( vpAreaName : Text ; vpBlob : 4D.blob { ; paramObj : Object} )

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    vpBlob4D.Blob->Blob containing a 4D View Pro document
    paramObjObject->Import options

    Description

    The VP IMPORT FROM BLOB command imports the vpBlob in the 4D View Pro area vpAreaName and replaces its contents. vpBlob must contain a 4D View Pro document previously saved as Blob either by using the VP EXPORT TO BLOB command or via the 4D View Pro interface.

    In paramObj, you can pass several properties:

    PropertyTypeDescription
    formula4D.FunctionCallback method to be launched when the import has completed. See Passing a callback method (formula).
    calcOnDemandBooleanWhether to calculate formulas only when they are demanded, default=false.
    dynamicReferencesBooleanWhether to calculate functions with dynamic reference, default=true.
    fullRecalcBooleanWhether to calculate after loading the json data, false by default.
    includeFormulasBooleanWhether to include the formula when loading, default=true.
    includeStylesBooleanWhether to include the style when loading, default=true.
    includeUnusedStylesBooleanWhether to include the unused name style when converting excel xml to the json, default=true.
    openModeIntegercan be:
    0: normal open mode, without lazy and incremental. When opening document, UI and UI event could be refreshed and responsive at specific time points.
    1: lazy open mode. When opening document, only the active sheet will be loaded directly. Other sheets will be loaded only when they are be used.
    2: incremental open mode. When opening document, UI and UI event could be refreshed and responsive directly.

    The following parameters can be used in the callback method:

    ParameterTypeDescription
    param1textThe name of the 4D View Pro area object
    param24D.BlobThe imported blob
    param3objectA reference to the command's paramObj parameter
    param4objectAn object returned by the method with a status message
    .successbooleanTrue if import with success, False otherwise.
    .errorCodeintegerError code.
    .errorMessagetextError message.

    Example

    You want to import into the "ViewProArea" a 4D View Pro document previously saved as Blob in the first entity of the Table dataclass.

    var $myBlobDocument : 4D.Blob :=ds.Table.all().first().blob
    VP IMPORT FROM BLOB("ViewProArea"; $myBlobDocument)

    See also

    VP EXPORT TO BLOB

    VP IMPORT FROM OBJECT

    VP IMPORT FROM OBJECT ( vpAreaName : Text { ; viewPro : Object} )

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    viewProObject->4D View Pro object

    Description

    The VP IMPORT FROM OBJECT command imports and displays the viewPro 4D View Pro object in the vpAreaName 4D View Pro area. The imported object contents replaces any data already inserted in the area.

    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 viewPro, pass a valid 4D View Pro object. This object can have been created using VP Export to object or manually. For more information on 4D View Pro objects, please refer to the 4D View Pro object section.

    An error is returned if the viewPro object is invalid.

    Example

    You want to import a spreadsheet that was previously saved in an object field:

    QUERY([VPWorkBooks];[VPWorkBooks]ID=10)
    VP IMPORT FROM OBJECT("ViewProArea1";[VPWorkBooks]SPBook)

    See also

    VP Export to object

    VP INSERT COLUMNS

    VP INSERT COLUMNS ( rangeObj : Object )

    ParameterTypeDescription
    rangeObjObject->Range object

    Description

    The VP INSERT COLUMNS command inserts columns into the rangeObj.

    In rangeObj, pass an object containing a range of the starting column (the column which designates where the new column will be inserted) and the number of columns to insert. If the number of column to insert is omitted (not defined), a single column is inserted.

    New columns are inserted on the left, directly before the starting column in the rangeObj.

    Example

    To insert three columns before the second column:

    VP INSERT COLUMNS(VP Column("ViewProArea";1;3))

    The results is:

    See also

    VP DELETE COLUMNS
    VP DELETE ROWS
    VP INSERT ROWS

    VP INSERT ROWS

    VP INSERT ROWS ( rangeObj : Object )

    ParameterTypeDescription
    rangeObjObject->Range object

    Description

    The VP INSERT ROWS command inserts rows defined by the rangeObj.

    In rangeObj, pass an object containing a range of the starting row (the row which designates where the new row will be inserted) and the number of rows to insert. If the number of rows to insert is omitted (not defined), a single row is inserted.

    New rows are inserted directly before the first row in the rangeObj.

    Example

    To insert 3 rows before the first row:

    VP INSERT ROWS(VP Row("ViewProArea";0;3))

    The results is:

    See also

    VP DELETE COLUMNS
    VP DELETE ROWS
    VP INSERT COLUMNS

    VP INSERT TABLE COLUMNS

    History
    VersionChanges
    v19 R7Added

    VP INSERT TABLE COLUMNS ( vpAreaName : Text ; tableName : Text ; column : Integer {; count : Integer {; insertAfter : Integer {; sheet : Integer }}} )

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    tableNameText->Table name
    columnInteger->Index in the table of the starting column to insert
    countText->Number of columns to add (must be >0)
    insertAfterInteger->vk table insert before or vk table insert after column
    sheetInteger->Sheet index (current sheet if omitted)

    Description

    The VP INSERT TABLE COLUMNS command inserts one or count empty column(s) in the specified tableName at the specified column index.

    When a column has been inserted with this command, you typically modify its contents using the VP SET TABLE COLUMN ATTRIBUTES command.

    In the insertAfter parameter, you can pass one of the following constants to indicate if the column(s) must be inserted before or after the column index:

    ConstantValueDescription
    vk table insert before0Insert column(s) before the column (default if omitted)
    vk table insert after1Insert column(s) after the column

    This command inserts some columns in the tableName table, NOT in the sheet. The total number of columns of the sheet is not impacted by the command. Data present at the right of the table (if any) are automatically moved right according to the number of added columns.

    If tableName does not exist or if there is not enough space in the sheet, nothing happens.

    Example

    See examples for VP INSERT TABLE ROWS and VP SET TABLE COLUMN ATTRIBUTES.

    See also

    VP INSERT TABLE ROWS
    VP REMOVE TABLE COLUMNS
    VP SET TABLE COLUMN ATTRIBUTES

    VP INSERT TABLE ROWS

    History
    VersionChanges
    v19 R7Added

    VP INSERT TABLE ROWS ( vpAreaName : Text ; tableName : Text ; row : Integer {; count : Integer {; insertAfter : Integer {; sheet : Integer }}} )

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    tableNameText->Table name
    rowInteger->Index in the table of the starting row to insert
    countText->Number of rows to add (must be >0)
    insertAfterInteger->vk table insert before or vk table insert after row
    sheetInteger->Sheet index (current sheet if omitted)

    Description

    The VP INSERT TABLE ROWS command inserts one or count empty row(s) in the specified tableName at the specified row index.

    In the insertAfter parameter, you can pass one of the following constants to indicate if the row(s) must be inserted before or after the row index:

    ConstantValueDescription
    vk table insert before0Insert row(s) before the row (default if omitted)
    vk table insert after1Insert row(s) after the row

    This command inserts some rows in the tableName table, NOT in the sheet. The total number of rows of the sheet is not impacted by the command. Data present below the table (if any) are automatically moved down according to the number of added rows.

    If the tableName table is bound to a data context, the command inserts new, empty element(s) in the collection.

    If tableName does not exist or if there is not enough space in the sheet, nothing happens.

    Example

    You create a table with a data context:

    var $context : Object
    $context:=New object()

    $context.col:=New collection
    $context.col.push(New object("name"; "Smith"; "salary"; 10000))
    $context.col.push(New object("name"; "Wesson"; "salary"; 50000))
    $context.col.push(New object("name"; "Gross"; "salary"; 10500))

    VP SET DATA CONTEXT("ViewProArea"; $context)

    VP CREATE TABLE(VP Cells("ViewProArea"; 1; 1; 3; 3); "PeopleTable"; "col")

    You want to insert two rows and two columns in the table, you can write:

    VP INSERT TABLE ROWS("ViewProArea"; "PeopleTable"; 1; 2)
    VP INSERT TABLE COLUMNS("ViewProArea"; "PeopleTable"; 1; 2)

    See also

    VP INSERT TABLE COLUMNS
    VP REMOVE TABLE ROWS

    M

    VP MOVE CELLS

    History
    VersionChanges
    v19 R4Added

    VP MOVE CELLS ( originRange : Object ; targetRange : Object ; options : Object )

    ParameterTypeDescription
    originRangeObject->Cell range to copy from
    targetRangeObject->Target range for the values, formatting and formulas
    optionsObject->Additional options

    Description

    The VP MOVE CELLS command moves or copies the values, style and formulas from originRange to targetRange.

    originRange and targetRange can refer to different View Pro areas.

    In originRange, pass a range object containing the values, style, and formula cells to copy or move. If originRange is a combined range, only the first one is used.

    In targetRange, pass the range of cells where the cell values, style, and formulas will be copied or moved.

    The options parameter has several properties:

    PropertyTypeDescription
    copyBooleanDetermines if the values, formatting and formulas of the cells in originRange are removed after the command executes:
    • False (default) to remove them
    • True to keep them
    pasteOptionsLongintSpecifies what is pasted. Possible values:

    ValueDescription
    vk clipboard options all (default)Pastes all data objects, including values, formatting, and formulas.
    vk clipboard options formattingPastes only the formatting.
    vk clipboard options formulasPastes only the formulas.
    vk clipboard options formulas and formattingPastes the formulas and formatting.
    vk clipboard options valuesPastes only the values.
    vk clipboard options value and formattingPastes the values and formatting.

    The paste options defined in the workbook options are taken into account.

    Example

    To copy the contents, values, formatting and formulas from an origin range:

    var $originRange; $targetRange; $options : Object

    $originRange:=VP Cells("ViewProArea"; 0; 0; 2; 5)

    $targetRange:=VP Cells("ViewProArea"; 4; 0; 2; 5)

    $options:=New object
    $options.copy:=True
    $options.pasteOptions:=vk clipboard options all

    VP MOVE CELLS($originRange; $targetRange; $options)

    See also

    VP Copy to object
    VP PASTE FROM OBJECT
    VP SET WORKBOOK OPTIONS

    N

    VP Name

    VP Name ( vpAreaName : Text ; rangeName : Text { ; sheet : Integer } ) : Object

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    rangeNameText->Existing range name
    sheetInteger->Range location (current sheet if omitted)
    ResultObject<-Range object of name

    Description

    The VP Name command returns a new range object referencing a named range.

    In vpAreaName, pass the name of the 4D View Pro area. If you pass a name that does not exist, an error is returned.

    The rangeName parameter specifies an existing named cell range.

    In the optional sheet parameter, you can designate a specific spreadsheet where rangeName is defined. If omitted, the current spreadsheet is used by default. You can explicitly select the current spreadsheet or the entire workbook with the following constants:

    • vk current sheet
    • vk workbook

    Example

    You want to give a value to the "Total" named range.

    // name the B5 cell as Total
    VP ADD RANGE NAME(VP Cell("ViewProArea";1;4);"Total")
    $name:=VP Name("ViewProArea";" Total")
    VP SET NUM VALUE($name;285;"$#,###.00")

    See also

    VP ADD RANGE NAME
    VP ALL
    VP Cell
    VP Cells
    VP Column
    VP Combine ranges
    VP Get names
    VP REMOVE NAME
    VP Row

    VP NEW DOCUMENT

    VP NEW DOCUMENT ( vpAreaName : Text )

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name

    Description

    The VP NEW DOCUMENT command loads and display a new, default document in the 4D View Pro form area object vpAreaName. The new empty document replaces any data already inserted in the area.

    In vpAreaName, pass the name of the 4D View Pro area. If you pass a name that does not exist, an error is returned.

    Example

    You want to display an empty document in the "myVPArea" form object:

    VP NEW DOCUMENT("myVPArea")

    See also

    VP IMPORT DOCUMENT


    O

    VP Object to font

    VP Object to font ( fontObj : Object ) : Text

    ParameterTypeDescription
    fontObjObject->Font object
    ResultText<-Font shorthand

    Description

    The VP Object to font command returns a font shorthand string from fontObj.

    In fontObj, pass an object containing the font properties. The following properties are supported:

    PropertyTypeDescriptionPossible valuesMandatory
    familytextSpecifies the font.any standard or generic font family. Ex. "Arial", "Helvetica", "serif", "arial,sans-serif"Yes
    sizetextDefines the size of the font.The line-height can be added to the font-size: font-size/line-height: Ex: "15pt/20pt"a number with one of the following units:
  • "em", "ex", "%", "px", "cm", "mm", "in", "pt", "pc", "ch", "rem", "vh", "vw", "vmin", "vmax"
  • or one of the following:
  • vk font size large
  • vk font size larger
  • vk font size x large
  • vk font size xx large
  • vk font size small
  • vk font size smaller
  • vk font size x small
  • vk font size xx small
  • Yes
    styletextThe style of the font.
  • vk font style italic
  • vk font style oblique
  • No
    varianttextSpecifies font in small capital letters.
  • vk font variant small caps
  • No
    weighttextDefines the thickness of the font.
  • vk font weight 100
  • vk font weight 200
  • vk font weight 300
  • vk font weight 400
  • vk font weight 500
  • vk font weight 600
  • vk font weight 700
  • vk font weight 800
  • vk font weight 900
  • vk font weight bold
  • vk font weight bolder
  • vk font weight lighter
  • No

    This object can be created with the VP Font to object command.

    The returned shorthand string can be assigned to the "font" property of a cell with the VP SET CELL STYLE, for example.

    Example

    $cellStyle:=VP Get cell style($range)

    $font:=VP Font to object($cellStyle.font)
    $font.style:=vk font style oblique
    $font.variant:=vk font variant small caps
    $font.weight:=vk font weight bolder

    $cellStyle.font:=VP Object to font($font)
    //$cellStyle.font contains "bolder oblique small-caps 16pt arial"

    See also

    4D View Pro Style Objects and Style Sheets
    VP Font to object
    VP SET CELL STYLE
    VP SET DEFAULT STYLE

    P

    VP PASTE FROM OBJECT

    History
    VersionChanges
    v19 R4Added

    VP PASTE FROM OBJECT ( rangeObj : Object ; dataObject : Object {; options : Longint} )

    ParameterTypeDescription
    rangeObjObject->Cell range object
    dataObjectObject->Object containing the data to be pasted
    optionsLongint->Specifies what is pasted

    Description

    The VP PASTE FROM OBJECT command pastes the contents, style and formulas stored in dataObject to the rangeObj object.

    In rangeObj, pass the cell range object where the values, formatting, and/or formula cells will be pasted. If rangeObj refers to more than one cell, only the first one is used.

    In dataObject, pass the object that contains the cell data, formatting, and formulas to be pasted.

    In the optional options parameter, you can specify what to paste in the cell range. Possible values:

    ConstantDescription
    vk clipboard options allPastes all data objects, including values, formatting, and formulas.
    vk clipboard options formattingPastes only the formatting.
    vk clipboard options formulasPastes only the formulas.
    vk clipboard options formulas and formattingPastes formulas and formatting.
    vk clipboard options valuesPastes only values.
    vk clipboard options value and formattingPastes values and formatting.

    The paste options defined in the workbook options are taken into account.

    If options refers to a paste option not present in the copied object (e.g. formulas), the command does nothing.

    Example

    See example the example from VP Copy to object

    See also

    VP Copy to object
    VP MOVE CELLS
    VP Get workbook options
    VP SET WORKBOOK OPTIONS

    VP PRINT

    VP PRINT ( vpAreaName : Text { ; sheet : Integer } )

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    sheetInteger->Sheet index (current sheet if omitted)

    Description

    The VP PRINT command opens a print dialog window to print vpAreaName.

    Pass the 4D View Pro area to be printed in vpAreaName. The command will open the system print dialog window where the printer can be specified and the page properties can be defined.

    The properties defined in the print dialog window are for the printer paper, they are not the printing properties for the 4D View Pro area. Printing properties for 4D View Pro areas are defined using the VP SET PRINT INFO command. It is highly recommended that the properties for both the printer and the 4D View Pro area match, otherwise the printed document may not correspond to your expectations.

    In the optional sheet parameter, you can designate a specific spreadsheet to print (counting begins at 0). If omitted, the current sheet is used by default. You can explicitly select the current spreadsheet or entire workbook with the following constants:

    • vk current sheet
    • vk workbook
    • 4D View Pro areas can only be printed with the VP PRINT command.
    • Commands from the 4D Printing language theme are not supported by VP PRINT.
    • This command is intended for individual printing by the final end user. For automated print jobs, it is advised to export the 4D View Pro area as a PDF with the VP EXPORT DOCUMENT method.

    Example

    The following code:

     VP PRINT("myVPArea")

    ... will open a print dialog window:

    See also

    VP EXPORT DOCUMENT
    VP SET PRINT INFO

    R

    VP RECOMPUTE FORMULAS

    VP RECOMPUTE FORMULAS ( vpAreaName : Text )

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name

    Description

    The VP RECOMPUTE FORMULAS command immediately evaluates all formulas in vpAreaName. By default, 4D automatically computes formulas when they are inserted, imported, or exported. VP RECOMPUTE FORMULAS allows you to force the compute at any time (e.g, in case modifications are made to the formulas or if the formulas contain calls to the database). The command launches the execution of the VP FLUSH COMMANDS command to execute any stored commands and clear the command buffer, then calculates all formulas in the workbook.

    In vpAreaName, pass the name of the 4D View Pro area. If you pass a name that does not exist, an error is returned.

    Be sure the VP SUSPEND COMPUTING command has not been executed before using VP RECOMPUTE FORMULAS, otherwise the command does nothing.

    Example

    To refresh all formulas in the workbook:

    VP RECOMPUTE FORMULAS("ViewProArea")

    See also

    VP RESUME COMPUTING
    VP SUSPEND COMPUTING

    VP REMOVE NAME

    VP REMOVE NAME ( vpAreaName : Text ; name : Text { ; sheet : Integer } )

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    nameText->Name of the named range or named formula to remove
    scopeInteger->Target scope (default=current sheet)

    Description

    The VP REMOVE NAME command removes the named range or named formula passed in the name parameter in the defined scope.

    In vpAreaName, pass the name of the 4D View Pro area. If you pass a name that does not exist, an error is returned.

    Pass the named range or named formula that you want to remove in name.

    You can define where to remove the name in scope using either the sheet index (counting begins at 0) or the following constants:

    • vk current sheet
    • vk workbook

    Example

    $range:=VP Cell("ViewProArea";0;0)
    VP ADD RANGE NAME("Total1";$range)

    VP REMOVE NAME("ViewProArea";"Total1")
    $formula:=VP Get formula by name("ViewProArea";"Total1")
    //$formula=null

    See also

    VP Name

    VP REMOVE SHEET

    VP REMOVE SHEET ( vpAreaName : Text ; index: Integer )

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    indexInteger->Index of the sheet to remove

    See also

    VP ADD SHEET

    Description

    The VP REMOVE SHEET command removes the sheet with the specified index from the document loaded in vpAreaName.

    In vpAreaName, pass the name of the 4D View Pro area.

    In index, pass the index of the sheet to remove. If the passed index does not exist, the command does nothing.

    Indexing starts at 0.

    Example

    The document currently has three sheets:

    Remove the third sheet:

    VP REMOVE SHEET("ViewProArea";2)

    VP REMOVE SPAN

    VP REMOVE SPAN ( rangeObj : Object )

    ParameterTypeDescription
    rangeObjObject->Range object

    Description

    The VP REMOVE SPAN command removes the span from the cells in rangeObj.

    In rangeObj, pass a range object of the cell span. The spanned cells in the range are divided into individual cells.

    Example

    To remove all cell spans from this document:

     //find all cell spans
    $span:=VP Get spans(VP All("ViewProArea"))


    //remove the cell spans
    VP REMOVE SPAN($span)

    Result:

    See also

    VP ADD SPAN
    VP Get spans

    VP REMOVE STYLESHEET

    VP REMOVE STYLESHEET ( vpAreaName : Text ; styleName : Text { ; sheet : Integer } )

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    styleNameText->Name of style to remove
    sheetInteger->Sheet index (current sheet if omitted)

    Description

    The VP REMOVE STYLESHEET command removes the style sheet passed in the styleName from the vpAreaName.

    In vpAreaName, pass the name of the 4D View Pro area. If you pass a name that does not exist, an error is returned.

    Pass the style sheet to remove in the styleName parameter.

    You can define where to remove the style in the optional sheet parameter using the sheet index (counting begins at 0) or with the following constants:

    • vk current sheet
    • vk workbook

    Example

    To remove the GreenDashDotStyle style object from the current sheet:

    VP REMOVE STYLESHEET("ViewProArea";"GreenDashDotStyle")

    See also

    VP ADD STYLESHEET
    VP Get stylesheet
    VP Get stylesheets

    VP REMOVE TABLE

    History
    VersionChanges
    v19 R6Added

    VP REMOVE TABLE ( vpAreaName : Object; tableName : Text {; options : Integer} {; sheet : Integer}} )

    ParameterTypeDescription
    vpAreaNameText->View Pro area name
    tableNameText->Name of the table to remove
    optionsInteger->Additional options
    sheetInteger->Sheet index (current sheet if omitted)

    Description

    The VP REMOVE TABLE command removes a table that you created with VP CREATE TABLE.

    In vpAreaName, pass the name of the area where the table to remove is located.

    In tableName, pass the name of the table to remove.

    In options, you can specify additional behavior. Possible values are:

    ConstantValueDescription
    vk table remove all0Remove all including style and data
    vk table remove style1Remove style but keep data
    vk table remove data2Remove data but keep style

    Table names are defined at sheet level. You can specify where the table is located using the optional sheet parameter (indexing starts at 0).

    Example

    To remove the "people" table in the second sheet and keep the data in the cells:

    VP REMOVE TABLE("ViewProArea"; "people"; vk table remove style; 2)

    See also

    VP CREATE TABLE

    VP REMOVE TABLE COLUMNS

    History
    VersionChanges
    v19 R7Added

    VP REMOVE TABLE COLUMNS ( vpAreaName : Text ; tableName : Text ; column : Integer {; count : Integer {; sheet : Integer }}} )

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    tableNameText->Table name
    columnInteger->Index in the table of the starting column to remove
    countText->Number of columns to remove (must be >0)
    sheetInteger->Sheet index (current sheet if omitted)

    Description

    The VP REMOVE TABLE COLUMNS command removes one or count column(s) in the specified tableName at the specified column index. The command removes values and styles.

    The command removes columns from the tableName table, NOT from the sheet. The total number of columns of the sheet is not impacted by the command. Data present at the right of the table (if any) are automatically moved letf according to the number of removed columns.

    If tableName does not exist, nothing happens.

    Example

    To remove two columns from 3rd column of the "dataTable" table:

    VP REMOVE TABLE COLUMNS("ViewProArea"; "dataTable"; 3; 2)

    See also

    VP INSERT TABLE COLUMNS
    VP REMOVE TABLE ROWS

    VP REMOVE TABLE ROWS

    History
    VersionChanges
    v19 R7Added

    VP REMOVE TABLE ROWS ( vpAreaName : Text ; tableName : Text ; row : Integer {; count : Integer {; sheet : Integer }}} )

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    tableNameText->Table name
    rowInteger->Index in the table of the starting row to remove
    countText->Number of rows to remove (must be >0)
    sheetInteger->Sheet index (current sheet if omitted)

    Description

    The VP REMOVE TABLE ROWS command removes one or count row(s) from the specified tableName at the specified row index. The command removes values and styles.

    This command removes rows from the tableName table, NOT from the sheet. The total number of rows of the sheet is not impacted by the command. Data present below the table (if any) are automatically moved up according to the number of removed rows.

    If the tableName table is bound to a data context, the command removes element(s) from the collection.

    If tableName does not exist, nothing happens.

    Example

    To remove two rows from 3rd row of the "dataTable" table:

    VP REMOVE TABLE ROWS("ViewProArea"; "dataTable"; 3; 2)

    See also

    VP INSERT TABLE ROWS
    VP REMOVE TABLE COLUMNS

    VP RESET SELECTION

    VP RESET SELECTION ( vpAreaName : Text { ; sheet : Integer } )

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    sheetInteger->Sheet index (current sheet if omitted)

    Description

    The VP RESET SELECTION command deselects all cells, resulting in no current selection or visible active cell.

    A default active cell (cell A1) remains defined for 4D View Pro commands.

    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 the optional sheet parameter, you can designate a specific spreadsheet where the range will be defined (counting begins at 0). If omitted, the current spreadsheet is used by default. You can explicitly select the current spreadsheet with the following constant:

    • vk current sheet

    Example

    You want to deselect all cells (the active cell and any selected cells):

    VP RESET SELECTION("myVPArea")

    See also

    VP ADD SELECTION
    VP Get active cell
    VP Get selection
    VP SET ACTIVE CELL
    VP SET SELECTION
    VP SHOW CELL

    VP RESIZE TABLE

    History
    VersionChanges
    v19 R7Added

    VP RESIZE TABLE ( rangeObj : Object; tableName : Text )

    ParameterTypeDescription
    rangeObjObject->New range for the table
    tableNameText->Name of the table

    Description

    The VP RESIZE TABLE command changes the tableName size with regards to the rangeObj.

    The following rules apply:

    • Headers must remain in the same row and the resulting table range must overlap the original table range.
    • If the row count of the resized table is inferior to the initial row count, values inside cropped rows or columns are kept if they were not bound to a data context, otherwise they are deleted.
    • If the table expands on cells containing data:
      • if rows are added, data is deleted,
      • if columns are added, data are kept and are displayed in new columns.

    If tableName does not exist, nothing happens.

    Example

    You create a table with a data context:

    var $context : Object
    $context:=New object()

    $context.col:=New collection
    $context.col.push(New object("name"; "Smith"; "salary"; 10000))
    $context.col.push(New object("name"; "Wesson"; "salary"; 50000))
    $context.col.push(New object("name"; "Gross"; "salary"; 10500))

    VP SET DATA CONTEXT("ViewProArea"; $context)

    VP CREATE TABLE(VP Cells("ViewProArea"; 1; 1; 3; 3); "PeopleTable"; "col")

    You want to add one column before and after the table as well as two empty rows. You can write:

    VP RESIZE TABLE(VP Cells("ViewProArea"; 0; 1; 4; 6); "PeopleTable")

    See also

    VP CREATE TABLE
    VP Get table range

    VP RESUME COMPUTING

    VP RESUME COMPUTING ( vpAreaName : Text )

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name

    Description

    The VP RESUME COMPUTING command restarts the calculation of formulas in vpAreaName.

    The command reactivates the calculation service in 4D View Pro. Any formulas impacted by changes made while calculations were suspended are updated, and formulas added after VP RESUME COMPUTING is executed are calculated.

    In vpAreaName, pass the name of the 4D View Pro area. If you pass a name that does not exist, an error is returned.

    The 4D View Pro calculation service maintains a counter of suspend/resume actions. Therefore, each execution of VP RESUME COMPUTING must be balanced by a corresponding execution of the VP SUSPEND COMPUTING command.

    Example

    See example in VP SUSPEND COMPUTING.

    See also

    VP RECOMPUTE FORMULAS
    VP SUSPEND COMPUTING

    VP Row

    VP Row ( vpAreaName : Text; row : Integer { ; rowCount : Integer { ; sheet : Integer } } ) : Object

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    rowInteger->Row index
    rowCountInteger->Number of rows

    |sheet |Integer|->|Sheet index (current sheet if omitted)| |Result |Object|<-|Range object of row(s)|

    Description

    The VP Row command returns a new range object referencing a specific row or rows.

    In vpAreaName, pass the name of the 4D View Pro area. If you pass a name that does not exist, an error is returned.

    The row parameter defines the first row of the row range. Pass the row index (counting begins at 0) in this parameter. If the range contains multiple rows, you should also use the optional rowCount parameter.

    The optional rowCount parameter allows you to define the total number of rows of the range. rowCount must be greater than 0. If omitted, the value will be set to 1 by default.

    In the optional sheet parameter, you can designate a specific spreadsheet where the range will be defined (counting begins at 0). If not specified, the current spreadsheet is used by default. You can explicitly select the current spreadsheet with the following constant:

    • vk current sheet

    Example

    You want to define a range object for the row shown below (on the current spreadsheet):

    You can write:

    $row:=VP Row("ViewProArea";9) // row 10

    See also

    VP All
    VP Cell
    VP Cells
    VP Column
    VP Combine ranges
    VP Name

    VP ROW AUTOFIT

    VP ROW AUTOFIT ( rangeObj : Object)

    ParameterTypeDescription
    rangeObjObject->Range object

    Description

    The VP ROW AUTOFIT command automatically sizes the row(s) in rangeObj according to their contents.

    In rangeObj, pass a range object containing a range of the rows whose size will be automatically handled.

    Example

    The following rows don't correctly display the text:

     VP ROW AUTOFIT(VP Row("ViewProArea";1;2))

    Result:

    See also

    VP Column autofit

    VP Run offscreen area

    VP Run offscreen area ( parameters : Object) : Mixed

    ParameterTypeDescription
    parametersObject->Object containing the offscreen area's attributes
    ResultMixed<-.result property of the .onEvent object, or Null if does not return a value

    Description

    The VP Run offscreen area command creates an offscreen area in memory which can be used to process 4D View Pro area commands and functions.

    In parameters object, pass any of the following optional properties. These properties will be available through the This command within the onEvent method and reference the instance:

    PropertyTypeDescription
    areatextThe name of the offscreen area. If omitted or null, a generic name is assigned (e.g., "OffscreenArea1").
    onEventobject (formula)A callback method that will be launched when the offscreen area is ready. It can be either:
  • an onEvent function of a class, or
  • a Formula object
  • By default, the callback method is called on the On VP Ready, On Load, On Unload, On End URL Loading, On URL Loading Error, On VP Range Changed, or On Timer events. The callback method can be used to access the 4D View Pro form object variable.
    autoQuitbooleanTrue (default value) if the command must stop the formula execution when the On End URL Loading or On URL Loading Error events occur. If false, you must use the CANCEL or ACCEPT commands in the onEvent callback method.
    timeoutnumberMaximum time (expressed in seconds) before the area automatically closes if no event is generated. If set to 0, no limitation is applied. Default value: 60
    resultmixedResult of the processing (if any)
    <customProperty>mixedAny custom attribute to be available in the onEvent callback method.

    The following property is automatically added by the command if necessary:

    PropertyTypeDescription
    timeoutReachedbooleanAdded with true value if timeout has been exceeded

    The offscreen area is only available during the execution of the VP Run offscreen area command. It will automatically be destroyed once execution has ended.

    The following commands can be used in the callback method:

    • ACCEPT
    • CANCEL
    • SET TIMER
    • WA Evaluate JavaScript
    • WA EXECUTE JAVASCRIPT FUNCTION

    Example 1

    You want to create an offscreen 4D View Pro area and get the value of a cell:

    // cs.OffscreenArea class declaration 
    Class constructor ($path : Text)
    This.filePath:=$path

    // This function will be called on each event of the offscreen area
    Function onEvent()
    Case of
    :(FORM Event.code=On VP Ready)
    VP IMPORT DOCUMENT(This.area;This.filePath)
    This.result:=VP Get value(VP Cell(This.area;6;22))

    ALERT("The G23 cell contains the value: "+String(This.result))
    End case

    The OffscreenArea callback method:

    $o:=cs.OffscreenArea.new()
    $result:=VP Run offscreen area($o)

    Example 2

    You want to load a large document offscreen, wait for all calculations to complete evaluating, and export it as a PDF:

    //cs.OffscreenArea class declaration
    Class constructor($pdfPath : Text)
    This.pdfPath:=$pdfPath
    This.autoQuit:=False
    This.isWaiting:=False

    Function onEvent()
    Case of
    :(FORM Event.code=On VP Ready)
    // Document import
    VP IMPORT DOCUMENT(This.area;$largeDocument4VP)
    This.isWaiting:=True

    // Start a timer to verify if all calculations are finished.
    // If during this period the "On VP Range Changed" is thrown, the timer will be restarted
    // The time must be defined according to the computer configuration.
    SET TIMER(60)

    :(FORM Event.code=On VP Range Changed)
    // End of calculation detected. Restarts the timer
    If(This.isWaiting)
    SET TIMER(60)
    End if

    :(FORM Event.code=On Timer)
    // To be sure to not restart the timer if you call others 4D View command after this point
    This.isWaiting:=False



    // Stop the timer
    SET TIMER(0)

    // Start the PDF export
    VP EXPORT DOCUMENT(This.area;This.pdfPath;New object("formula";Formula(ACCEPT)))

    :(FORM Event.code=On URL Loading Error)

    CANCEL
    End case

    The OffscreenArea callback method:

    $o:=cs.OffscreenArea.new()

    $result:=VP Run offscreen area($o)

    See also

    Blog post: End of document loading

    S

    VP SET ACTIVE CELL

    VP SET ACTIVE CELL ( rangeObj : Object)

    ParameterTypeDescription
    rangeObjObject->Range object

    Description

    The VP SET ACTIVE CELL command defines a specified cell as active.

    In rangeObj, pass a range containing a single cell as an object (see VP Cell). If rangeObj is not a cell range or contains multiple ranges, the first cell of the first range is used.

    Example

    To set the cell in column D, row 5 as the active cell:

    $activeCell:=VP Cell("myVPArea";3;4)
    VP SET ACTIVE CELL($activeCell)

    See also

    VP ADD SELECTION
    VP Get active cell
    VP Get selection
    VP RESET SELECTION
    VP SET SELECTION
    VP SHOW CELL

    VP SET ALLOWED METHODS

    VP SET ALLOWED METHODS ( methodObj : Object)

    ParameterTypeDescription
    methodObjObject->Allowed methods in the 4D View Pro areas

    Compatibility

    For greater flexiblity, it is recommended to use the VP SET CUSTOM FUNCTIONS command which allows you to designate 4D formulas that can be called from 4D View Pro areas. As soon as VP SET CUSTOM FUNCTIONS is called, VP SET ALLOWED METHODS calls are ignored. 4D View Pro also supports 4D's generic SET ALLOWED METHODS command if neither VP SET CUSTOM FUNCTIONS nor VP SET ALLOWED METHODS are called, however using the generic command is not recommended.

    Description

    The VP SET ALLOWED METHODS command designates the project methods that can be called in 4D View Pro formulas. This command applies to all 4D View Pro areas initialized after its call during the session. It can be called multiple times in the same session to initialize different configurations.

    By default for security reasons, if you do not execute the VP SET ALLOWED METHODS command, no method call is allowed in 4D View Pro areas -- except if 4D's generic SET ALLOWED METHODS command was used (see compatibility note). Using an unauthorized method in a formula prints a #NAME? error in the 4D View Pro area.

    In the methodObj parameter, pass an object in which each property is the name of a function to define in the 4D View Pro areas:

    PropertyTypeDescription
    <functionName>ObjectCustom function definition. The <functionName> property name defines the name of the custom function to display in 4D View Pro formulas (no spaces allowed)
    methodText(mandatory) Name of the existing 4D project method to allow
    parametersCollection of objectsCollection of parameters (in the order they are defined in the method).
    [ ].nameTextName of a parameter to display for the <functionName>.Note: Parameter names must not contain space characters.
    [ ].typeNumberType of the parameter. Supported types:
  • Is Boolean
  • Is date
  • Is Integer
  • Is object
  • Is real
  • Is text
  • Is time
  • If omitted, by default the value is automatically sent with its type, except date or time values which are sent as an object (see Parameters section). If type is Is object, the object has the same structure as the object returned by VP Get value.
    summaryTextFunction description to display in 4D View Pro
    minParamsNumberMinimum number of parameters
    maxParamsNumberMaximum number of parameters. Passing a number higher than the length of parameters allows declaring "optional" parameters with default type

    Example

    You want to allow two methods in your 4D View Pro areas:

    C_OBJECT($allowed)
    $allowed:=New object //parameter for the command

    $allowed.Hello:=New object //create a first simple function named "Hello"
    $allowed.Hello.method:="My_Hello_Method" //sets the 4D method
    $allowed.Hello.summary:="Hello prints hello world"

    $allowed.Byebye:=New object //create a second function with parameters named "Byebye"
    $allowed.Byebye.method:="My_ByeBye_Method"
    $allowed.Byebye.parameters:=New collection
    $allowed.Byebye.parameters.push(New object("name";"Message";"type";Is text))
    $allowed.Byebye.parameters.push(New object("name";"Date";"type";Is date))
    $allowed.Byebye.parameters.push(New object("name";"Time";"type";Is time))
    $allowed.Byebye.summary:="Byebye prints a custom timestamp"
    $allowed.Byebye.minParams:=3
    $allowed.Byebye.maxParams:=3

    VP SET ALLOWED METHODS($allowed)

    After this code is executed, the defined functions can be used in 4D View Pro formulas:

    In 4D View Pro formulas, function names are automatically displayed in uppercase.

    See also

    4D functions
    VP SET CUSTOM FUNCTIONS

    VP SET BINDING PATH

    History
    VersionChanges
    v19 R5Added

    VP SET BINDING PATH ( rangeObj : Object ; dataContextAttribute : Text)

    ParameterTypeDescription
    rangeObjObject->Range object
    dataContextAttributeText->Name of the attribute to bind to rangeObj

    Description

    The VP SET BINDING PATH command binds an attribute from a sheet's data context to rangeObj. After you set a data context using the SET DATA CONTEXT method. When loaded, if the data context contains the attribute, the value of dataContextAttribute is automatically displayed in the cells in rangeObj.

    In rangeObj, pass an object that is either a cell range or a combined range of cells.

    • If rangeObj is a range with several cells, the command binds the attribute to the first cell of the range.
    • If rangeObj contains several ranges of cells, the command binds the attribute to the first cell of each range.

    In dataContextAttribute, pass the name of the attribute to bind to rangeObj. If dataContextAttribute is an empty string, the function removes the current binding.

    Attributes of type collection are not supported. When you pass the name of a collection attribute, the command does nothing.

    Example

    Set a data context and bind the firstName and lastName attribute to cells:

    var $p : Object

    $p:=New object
    $p.firstName:="Freehafer"
    $p.lastName:="Nancy"

    VP SET DATA CONTEXT("ViewProArea"; $p)

    VP SET BINDING PATH(VP Cell("ViewProArea"; 0; 0); "firstName")
    VP SET BINDING PATH(VP Cell("ViewProArea"; 1; 0); "lastName")

    See also

    VP Get binding path
    VP Get data context
    VP SET DATA CONTEXT

    VP SET BOOLEAN VALUE

    VP SET BOOLEAN VALUE ( rangeObj : Object ; boolValue : Boolean)

    ParameterTypeDescription
    rangeObjObject->Range object
    boolValueBoolean->Boolean value to set

    Description

    The VP SET BOOLEAN VALUE command assigns a specified boolean value to a designated cell range.

    In rangeObj, pass a range of the cell(s) (created for example with VP Cell or VP Column) whose value you want to specify. If rangeObj includes multiple cells, the value specified will be repeated in each cell.

    The boolValue parameter allows you to pass the boolean value (True or False) that will be assigned to the rangeObj.

    Example

    //Set the cell value as False
    VP SET BOOLEAN VALUE(VP Cell("ViewProArea";3;2);False)

    See also

    VP SET VALUE

    VP SET BORDER

    VP SET BORDER ( rangeObj : Object ; borderStyleObj : Object ; borderPosObj : Object )

    ParameterTypeDescription
    rangeObjObject->Range object
    borderStyleObjObject->Object containing border line style
    borderPosObjObject->Object containing border placement

    Description

    The VP SET BORDER command applies the border style(s) defined in borderStyleObj and borderPosObj to the range defined in the rangeObj.

    In rangeObj, pass a range of cells where the border style will be applied. If the rangeObj contains multiple cells, borders applied with VP SET BORDER will be applied to the rangeObj as a whole (as opposed to the VP SET CELL STYLE command which applies borders to each cell of the rangeObj). If a style sheet has already been applied, VP SET BORDER will override the previously applied border settings for the rangeObj.

    The borderStyleObj parameter allows you to define the style for the lines of the border. The borderStyleObj supports the following properties:

    PropertyTypeDescriptionPossible values
    colortextDefines the color of the border. Default = black.CSS color "#rrggbb" syntax (preferred syntax), CSS color "rgb(r,g,b)" syntax (alternate syntax), CSS color name (alternate syntax)
    styleIntegerDefines the style of the border. Default = empty.
  • vk line style dash dot
  • vk line style dash dot dot
  • vk line style dashed
  • vk line style dotted
  • vk line style double
  • vk line style empty
  • vk line style hair
  • vk line style medium
  • vk line style medium dash dot
  • vk line style medium dash dot dot
  • vk line style medium dashed
  • vk line style slanted dash dot
  • vk line style thick
  • vk line style thin
  • You can define the position of the borderStyleObj (i.e., where the line is applied) with the borderPosObj:

    PropertyTypeDescription
    allbooleanBorder line style applied to all borders.
    leftbooleanBorder line style applied to left border.
    topbooleanBorder line style applied to top border.
    rightbooleanBorder line style applied to right border.
    bottombooleanBorder line style applied to bottom border.
    outlinebooleanBorder line style applied to outer borders only.
    insidebooleanBorder line style applied to inner borders only.
    innerHorizontalbooleanBorder line style applied to inner horizontal borders only.
    innerVerticalbooleanBorder line style applied to inner vertical borders only.

    Example 1

    This code produces a border around the entire range:

    $border:=New object("color";"red";"style";vk line style thick)
    $option:=New object("outline";True)
    VP SET BORDER(VP Cells("ViewProArea";1;1;3;3);$border;$option)

    Example 2

    This code demonstrates the difference between VP SET BORDER and setting borders with the VP SET CELL STYLE command:

    // Set borders using VP SET BORDER
    $border:=New object("color";"red";"style";vk line style thick)
    $option:=New object("outline";True)
    VP SET BORDER(VP Cells("ViewProArea";1;1;3;3);$border;$option)

    // // Set borders using VP SET CELL STYLE
    $cellStyle:=New object
    $cellStyle.borderBottom:=New object("color";"blue";"style";vk line style thick)
    $cellStyle.borderRight:=New object("color";"blue";"style";vk line style thick)
    VP SET CELL STYLE(VP Cells("ViewProArea";4;4;3;3);$cellStyle)

    See also

    VP SET CELL STYLE

    VP SET CELL STYLE

    VP SET CELL STYLE ( rangeObj : Object ; styleObj : Object)

    ParameterTypeDescription
    rangeObjObject->Range object
    styleObjObject->Style object

    Description

    The VP SET CELL STYLE command applies the style(s) defined in the styleObj to the cells defined in the rangeObj.

    In rangeObj, pass a range of cells where the style will be applied. If the rangeObj contains multiple cells, the style is applied to each cell.

    Borders applied with VP SET CELL STYLE will be applied to each cell of the rangeObj, as opposed to the VP SET BORDER command which applies borders to the rangeObj as a whole.

    The styleObj parameter lets you pass an object containing style settings. You can use an existing style sheet or create a new style. If the styleObj contains both an existing style sheet and additional style settings, the existing style sheet is applied first, followed by the additional settings.

    To remove a style and revert to the default style settings (if any), pass a NULL value:

    • giving the styleObj parameter a NULL value will remove any style settings from the rangeObj,
    • giving an attribute a NULL value will remove this specific attribute from the rangeObj.

    For more information about style objects and style sheets, see the Style Objects paragraph.

    Example

    $style:=New object
    $style.font:="8pt Arial"
    $style.backColor:="Azure"
    $style.foreColor:="red"
    $style.hAlign:=1
    $style.isVerticalText:=True
    $style.borderBottom:=New object("color";"#800080";"style";vk line style thick)
    $style.backgroundImage:=Null //remove a specific attribute

    VP SET CELL STYLE(VP Cell("ViewProArea";1;1);$style)

    See also

    VP ADD STYLESHEET
    VP Font to object
    VP Get cell style
    VP Object to font
    VP SET BORDER
    VP SET DEFAULT STYLE

    VP SET COLUMN ATTRIBUTES

    VP SET COLUMN ATTRIBUTES ( rangeObj : Object ; propertyObj : Object)

    ParameterTypeDescription
    rangeObjObject->Range object
    propertyObjObject->Object containing column properties

    Description

    The VP SET COLUMN ATTRIBUTES command applies the attributes defined in the propertyObj to the columns in the rangeObj.

    In rangeObj, pass an object containing a range. If the range contains both columns and rows, attributes are applied only to the columns.

    The propertyObj parameter lets you specify the attributes to apply to the columns in the rangeObj. These attributes are:

    PropertyTypeDescription
    widthnumberColumn width expressed in pixels
    pageBreakbooleanTrue to insert a page break before the first column of the range, else false
    visiblebooleanTrue if the column is visible, else false
    resizablebooleanTrue if the column can be resized, else false
    headertextColumn header text

    Example

    To change the size of the second column and set the header, you write:

    C_OBJECT($column;$properties)

    $column:=VP Column("ViewProArea";1) //column B
    $properties:=New object("width";100;"header";"Hello World")

    VP SET COLUMN ATTRIBUTES($column;$properties)

    See also

    VP Column
    VP Get column attributes
    VP Get row attributes
    VP SET ROW ATTRIBUTES

    VP SET COLUMN COUNT

    VP SET COLUMN COUNT ( vpAreaName : Text , columnCount : Integer { , sheet : Integer } )

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    columnCountInteger->Number of columns
    sheetInteger->Sheet index (current sheet if omitted)

    Description

    The VP SET COLUMN COUNT command defines the total number of columns in vpAreaName.

    In vpAreaName, pass the name of the 4D View Pro area. If you pass a name that does not exist, an error is returned.

    Pass the total number of columns in the columnCount parameter. columnCount must be greater than 0.

    In the optional sheet parameter, you can designate a specific spreadsheet where the columnCount will be applied (counting begins at 0). If omitted, the current spreadsheet is used by default. You can explicitly select the current spreadsheet with the following constant:

    • vk current sheet

    Example

    The following code defines five columns in the 4D View Pro area:

    VP SET COLUMN COUNT("ViewProArea";5)

    See also

    VP Get column count
    VP Get row count
    VP SET ROW COUNT

    VP SET CURRENT SHEET

    VP SET CURRENT SHEET ( vpAreaName : Text ; sheet : Integer)

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    sheetInteger<-Index of the new current sheet

    Description

    The VP SET CURRENT SHEET command sets the current sheet in vpAreaName . The current sheet is the selected sheet in the document.

    In vpAreaName, pass the name of the 4D View Pro area.

    In sheet, pass the index of the sheet to be set as current sheet. If the index passed is inferior to 0 or exceeds the number of sheets, the command does nothing.

    Indexing starts at 0.

    Example

    The document's current sheet is the first sheet:

    first-sheet-selected

    Set the current sheet to the third sheet:

    VP SET CURRENT SHEET("ViewProArea";2)

    See also

    VP Get current sheet

    VP SET CUSTOM FUNCTIONS

    VP SET CUSTOM FUNCTIONS ( vpAreaName : Text ; formulaObj : Object )

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    formulaObjObject->Formula object

    Description

    The VP SET CUSTOM FUNCTIONS command designates the 4D formulas that can be called directly from 4D View Pro formulas. Because custom functions are not stored in the document,VP SET CUSTOM FUNCTIONS must be executed in the On Load form event.

    The formulas specified by VP SET CUSTOM FUNCTIONS appear in a pop-up menu when the first letter of their name is entered. See the Formulas and Functions page.

    If VP SET CUSTOM FUNCTIONS is called multiple times for the same area, in the same session, only the last call is taken into account.

    Pass the name of the 4D View Pro area in vpAreaName. If you pass a name that does not exist, an error is returned.

    In the formulaObj parameter, pass an object containing the 4D formulas that can be called from 4D View Pro formulas as well as additional properties. Each customFunction property passed in formulaObj becomes the name of a function in the 4D View Pro area.

    PropertyTypeDescription
    <customFunction>ObjectCustom function definition. <customFunction> defines the name of the custom function to display in 4D View Pro formulas (no spaces allowed)
    formulaObject4D formula object (mandatory). See the Formula command.
    parametersCollection of objectsCollection of parameters (in the order they are defined in the formula)
    [ ].nameTextName of parameter to display in 4D View Pro
    [ ].typeNumberType of the parameter. Supported types:
  • Is Boolean
  • Is date
  • Is Integer
  • Is object
  • Is real
  • Is text
  • Is time
  • If type is omitted or if the default value (-1) is passed, the value is automatically sent with its type, except date or time values which are sent as an object (see Parameters section).If type is Is object, the object has the same structure as the object returned by VP Get value.
    summaryTextFormula description to display in 4D View Pro
    minParamsNumberMinimum number of parameters
    maxParamsNumberMaximum number of parameters. Passing a number higher than the length of parameters allows declaring "optional" parameters with default type

    WARNING

    • As soon as VP SET CUSTOM FUNCTIONS is called, the methods allowed by the VP SET ALLOWED METHODS command (if any) are ignored in the 4D View Pro area.
    • As soon as VP SET CUSTOM FUNCTIONS is called, the functions based upon SET TABLE TITLES and SET FIELD TITLES commands are ignored in the 4D View Pro area.

    Example

    You want to use formula objects in a 4D View Pro area to add numbers, retrieve a customer's last name and gender:

    Case of
    :(FORM Event.code=On Load)

    var $o : Object
    $o:=New object

    // Define "addnum" function from a method named "addnum"
    $o.addnum:=New object
    $o.addnum.formula:=Formula(addnum)
    $o.addnum.parameters:=New collection
    $o.addnum.parameters.push(New object("name";"num1";"type";Is Integer))
    $o.addnum.parameters.push(New object("name";"num2";"type";Is Integer))

    // Define "ClientLastName" function from a database field
    $o.ClientLastName:=New object
    $o.ClientLastName.formula:=Formula([Customers]lastname)
    $o.ClientLastName.summary:="Lastname of the current client"

    // Define "label" function from a 4D expression with one parameter
    $o.label:=New object
    $o.label.formula:=Formula(ds.Customers.get($1).label)
    $o.label.parameters:=New collection
    $o.label.parameters.push(New object("name";"ID";"type";Is Integer))

    // Define "Title" function from a variable named "Title"
    $o.Title:=New object
    $o.Title.formula:=Formula(Title)

    VP SET CUSTOM FUNCTIONS("ViewProArea";$o)

    End case

    See also

    VP SET ALLOWED METHODS

    VP SET DATA CONTEXT

    History
    VersionChanges
    v19 R5Added

    VP SET DATA CONTEXT ( vpAreaName : Text ; dataObj : Object {; options : Object } {; sheet : Integer} )
    VP SET DATA CONTEXT ( vpAreaName : Text ; dataColl : Collection ; {options : Object } {; sheet : Integer} )

    ParameterTypeDescription
    vpAreaNameObject->4D View Pro area form object name
    dataObjObject->Data object to load in the data context
    dataCollCollection->Data collection to load in the data context
    optionsObject->Additional options
    sheetInteger->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):

    PropertyTypeDescription
    valueInteger, Real, Boolean, Text, Date, NullValue to put in the context
    timeRealTime value (in seconds) to put in the context

    In options, you can pass an object that specifies additional options. Possible properties are:

    PropertyTypeDescription
    resetObjectTrue to reset the sheet's contents before loading the new context, False (default) otherwise.
    autoGenerateColumnsObjectOnly 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:
    • If dataColl is a collection of objects, attribute names are used as column titles (see example 2).
    • If dataColl contains subcollections of scalar values, each subcollection defines the values in a row (see example 3). The first subcollection determines how many columns are created.

    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:

    See also

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

    VP SET DATE TIME VALUE

    VP SET DATE TIME VALUE ( rangeObj : Object ; dateValue : Date ; timeValue : Time {; formatPattern : Text } )

    ParameterTypeDescription
    rangeObjObject->Range object
    dateValueDate->Date value to set
    timeValueTime->Time value to set
    formatPatternText->Format of value

    Description

    The VP SET DATE TIME VALUE command assigns a specified date and time value to a designated cell range.

    In rangeObj, pass a range of the cell(s) (created for example with VP Cell or VP Column) whose value you want to specify. If rangeObj includes multiple cells, the value specified will be repeated in each cell.

    The dateValue parameter specifies a date value to be assigned to the rangeObj.

    The timeValue parameter specifies a time value (expressed in seconds) to be assigned to the rangeObj.

    The optional formatPattern defines a pattern for the dateValue and timeValue parameters. For information on patterns and formatting characters, please refer to the Date and time formats section.

    Example

    //Set the cell value as the current date and time
    VP SET DATE TIME VALUE(VP Cell("ViewProArea";6;2);Current time;Current date;vk pattern full date time)

    //Set the cell value as the 18th of December
    VP SET DATE TIME VALUE(VP Cell("ViewProArea";3;9);!2024-12-18!;?14:30:10?;vk pattern sortable date time)

    See also

    4D View Pro cell format
    VP SET DATE VALUE
    VP SET TIME VALUE
    VP SET VALUE

    VP SET DATE VALUE

    VP SET DATE VALUE ( rangeObj : Object ; dateValue : Date { ; formatPattern : Text } )

    ParameterTypeDescription
    rangeObjObject->Range object
    dateValueDate->Date value to set
    formatPatternText->Format of value

    Description

    The VP SET DATE VALUE command assigns a specified date value to a designated cell range.

    In rangeObj, pass a range of the cell(s) whose value you want to specify. If rangeObj includes multiple cells, the value specified will be repeated in each cell.

    The dateValue parameter specifies a date value to be assigned to the rangeObj.

    The optional formatPattern defines a pattern for the dateValue parameter. Pass any custom format or you can use one of the following constants:

    ConstantDescriptionDefault US pattern
    vk pattern long dateISO 8601 format for the full date"dddd, dd MMMM yyyy"
    vk pattern month dayISO 8601 format for the month and day"MMMM dd"
    vk pattern short dateAbbreviated ISO 8601 format for the date"MM/dd/yyyy"
    vk pattern year monthISO 8601 format for the month and year"yyyy MMMM"

    For information on patterns and formatting characters, please refer to the Date and time formats section.

    Example

    //Set the cell value to the current date
    VP SET DATE VALUE(VP Cell("ViewProArea";4;2);Current date))

    //Set the cell value to a specific date with a designated format
    VP SET DATE VALUE(VP Cell("ViewProArea";4;4);Date("12/25/94");"d/m/yy ")
    VP SET DATE VALUE(VP Cell("ViewProArea";4;6);!2005-01-15!;vk pattern month day)

    See also

    4D View Pro cell format
    VP SET DATE TIME VALUE
    VP SET VALUE

    VP SET DEFAULT STYLE

    VP SET DEFAULT STYLE ( vpAreaName : Text ; styleObj : Object { ; sheet : Integer } )

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    styleObjObject->Style object
    sheetInteger->Sheet index (default = current sheet)

    Description

    The VP SET DEFAULT STYLE command defines the style in the styleObj as the default style for a sheet.

    In vpAreaName, pass the name of the 4D View Pro area. If you pass a name that does not exist, an error is returned.

    The styleObj lets you pass an object containing style settings. You can use an existing style sheet or you can create a new style. For more information, see the Style objects paragraph.

    In the optional sheet parameter, you can designate a specific spreadsheet where the style will be defined. If omitted, the current spreadsheet is used by default. You can explicitly select the current spreadsheet with the following constant:

    • vk current sheet

    Example

    $style:=New object
    $style.hAlign:=vk horizontal align left
    $style.font:="12pt papyrus"
    $style.backColor:="#E6E6FA" //light purple color

    VP SET DEFAULT STYLE("myDoc";$style)

    See also

    VP ADD STYLESHEET
    VP Font to object
    VP Get default style
    VP Object to font
    VP SET BORDER
    VP SET CELL STYLE

    VP SET FIELD

    VP SET FIELD ( rangeObj : Object ; field : Pointer { ; formatPattern : Text } )

    ParameterTypeDescription
    rangeObjObject->Range object
    fieldPointer->Reference to field in virtual structure
    formatPatternText->Format of field

    Description

    The VP SET FIELD command assigns a 4D database virtual field to a designated cell range.

    In rangeObj, pass a range of the cell(s) whose value you want to specify. If rangeObj includes multiple cells, the specified field will be linked in each cell.

    The field parameter specifies a 4D database virtual field to be assigned to the rangeObj. The virtual structure name for field can be viewed in the formula bar. If any of the cells in rangeObj have existing content, it will be replaced by field.

    The optional formatPattern defines a pattern for the field parameter. You can pass any valid custom format.

    Example

    VP SET FIELD(VP Cell("ViewProArea";5;2);->[TableName]Field)

    See also

    VP SET VALUE

    VP SET FORMULA

    VP SET FORMULA ( rangeObj : Object ; formula : Text { ; formatPattern : Text } )

    ParameterTypeDescription
    rangeObjObject->Range object
    formulaText->Formula or 4D method
    formatPatternText->Format of field

    Description

    The VP SET FORMULA command assigns a specified formula or 4D method to a designated cell range.

    In rangeObj, pass a range of the cell(s) (created for example with VP Cell or VP Column) whose value you want to specify. If rangeObj includes multiple cells, the formula specified will be linked in each cell.

    The formula parameter specifies a formula or 4D method name to be assigned to the rangeObj.

    If the formula is a string, use the period . as numerical separator and the comma , as parameter separator. If a 4D method is used, it must be allowed with the VP SET ALLOWED METHODS command.

    The optional formatPattern defines a pattern for the formula.

    You remove the formula in rangeObj by replacing it with an empty string ("").

    Example 1

    VP SET FORMULA(VP Cell("ViewProArea";5;2);"SUM($A$1:$C$10)")

    Example 2

    To remove the formula:

    VP SET FORMULA(VP Cell("ViewProArea";5;2);"")

    Example 3

    VP SET FORMULA($range;"SUM(A1,B7,C11)") //"," to separate parameters

    See also

    Cell format
    VP Get Formula
    VP SET FORMULAS
    VP SET VALUE

    VP SET FORMULAS

    VP SET FORMULAS ( rangeObj : Object ; formulasCol : Collection )

    ParameterTypeDescription
    rangeObjObject->Cell range object
    formulasColCollection->Collection of formulas

    Description

    The VP SET FORMULAS command assigns a collection of formulas starting at the specified cell range.

    In rangeObj, pass a range of the cell (created with VP Cell) whose formula you want to specify. If rangeObj includes multiple ranges, only the first range is used.

    The formulasCol is a two-dimensional collection:

    • The first-level collection contains subcollections of formulas. Each subcollection defines a row.
    • Each subcollection defines cell values for the row. Values must be text elements containing the formulas to assign to the cells.

    If the formula is a string, use the period . as numerical separator and the comma , as parameter separator. If a 4D method is used, it must be allowed with the VP SET ALLOWED METHODS command.

    You remove the formulas in rangeObj by replacing them with an empty string ("").

    Example 1

    $formulas:=New collection
    $formulas.push(New collection("MAX(B11,C11,D11)";"myMethod(G4)")) // First row
    $formulas.push(New collection("SUM(B11:D11)";"AVERAGE(B11:D11)")) // Second row


    VP SET FORMULAS(VP Cell("ViewProArea";6;3);$formulas) // Set the cells with the formulas

    myMethod:

    $0:=$1*3.33

    Example 2

    To remove formulas:

    $formulas:=New collection
    $formulas.push(New collection("";"")) // first collection
    $formulas.push(New collection("";"")) // second collection

    VP SET FORMULAS(VP Cell("ViewProArea";0;0);$formulas) // Assign to cells

    See also

    VP Get Formulas
    VP GET VALUESVP SET FORMULA
    VP SET VALUES

    VP SET FROZEN PANES

    VP SET FROZEN PANES ( vpAreaName : Text ; paneObj : Object { ; sheet : Integer } )

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    paneObjObject->Object containing frozen column and row information
    sheetInteger->Sheet index (current sheet if omitted)

    Description

    The VP SET FROZEN PANES command sets the frozen status of the columns and rows in the paneObj so they are always displayed in the vpAreaName. Frozen columns and rows are fixed in place and do not move when the rest of the document is scrolled. A solid line is displayed to indicate that columns and rows are frozen. The location of the line depends on where the frozen column or row is on the sheet:

    • Columns on the left or right: For columns on the left of the sheet, the line is displayed on the right side of the last frozen column. For columns on the right side of the sheet, the line is displayed on the left side of the first frozen column.
    • Rows on the top or bottom: For rows at the top of the sheet, the line is displayed below the last frozen row. For rows at the bottom of the sheet, the line is displayed above the first frozen row.

    In vpAreaName, pass the name of the 4D View Pro area. If you pass a name that does not exist, an error is returned.

    You can pass an object defining the columns and rows to freeze in the paneObj parameter. Setting the value of any of the column or row properties equal to zero resets (unfreezes) the property. If a property is set to less than zero, the command does nothing. You can pass:

    PropertyTypeDescription
    columnCountIntegerThe number of frozen columns on the left of the sheet
    trailingColumnCountIntegerThe number of frozen columns on the right of the sheet
    rowCountIntegerThe number of frozen rows on the top of the sheet
    trailingRowCountIntegerThe number of frozen rows on the bottom of the sheet

    In the optional sheet parameter, you can designate a specific spreadsheet where the range will be defined (counting begins at 0). If omitted, the current spreadsheet is used by default. You can explicitly select the current spreadsheet with the following constant:

    • vk current sheet

    Example

    You want to freeze the first three columns on the left, two columns on the right, and the first row:

    C_OBJECT($panes)

    $panes:=New object
    $panes.columnCount:=3
    $panes.trailingColumnCount:=2
    $panes.rowCount:=1

    VP SET FROZEN PANES("ViewProArea";$panes)

    See also

    VP Get frozen panes

    VP SET NUM VALUE

    VP SET NUM VALUE ( rangeObj : Object ; numberValue : Number { ; formatPattern : Text } )

    ParameterTypeDescription
    rangeObjObject->Range object
    numberValueNumber->Number value to set
    formatPatternText->Format of value

    Description

    The VP SET NUM VALUE command assigns a specified numeric value to a designated cell range.

    In rangeObj, pass a range of the cell(s) (created for example with VP Cell or VP Column) whose value you want to specify. If rangeObj includes multiple cells, the value specified will be repeated in each cell.

    The numberValue parameter specifies a numeric value to be assigned to the rangeObj.

    The optional formatPattern defines a pattern for the numberValue parameter.

    Example

    //Set the cell value to 2
    VP SET NUM VALUE(VP Cell("ViewProArea";3;2);2)

    //Set the cell value and format it in dollars
    VP SET NUM VALUE(VP Cell("ViewProArea";3;2);12.356;"_($* #,##0.00_)")

    See also

    Cell format
    VP SET VALUE

    VP SET PRINT INFO

    VP SET PRINT INFO ( vpAreaName : Text ; printInfo : Object { ; sheet : Integer } )

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area name
    printInfoObject->Object containing printing attributes
    sheetInteger->Sheet index (current sheet if omitted)

    Description

    The VP SET PRINT INFO command defines the attributes to use when printing the vpAreaName.

    Pass the name of the 4D View Pro area to print in vpAreaName. If you pass a name that does not exist, an error is returned.

    You can pass an object containing definitions for various printing attributes in the printInfo parameter. To view the full list of the available attributes, see Print Attributes.

    In the optional sheet parameter, you can designate a specific spreadsheet to print (counting begins at 0). If omitted, the current spreadsheet is used by default. You can explicitly select the current spreadsheet with the following constant:

    • vk current sheet

    Example

    The following code will print a 4D View Pro area to a PDF document:

    var $printInfo : Object

    //declare print attributes object
    $printInfo:=New object

    //define print attributes
    $printInfo.headerCenter:="&BS.H.I.E.L.D. &A Sales Per Region"
    $printInfo.firstPageNumber:=1
    $printInfo.footerRight:="page &P of &N"
    $printInfo.orientation:=vk print page orientation landscape
    $printInfo.centering:=vk print centering horizontal
    $printInfo.columnStart:=0
    $printInfo.columnEnd:=8
    $printInfo.rowStart:=0
    $printInfo.rowEnd:=24

    $printInfo.showGridLine:=True

    //Add corporate logo
    $printInfo.headerLeftImage:=logo.png
    $printInfo.headerLeft:="&G"

    $printInfo.showRowHeader:=vk print visibility hide
    $printInfo.showColumnHeader:=vk print visibility hide
    $printInfo.fitPagesWide:=1
    $printInfo.fitPagesTall:=1

    //print PDF document
    VP SET PRINT INFO ("ViewProArea";$printInfo)

    //export the PDF
    VP EXPORT DOCUMENT("ViewProArea";"Sales2018.pdf";New object("formula";Formula(ALERT("PDF ready!"))))

    The PDF:

    See also

    4D View Pro print attributes
    VP Convert to picture
    VP Get print info
    VP PRINT

    VP SET ROW ATTRIBUTES

    VP SET ROW ATTRIBUTES ( rangeObj : Object ; propertyObj : Object )

    ParameterTypeDescription
    rangeObjObject->Range of rows
    propertyObjObject->Object containing row properties

    Description

    The VP SET ROW ATTRIBUTES command applies the attributes defined in the propertyObj to the rows in the rangeObj.

    In the rangeObj, pass an object containing a range. If the range contains both columns and rows, attributes are applied only to the rows.

    The propertyObj parameter lets you specify the attributes to apply to the rows in the rangeObj. These attributes are:

    PropertyTypeDescription
    heightnumberRow height expressed in pixels
    pageBreakbooleanTrue to insert a page break before the first row of the range, else false
    visiblebooleanTrue if the row is visible, else false
    resizablebooleanTrue if the row can be resized, else false
    headertextRow header text

    Example

    You want to change the size of the second row and set the header:

    var $row; $properties : Object

    $row:=VP Row("ViewProArea";1)
    $properties:=New object("height";75;"header";"June")

    VP SET ROW ATTRIBUTES($row;$properties)

    See also

    VP Get row attributes
    VP get column attributes
    VP SET ROW ATTRIBUTES

    VP SET ROW COUNT

    VP SET ROW COUNT ( vpAreaName : Text ; rowCount : Integer { ; sheet : Integer } )

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    rowCountInteger->Number of rows
    sheetInteger->Sheet index (current sheet if omitted)

    Description

    The VP SET ROW COUNT command defines the total number of rows in vpAreaName.

    In vpAreaName, pass the name of the 4D View Pro area. If you pass a name that does not exist, an error is returned.

    Pass the total number of rows in the rowCount parameter. rowCount must be greater than 0.

    In the optional sheet parameter, you can designate a specific spreadsheet where the rowCount will be applied (counting begins at 0). If omitted, the current spreadsheet is used by default. You can explicitly select the current spreadsheet with the following constant:

    • vk current sheet

    Example

    The following code defines five rows in the 4D View Pro area:

    VP SET ROW COUNT("ViewProArea";5)

    See also

    VP Get column count
    VP get row-count
    VP SET COLUMN COUNT

    VP SET SELECTION

    VP SET SELECTION ( rangeObj : Object )

    ParameterTypeDescription
    rangeObjObject->Range object of cells

    Description

    The VP SET SELECTION command defines the specified cells as the selection and the first cell as the active cell.

    In rangeObj, pass a range object of cells to designate as the current selection.

    Example

    $currentSelection:=VP Combine ranges(VP Cells("myVPArea";3;2;1;6);VP Cells("myVPArea";5;7;1;7))
    VP SET SELECTION($currentSelection)

    See also

    VP Get active cell
    VP Get selection
    VP RESET SELECTION
    VP SET ACTIVE CELL
    VP ADD SELECTION
    VP SHOW CELL

    VP SET SHEET COUNT

    VP SET SHEET COUNT ( vpAreaName : Text ; number : Integer )

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    numberInteger->Number of sheets

    Description

    The VP SET SHEET COUNT command sets the number of sheets in vpAreaName.

    In number, pass a number corresponding to how many sheets the document will contain after the command is executed.

    Warning: The command will delete sheets if the previous amount of sheets in your document is superior to the number passed. For example, if there are 5 sheets in your document and you set the sheet count to 3, the command will delete sheets number 4 and 5.

    Example

    The document currently has one sheet:

    To set the number of sheets to 3:

    VP SET SHEET COUNT("ViewProArea";3)

    See also

    VP Get sheet count

    VP SET SHEET NAME

    VP SET SHEET NAME ( vpAreaName : Text ; name : Text {; sheet: Integer} )

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    nameText->New name for the sheet
    sheetInteger->Index of the sheet to be renamed

    Description

    The VP SET SHEET NAME command renames a sheet in the document loaded in vpAreaName.

    In vpAreaName, pass the name of the 4D View Pro area.

    In name, pass a new name for the sheet.

    In sheet, pass the index of the sheet to rename.

    Indexing starts at 0.

    If no sheet is passed, the command renames the current sheet.

    The new name cannot contain the following characters: *, :, [, ], ?,\,/

    The command does nothing if:

    • the new name contains forbidden characters
    • the new name's value is blank
    • the new name already exists
    • the passed sheet index does not exist

    Example

    Set the third sheet's name to "Total first quarter":

    VP SET SHEET NAME("ViewProArea";"Total first quarter";2)

    VP SET SHEET OPTIONS

    VP SET SHEET OPTIONS ( vpAreaName : Text; sheetOptions : Object { ; sheet : Integer} )

    ParameterTypeDescription
    vpAreaNameObject->4D View Pro area name
    sheetOptionsObject->Sheet option(s) to set
    sheetObject->Sheet index (current sheet if omitted)

    Description

    The VP SET SHEET OPTIONS command allows defining various sheet options of the vpAreaName area.

    Pass the name of the 4D View Pro area in vpAreaName. If you pass a name that does not exist, an error is returned.

    Pass an object containing definitions for the options to set in the sheetOptions parameter. To view the full list of the available options, see the Sheet Options paragraph.

    In the optional sheet parameter, you can designate a specific spreadsheet (counting begins at 0). If omitted, the current spreadsheet is used by default. You can explicitly select the current spreadsheet with the following constant:

    • vk current sheet

    Example 1

    You want to protect all cells except the range C5:D10:

    // Activate protection on the current sheet
    var $options : Object

    $options:=New object
    $options.isProtected:=True
    VP SET SHEET OPTIONS("ViewProArea";$options)

    // mark cells C5:D10 as 'unlocked'
    VP SET CELL STYLE(VP Cells("ViewProArea";2;4;2;6);New object("locked";False))

    Example 2

    You need to protect your document while your users can resize rows and columns:

    var $options : Object

    $options:=New object
    // Activate protection
    $options.isProtected:=True
    $options.protectionOptions:=New object
    // Allow user to resize rows
    $options.protectionOptions.allowResizeRows=True;
    // Allow user to resize columns
    $options.protectionOptions.allowResizeColumns=True;

    // Apply protection on the current sheet
    VP SET SHEET OPTIONS("ViewProArea";$options)

    Example 3

    You want to customize the colors of your sheet tabs, frozen lines, grid lines, selection background and selection border:

    var $options : Object

    $options:=New object
    // Customize color of Sheet 1 tab
    $options.sheetTabColor:="Black"
    $options.gridline:=New object("color";"Purple")
    $options.selectionBackColor:="rgb(255,128,0,0.4)"
    $options.selectionBorderColor:="Yellow"
    $options.frozenlineColor:="Gold"

    VP SET SHEET OPTIONS("ViewProArea";$options;0)

    // Customize color of Sheet 2 tab
    $options.sheetTabColor:="red"

    VP SET SHEET OPTIONS("ViewProArea";$options;1)

    // Customize color of Sheet 3 tab
    $options.sheetTabColor:="blue"

    VP SET SHEET OPTIONS("ViewProArea";$options;2)

    Result:

    Example 4

    You want to hide the grid lines as well as the row and column headers.

    var $options : Object

    $options:=New object
    $options.gridline:=New object()
    $options.gridline.showVerticalGridline:=False
    $options.gridline.showHorizontalGridline:=False
    $options.rowHeaderVisible:=False
    $options.colHeaderVisible:=False

    VP SET SHEET OPTIONS("ViewProArea";$options)

    Result:

    See also

    4D View Pro sheet options
    VP Get sheet options

    VP SET SHOW PRINT LINES

    VP SET SHOW PRINT LINES ( vpAreaName : Text {; visible : Boolean}{; sheet : Integer} )

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    visibleBoolean->Print lines displayed if True (default), hidden if False
    sheetInteger->Sheet index (current sheet if omitted)

    Description

    The VP SET SHOW PRINT LINES command sets whether to display print preview lines in a spreadsheet..

    In vpAreaName, pass the name of the 4D View Pro area.

    In visible, pass True to display the print lines, and False to hide them. True is passed by default.

    In sheet, pass the index of the target sheet. If no index is specified, the command applies to the current sheet.

    Indexing starts at 0.

    The position of a spreadsheet's print lines varies according to that spreadsheet's page breaks.

    Example

    The following code displays print lines in a document's second sheet:

    VP SET SHOW PRINT LINES("ViewProArea";True;1)

    set-show-print-lines

    With a page break:

    set-show-print-lines-with-page-break

    See also

    4D Get show print lines

    VP SET TABLE COLUMN ATTRIBUTES

    History
    VersionChanges
    v19 R7Added

    VP SET TABLE COLUMN ATTRIBUTES ( vpAreaName : Text ; tableName : Text ; column : Integer ; attributes : Object {; sheet : Integer } )

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    tableNameText->Table name
    columnInteger->Index of the column in the table
    attributesObject->Attribute(s) to apply to the column
    sheetInteger->Sheet index (current sheet if omitted)

    Description

    The VP SET TABLE COLUMN ATTRIBUTES command applies the defined attributes to the column in the tableName.

    In vpAreaName, pass the name of the 4D View Pro area.

    In the attributes parameter, pass an object that contains the properties to set:

    PropertyTypeDescription
    dataFieldtextTable column's property name in the data context.
    nametextTable column's name. Must be unique in the table. If this name already used by another column, it is not applied and a default name is automaticaly used.
    formulatextSets the formula for each column cell. See Structured Reference Formulas in the SpreadJS documentation
    footerTexttextColumn footer value.
    footerFormulatextColumn footer formula.
    filterButtonVisiblebooleanSets whether the table column's filter button is displayed (default is True when the table is created).

    In sheet, pass the index of the target sheet. If no index is specified or if you pass -1, the command applies to the current sheet.

    Indexing starts at 0.

    If tableName is not found or if column is higher than the number of columns, the command does nothing.

    Example

    You create a table with a data context:

    var $context;$options : Object

    $context:=New object()
    $context.col:=New collection()
    $context.col.push(New object("name"; "Smith"; "firstname"; "John"; "salary"; 10000))
    $context.col.push(New object("name"; "Wesson"; "firstname"; "Jim"; "salary"; 50000))
    $context.col.push(New object("name"; "Gross"; "firstname"; "Maria"; "salary"; 10500))
    VP SET DATA CONTEXT("ViewProArea"; $context)

    //Define the columns for the table
    $options:=New object()
    $options.tableColumns:=New collection()
    $options.tableColumns.push(New object("name"; "Last Name"; "dataField"; "name"))
    $options.tableColumns.push(New object("name"; "Salary"; "dataField"; "salary"))

    VP CREATE TABLE(VP Cells("ViewProArea"; 1; 1; 2; 3); "PeopleTable"; "col"; $options)

    Then you want to insert a column with data from the data context and hide some filter buttons:

        //insert a column
    VP INSERT TABLE COLUMNS("ViewProArea"; "PeopleTable"; 1; 1)

    var $param : Object
    $param:=New object()
    // Bind the column to the firstname field from the datacontext
    $param.dataField:="firstname"
    // Change the default name of the column to "First name"
    // and hide the filter button
    $param.name:="First Name"
    $param.filterButtonVisible:=False

    VP SET TABLE COLUMN ATTRIBUTES("ViewProArea"; "PeopleTable"; 1; $param)

    // Hide the filter button of the first column
    VP SET TABLE COLUMN ATTRIBUTES("ViewProArea"; "PeopleTable"; 0; \
    New object("filterButtonVisible"; False))

    See also

    VP CREATE TABLE
    VP Find table
    VP Get table column attributes
    VP RESIZE TABLE

    VP SET TABLE THEME

    History
    VersionChanges
    v19 R8Added

    VP SET TABLE THEME ( vpAreaName : Text ; tableName : Text ; options : cs.ViewPro.TableTheme )

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    tableNameText->Table name
    optionscs.ViewPro.TableTheme->Table theme properties to modify

    Description

    The VP SET TABLE THEME command modifies the current theme of the tableName.

    In vpAreaName, pass the name of the 4D View Pro area and in tableName, the name of the table to modify.

    In the options parameter, pass an object of the cs.ViewPro.TableTheme class that contains the theme properties to modify.

    Example 1

    You want to set a predefined theme to a table:

    var $param : cs.ViewPro.TableTheme
    $param:=cs.ViewPro.TableTheme.new()
    $param.theme:="medium2"
    VP SET TABLE THEME("ViewProArea"; "myTable"; $param)

    Example 2

    You want to have this alternate column rendering:

    var $param : cs.ViewPro.TableTheme
    $param:=cs.ViewPro.TableTheme.new()

    // Enable the band column rendering
    $param.bandColumns:=True
    $param.bandRows:=False

    // Create the theme object with header and column styles
    $param.theme:=cs.ViewPro.TableThemeOptions.new()

    var $styleHeader; $styleColumn; $styleColumn2 : cs.ViewPro.TableStyle

    $styleHeader:=cs.ViewPro.TableStyle.new()
    $styleHeader.backColor:="Gold"
    $styleHeader.foreColor:="#03045E"
    $param.theme.headerRowStyle:=$styleHeader

    $styleColumn1:=cs.ViewPro.TableStyle.new()
    $styleColumn1.backColor:="SkyBlue"
    $styleColumn1.foreColor:="#03045E"
    $param.theme.firstColumnStripStyle:=$styleColumn1

    $styleColumn2:=cs.ViewPro.TableStyle.new()
    $styleColumn2.backColor:="LightCyan"
    $styleColumn2.foreColor:="#03045E"
    $param.theme.secondColumnStripStyle:=$styleColumn2

    VP SET TABLE THEME("ViewProArea"; "myTable"; $param)

    See also

    VP CREATE TABLE
    VP Get table theme

    VP SET TEXT VALUE

    VP SET TEXT VALUE ( rangeObj : Object ; textValue : Text { ; formatPattern : Text } )

    ParameterTypeDescription
    rangeObjObject->Range object
    textValueText->Text value to set
    formatPatternText->Format of value

    Description

    The VP SET TEXT VALUE command assigns a specified text value to a designated cell range.

    In rangeObj, pass a range of the cell(s) (created for example with VP Cell or VP Column) whose value you want to specify. If rangeObj includes multiple cells, the value specified will be repeated in each cell.

    The textValue parameter specifies a text value to be assigned to the rangeObj.

    The optional formatPattern defines a pattern for the textValue parameter.

    Example

    VP SET TEXT VALUE(VP Cell("ViewProArea";3;2);"Test 4D View Pro")

    See also

    Cell Format
    VP SET VALUE

    VP SET TIME VALUE

    VP SET TIME VALUE ( rangeObj : Object ; timeValue : Text { ; formatPattern : Text } )

    ParameterTypeDescription
    rangeObjObject->Range object
    timeValueText->Time value to set
    formatPatternText->Format of value

    Description

    The VP SET TIME VALUE command assigns a specified time value to a designated cell range.

    In rangeObj, pass a range of the cell(s) (created for example with VP Cell or VP Column) whose value you want to specify. If rangeObj includes multiple cells, the value specified will be repeated in each cell.

    The timeValue parameter specifies a time expressed in seconds to be assigned to the rangeObj.

    The optional formatPattern defines a pattern for the timeValue parameter.

    Example

    //Set the value to the current time
    VP SET TIME VALUE(VP Cell("ViewProArea";5;2);Current time)

    //Set the value to a specific time with a designated format
    VP SET TIME VALUE(VP Cell("ViewProArea";5;2);?12:15:06?;vk pattern long time)

    See also

    Cell Format
    VP SET DATE TIME VALUE
    VP SET VALUE

    VP SET VALUE

    VP SET VALUE ( rangeObj : Object ; valueObj : Object )

    ParameterTypeDescription
    rangeObjObject->Range object
    valueObjObject->Cell values and format options

    Description

    The VP SET VALUE command assigns a specified value to a designated cell range.

    The command allows you to use a generic code to set and format the types of values in rangeObj, whereas other commands, such as VP SET TEXT VALUE and VP SET NUM VALUE, reduce the values to specific types.

    In rangeObj, pass a range of the cell(s) (created for example with VP Cell or VP Column) whose value you want to specify. If rangeObj includes multiple cells, the value specified will be repeated in each cell.

    The parameter valueObj is an object that includes properties for the value and the format to assign to rangeObj. It can include the following properties :

    PropertyTypeDescription
    valueInteger, Real, Boolean, Text, Date, NullValue to assign to rangeObj (except- time). Pass null to erase the content of the cell.
    timeRealTime value (in seconds) to assign to rangeObj
    formatTextPattern for value/time property. For information on patterns and formatting characters, please refer to the Cell Format paragraph.

    Example

    //Set the cell value as False
    VP SET VALUE(VP Cell("ViewProArea";3;2);New object("value";False))

    //Set the cell value as 2
    VP SET VALUE(VP Cell("ViewProArea";3;2);New object("value";2))

    //Set the cell value as $125,571.35
    VP SET VALUE(VP Cell("ViewProArea";3;2);New object("value";125571.35;"format";"_($* #,##0.00_)"))

    //Set the cell value as Hello World!
    VP SET VALUE(VP Cell("ViewProArea";3;2);New object("value";"Hello World!"))

    //Set the cell value as current date
    VP SET VALUE(VP Cell("ViewProArea";4;2);New object("value";Current date))

    //Set the cell value as current hour
    VP SET VALUE(VP Cell("ViewProArea";5;2);New object("time";Current hour))

    //Set the cell value as specific date and time
    VP SET VALUE(VP Cell("ViewProArea";3;9);New object("value";!2024-12-18!);"time";?14:30:10?;"format";vk pattern full date time))

    //Erase cell content
    VP SET VALUE(VP Cell("ViewProArea";3;9);New object("value";Null))

    See also

    Cell Format
    VP Get values
    VP SET VALUE
    VP SET BOOLEAN VALUE
    VP SET DATE TIME VALUE
    VP SET FIELD
    VP SET FORMULA
    VP SET NUM VALUE
    VP SET TEXT VALUE
    VP SET TIME VALUE

    VP SET VALUES

    VP SET VALUES ( rangeObj : Object ; valuesCol : Collection )

    ParameterTypeDescription
    rangeObjObject->Range object
    valuesColCollection->Collection of values

    Description

    The VP SET VALUES command assigns a collection of values starting at the specified cell range.

    In rangeObj, pass a range for the cell (created with VP Cell) whose value you want to specify. The cell defined in the rangeObj is used to determine the starting point.

    • If rangeObj is not a cell range, only the first cell of the range is used.
    • If rangeObj includes multiple ranges, only the first cell of the first range is used.

    The valuesCol parameter is two-dimensional:

    • The first-level collection contains subcollections of values. Each subcollection defines a row. Pass an empty collection to skip a row.

    • Each subcollection defines cell values for the row. Values can be Integer, Real, Boolean, Text, Date, Null, or Object. If the value is an object, it can have the following properties:

      PropertyTypeDescription
      valueInteger, Real, Boolean, Text, Date, NullValue in the cell (except- time)
      timeRealTime value (in seconds)

    Example

    $param:=New collection
    $param.push(New collection(1;2;3;False)) //first row, 4 values
    $param.push(New collection) //second row, untouched
    $param.push(New collection(4;5;Null;"hello";"world")) // third row, 5 values
    $param.push(New collection(6;7;8;9)) // fourth row, 4 values
    $param.push(New collection(Null;New object("value";Current date;"time";42))) //fifth row, 1 value

    VP SET VALUES(VP Cell("ViewProArea";2;1);$param)

    See also

    VP Get formulas
    VP Get value
    VP Get Values
    VP SET FORMULAS
    VP SET VALUE

    VP SET WORKBOOK OPTIONS

    VP SET WORKBOOK OPTIONS ( vpAreaName : Text ; optionObj : Object)

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name
    optionObjObject->Object containing the workbook options to be set

    Description

    VP SET WORKBOOK OPTIONS sets the workbook options in vpAreaName.

    In vpAreaName, pass the name of the 4D View Pro area.

    In optionObj, pass the workbook options to apply to vpAreaName.

    If optionObj is empty, the command does nothing.

    Modified workbook options are saved with the document.

    The following table lists the available workbook options:

    PropertyTypeDescription
    allowUserDragMergebooleanThe drag merge operation is allowed (select cells and drag the selection to merge cells)
    allowAutoCreateHyperlinkbooleanEnables automatic creation of hyperlinks in the spreadsheet.
    allowContextMenubooleanThe built-in context menu can be opened.
    allowCopyPasteExcelStylebooleanStyles from a spreadsheet can be copied and pasted to Excel, and vice-versa.
    allowDynamicArraybooleanEnables dynamic arrays in worksheets
    allowExtendPasteRangebooleanExtends the pasted range if the pasted range is not enough for the pasted data
    allowSheetReorderbooleanSheet reordering is allowed
    allowUndobooleanUndoing edits is allowed.
    allowUserDeselectbooleanDeselecting specific cells from a selection is allowed.
    allowUserDragDropbooleanDrag and drop of range data is allowed
    allowUserDragFillbooleanDrag fill is allowed
    allowUserEditFormulabooleanFormulas can be entered in cells
    allowUserResizebooleanColumns and rows can be resized
    allowUserZoombooleanZooming (ctrl + mouse wheel) is allowed
    autoFitTypenumberContent is formatted to fit in cells, or cells and headers. Available values:
    ConstantValueDescription
    vk auto fit type cell 0 The content autofits cells
    vk auto fit type cell with header 1 The content autofits cells and headers
    backColorstringA color string used to represent the background color of the area, such as "red", "#FFFF00", "rgb(255,0,0)", "Accent 5". The initial backgroundcolor is hidden when a backgroundImage is set.
    backgroundImagestring / picture / fileBackground image for the area.
    backgroundImageLayoutnumberHow the background image is displayed. Available values:
    ConstantValueDescription
    vk image layout center 1 In the center of the area.
    vk image layout none 3 In the upper left corner of the area with its original size.
    vk image layout stretch 0 Fills the area.
    vk image layout zoom 2 Displayed with its original aspect ratio.
    calcOnDemandbooleanFormulas are calculated only when they are demanded.
    columnResizeModenumberResize mode for columns. Available values:
    ConstantValueDescription
    vk resize mode normal 0 Use normal resize mode (i.e remaining columns are affected)
    vk resize mode split 1 Use split mode (i.e remaining columns are not affected)
    copyPasteHeaderOptionsnumberHeaders to include when data is copied to or pasted. Available values:
    ConstantValueDescription
    vk copy paste header options all headers3 Includes selected headers when data is copied; overwrites selected headers when data is pasted.
    vk copy paste header options column headers 2 Includes selected column headers when data is copied; overwrites selected column headers when data is pasted.
    vk copy paste header options no headers0 Column and row headers are not included when data is copied; does not overwrite selected column or row headers when data is pasted.
    vk copy paste header options row headers1 Includes selected row headers when data is copied; overwrites selected row headers when data is pasted.
    customListcollectionThe list for users to customize drag fill, prioritize matching this list in each fill. Each collection item is a collection of strings. See on SpreadJS docs.
    cutCopyIndicatorBorderColorstringBorder color for the indicator displayed when the user cuts or copies the selection.
    cutCopyIndicatorVisiblebooleanDisplay an indicator when copying or cutting the selected item.
    defaultDragFillTypenumberThe default drag fill type. Available values :
    ConstantValueDescription
    vk auto fill type auto 5 Automatically fills cells.
    vk auto fill type clear values 4 Clears cell values.
    vk auto fill type copycells 0 Fills cells with all data objects, including values, formatting, and formulas.
    vk auto fill type fill formatting only 2 Fills cells only with formatting.
    vk auto fill type fill series 1 Fills cells with series.
    vk auto fill type fill without formatting 3 Fills cells with values and not formatting.
    enableAccessibilitybooleanAccessibility support is enabled in the spreadsheet.
    enableFormulaTextboxbooleanThe formula text box is enabled.
    grayAreaBackColorstringA color string used to represent the background color of the gray area , such as "red", "#FFFF00", "rgb(255,0,0)", "Accent 5", and so on.
    highlightInvalidDatabooleanInvalid data is highlighted.
    iterativeCalculationbooleanEnables iterative calculation. See on SpreadJS docs.
    iterativeCalculationMaximumChangenumericMaximum amount of change between two calculation values.
    iterativeCalculationMaximumIterationsnumericNumber of times the formula should recalculate.
    newTabVisiblebooleanDisplay a special tab to let users insert new sheets.
    numbersFitModenumberChanges display mode when date/number data width is longer than column width. Available values:
    ConstantValueDescription
    vk numbers fit mode mask0 Replace data content with "###" and shows tip
    vk numbers fit mode overflow 1 Display data content as a string. If next cell is empty, overflow the content.
    pasteSkipInvisibleRangebooleanPaste or skip pasting data in invisible ranges:
    • False (default): paste data
    • True: Skip pasting in invisible ranges
    See SpreadJS docs for more information on invisible ranges.
    referenceStylenumberStyle for cell and range references in cell formulas. Available values:
    ConstantValueDescription
    vk reference style A1 0 Use A1 style.
    vk reference style R1C1 1 Use R1C1 style
    resizeZeroIndicatornumberDrawing policy when the row or column is resized to zero. Available values:
    ConstantValueDescription
    vk resize zero indicator default 0 Uses the current drawing policy when the row or column is resized to zero.
    vk resize zero indicator enhanced 1 Draws two short lines when the row or column is resized to zero.
    rowResizeModenumberThe way rows are resized. Available values are the same as columnResizeMode
    scrollbarAppearancenumberScrollbar appearance. Available values:
    ConstantValueDescription
    vk scrollbar appearance mobile1 Mobile scrollbar appearance.
    vk scrollbar appearance skin (default)0 Excel-like classic scrollbar appearance.
    scrollbarMaxAlignbooleanThe scroll bar aligns with the last row and column of the active sheet.
    scrollbarShowMaxbooleanThe displayed scroll bars are based on the entire number of columns and rows in the sheet.
    scrollByPixelbooleanEnable precision scrolling by pixel.
    scrollIgnoreHiddenbooleanThe scroll bar ignores hidden rows or columns.
    scrollPixelintegerDecides scrolling by that number of pixels at a time when scrollByPixel is true. The final scrolling pixels are the result of scrolling delta * scrollPixel. For example: scrolling delta is 3, scrollPixel is 5, the final scrolling pixels are 15.
    showDragDropTipbooleanDisplay the drag-drop tip.
    showDragFillSmartTagbooleanDisplay the drag fill dialog.
    showDragFillTipbooleanDisplay the drag-fill tip.
    showHorizontalScrollbarbooleanDisplay the horizontal scroll bar.
    showResizeTipnumberHow to display the resize tip. Available values:
    ConstantValueDescription
    vk show resize tip both 3 Horizontal and vertical resize tips are displayed.
    vk show resize tip column 1 Only the horizontal resize tip is displayed.
    vk show resize tip none 0 No resize tip is displayed.
    vk show resize tip row 2 Only the vertical resize tip is displayed.
    showScrollTipnumberHow to display the scroll tip. Available values:
    ConstantValueDescription
    vk show scroll tip both 3 Horizontal and vertical scroll tips are displayed.
    vk show scroll tip horizontal 1 Only the horizontal scroll tip is displayed.
    vk show scroll tip none No scroll tip is displayed.
    vk show scroll tip vertical 2 Only the vertical scroll tip is displayed.
    showVerticalScrollbarbooleanDisplay the vertical scroll bar.
    tabEditablebooleanThe sheet tab strip can be edited.
    tabNavigationVisiblebooleanDisplay the sheet tab navigation.
    tabStripPositionnumberPosition of the tab strip. Available values:
    ConstantValueDescription
    vk tab strip position bottom 0 Tab strip position is relative to the bottom of the workbook.
    vk tab strip position left 2 Tab strip position is relative to the left of the workbook.
    vk tab strip position right 3 Tab strip position is relative to the right of the workbook.
    vk tab strip position top 1 Tab strip position is relative to the top of the workbook.
    tabStripRationumberPercentage value (0.x) that specifies how much of the horizontal space will be allocated to the tab strip. The rest of the horizontal area (1 - 0.x) will allocated to the horizontal scrollbar.
    tabStripVisiblebooleanDisplay the sheet tab strip.
    tabStripWidthnumberWidth of the tab strip when position is left or right. Default and minimum is 80.
    useTouchLayoutbooleanWhether to use touch layout to present the Spread component.

    Example

    To set the allowExtendpasteRange option in "ViewProArea":

    var $workbookOptions : Object

    $workbookOptions:= New Object
    $workbookOptions.allowExtendPasteRange:=True

    VP SET WORKBOOK OPTIONS("ViewProArea";$workbookOptions)

    See also

    VP Get workbook options

    VP SHOW CELL

    VP SHOW CELL ( rangeObj : Object { ; vPos : Integer; hPos : Integer } )

    ParameterTypeDescription
    rangeObjObject->Range object
    vPosInteger->Vertical view position of cell or row
    hPosInteger->Horizontal view position of cell or row

    Description

    The VP SHOW CELL command vertically and horizontally repositions the view of the rangeObj.

    In rangeObj, pass a range of cells as an object to designate the cells to be viewed. The view of the rangeObj will be positioned vertically or horizontally (i.e., where rangeObj appears) based on the vPos and hPos parameters. The vPos parameter defines the desired vertical position to display the rangeObj, and the hPos parameter defines the desired horizontal position to display the rangeObj.

    The following selectors are available:

    SelectorDescriptionAvailable with vPosAvailable with hPos
    vk position bottomVertical alignment to the bottom of cell or row.X
    vk position centerAlignment to the center. The alignment will be to the cell, row, or column limit according to the view position indicated:
  • Vertical view position - cell or row
  • Horizontal view position - cell or column
  • XX
    vk position leftHorizontal alignment to the left of the cell or columnX
    vk position nearestAlignment to the closest limit (top, bottom, left, right, center). The alignment will be to the cell, row, or column limit according to the view position indicated:
  • Vertical view position (top, center, bottom) - cell or row
  • Horizontal view position (left, center, right) - cell or column
  • XX
    vk position rightHorizontal alignment to the right of the cell or columnX
    vk position topVertical alignment to the top of cell or rowX

    This command is only effective if repositioning the view is possible. For example, if the rangeObj is in cell A1 (the first column and the first row) of the current sheet, repositioning the view will make no difference because the vertical and horizontal limits have already been reached (i.e., it is not possible to scroll any higher or any more to the left). The same is true if rangeObj is in cell C3 and the view is repositioned to the center or the bottom right. The view remains unaltered.

    Example

    You want to view the cell in column AY, row 51 in the center of the 4D View Pro area:

    $displayCell:=VP Cell("myVPArea";50;50)
    // Move the view to show the cell
    VP SHOW CELL($displayCell;vk position center;vk position center)

    Result:

    The same code with the vertical and horizontal selectors changed to show the same cell positioned at the top right of the 4D View Pro area:

    $displayCell:=VP Cell("myVPArea";50;50)
    // Move the view to show the cell
    VP SHOW CELL($displayCell;vk position top;vk position right)

    Result:

    See also

    VP ADD CELL
    VP Get active cell
    VP Get selection
    VP RESET SELECTION
    VP SET ACTIVE CELL
    VP SET SELECTION

    VP SUSPEND COMPUTING

    VP SUSPEND COMPUTING ( vpAreaName : Text )

    ParameterTypeDescription
    vpAreaNameText->4D View Pro area form object name

    Description

    The VP SUSPEND COMPUTING command stops the calculation of all formulas in vpAreaName. This command is useful when you want to suspend calculations in this 4D View Pro area so you can manually make modifications to formulas without encountering errors before you've finished making the changes.

    The command pauses the calculation service in 4D View Pro. Formulas that have already been calculated remain unchanged, however any formulas added after VP SUSPEND COMPUTING command is executed are not calculated.

    In vpAreaName, pass the name of the 4D View Pro area. If you pass a name that does not exist, an error is returned.

    The 4D View Pro calculation service maintains a counter of suspend/resume actions. Therefore, each execution of VP SUSPEND COMPUTING command must be balanced by a corresponding execution of the VP RESUME COMPUTING command. Any formula impacted by modifications made while calculations are suspended will be recalculated when the command is executed.

    Example

    You've added two buttons to the form so that the user can suspend/resume calculations:

    The Suspend Computing button code:

     //pause calculations while users enter information
    If(FORM Event.code=On Clicked)

    VP SUSPEND COMPUTING("ViewProArea")

    End if
    If(FORM Event.code=On Clicked)

    VP RESUME COMPUTING("ViewProArea")

    End if

    See also

    VP RECOMPUTE FORMULAS
    VP RESUME COMPUTING