Saltar al contenido principal
Versión: Siguiente

VP CREATE TABLE

Historia
LanzamientoModificaciones
19 R8Soporte de opciones de tema: bandColumns, bandRows, highlightFirstColumn, highlightLastColumn, theme
19 R7Soporte de la opción allowAutoExpand
19 R6Añadidos

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

ParámetrosTipoDescripción
rangeObjObject->Objeto rango
tableNameText->Nombre de la tabla
sourceText->Nombre de la propiedad del contexto de datos a mostrar en la tabla
optionscs.ViewPro.TableOptions->Opciones adicionales

Descripción

El comando VP CREATE TABLE crea una tabla en el rango especificado. Puede crear una tabla en un rango de celdas para facilitar la gestión y el análisis de un grupo de datos relacionados. Una tabla suele contener datos relacionados en filas y columnas, y aprovecha un contexto de datos.

En rangeObj, pase el rango de celdas donde se creará la tabla.

En tableName, introduzca un nombre para la tabla. El nombre debe:

  • ser único en la hoja
  • incluir al menos 5 caracteres
  • no incluir espacios o empezar con un número

En source, puede pasar un nombre de propiedad de un data context para mostrar sus datos en la tabla. Esto vincula la tabla al contexto de datos. Cuando se actualiza el contexto de los datos, los datos mostrados en la tabla se actualizan en consecuencia. La propiedad source debe contener una colección de objetos y cada elemento representa una fila.

  • Si no especifica una source, el comando crea una tabla vacía con el tamaño definido en rangeObj.
  • Si la source especificada no se puede mostrar completamente en el documento, no se crea ninguna tabla.

En el parámetro options, pase un objeto de la clase cs.ViewPro.TableOptions que contenga las propiedades de la tabla a definir.

Dentro del objeto options, la colección tableColumns determina la estructura de las columnas de la tabla. La longitud de la colección tableColumns debe ser igual al recuento de columnas del rango:

  • Cuando el conteo de columnas en rangeObj excede el número de columnas en tableColumns, la tabla se llena con columnas vacías adicionales.
  • Cuando la cuenta de columnas en rangeObj es inferior al número de tableColumns, la tabla muestra un número de columnas que coinciden con el recuento de columnas del rango.

Si pasa una source pero no la opción tableColumn, el comando genera las columnas automáticamente. En este caso, rangeObj debe ser un rango de celdas. De lo contrario, se utilizará la primera celda del rango. Cuando se generan columnas automáticamente, se aplican las siguientes reglas:

  • Si los datos pasados al comando son una colección de objetos, los nombres de las propiedades se utilizan como títulos de las columnas. Por ejemplo:
([{ LastName: \"Freehafer\", FirstName: \"Nancy\"},{ LastName: \"John\", FirstName: \"Doe\"})

Aquí los títulos de las columnas serían LastName y FirstName.

  • Si los datos pasados al comando son una colección de valores escalares, deben contener una colección de subcolecciones:

    • La colección de primer nivel contiene subcolecciones de valores. Cada subcolección define una línea. Pasa una colección vacía para saltar una línea. El número de valores de la primera subcolección determina cuántas columnas se crean.
    • Los índices de las subcolecciones se utilizan como títulos de las columnas.
    • Cada subcolección define los valores de las celdas para la línea. Los valores pueden ser Integer, Real, Boolean, Text, Date, Null, Time o Picture. Un valor Time debe ser un objeto que contenga un atributo time, tal y como se describe en VP SET VALUE.

Esto sólo funciona cuando se generan columnas automáticamente. No puede utilizar una colección de datos escalares con la opción tableColumns.

Ejemplo

Para crear una tabla utilizando un contexto de datos:

// Define un contexto de datos
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 las columnas de la tabla
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"))

// Crea una tabla de la colección "people"
VP CREATE TABLE(VP Cells("ViewProArea"; 1; 1; $options.tableColumns.length; 1); "ContextTable"; "people"; $options)

Aquí está el resultado:

Ver también

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