4D v15

List box, crear columnas con variables dinámicas

Inicio

 
4D v15
List box, crear columnas con variables dinámicas

List box, crear columnas con variables dinámicas  


 

 

Originalmente introducido en 4D v14 R3

Una nueva funcionalidad en 4D le permite añadir o insertar nuevas columnas dinámicamente en tiempo de ejecución. Con esta nueva funcionalidad, 4D maneja automáticamente las definiciones de las variables requeridas (columna, pie de página y encabezado).

Por lo tanto, tres comandos 4D se han actualizado:

  • LISTBOX INSERT COLUMN
  • LISTBOX INSERT COLUMN FORMULA
  • LISTBOX DUPLICATE COLUMN

La sintaxis de estos comandos se ha actualizado para manejar creación de variables dinámicas.

 

LISTBOX INSERT COLUMN ( {* ;} objeto ; posicionCol ; nomCol ; variableCol ; nomEncabezado ; varEncabezado {; nomPie ; varPie} )
LISTBOX INSERT COLUMN FORMULA ( {* ;} objeto ; posicionCol ; nomCol ; formula ; tipoDatos ; nomEncabezado ; varEncabezado {; nomPie ; varPie} )
LISTBOX DUPLICATE COLUMN ( {* ;} object ; posicionCol ; nomCol ; variableCol ; nomEncabezado ; varEncabezado {; nomPie ; varPie} )

ParámetroTipo   Descripción    
...
variableColArray, Campo, Variable, puntero Nil->Nombre de la variable array de la columna o campo o variable    
varEncabezadoVariable entero o puntero Nil->Variable del encabezado de la columna
...
varPieVariable o Nil pointer->Variable del pie de la columna

 

Estos comandos ahora aceptan un puntero Nil (->[]) como valor para los parámetros variableCol (si aplica), varEncabezado y varPie. En este caso, 4D creará las variables requeridas de forma dinámica cuando se ejecutan los comandos (consulte la sección "Variables dinámicas" en el manual de lenguaje 4D para más información).

Note que las variables de encabezado y de pie de página siempre se crean con un tipo específico (respectivamente, entero largo y texto). Sin embargo, las variables de columna no se puede escribir durante la creación porque el listbox acepta diferentes tipos de arrays para esta variable (array texto, array entero, etc.) por lo que debe establecer el tipo de array manualmente. Por ejemplo:

 C_POINTER($NilPtr)
 LISTBOX INSERT COLUMN(*;"MyListBox";1;"MyNewColumn";$NilPtr;"MyNewHeader";$NilPtr)
 ColPtr:=OBJECT Get pointer(Object named;"MyNewColumn")
 ARRAY TEXT(ColPtr->;0) // Reemplace 0 por un valor positivo si se quiere asignar previamente los elementos del array


Es importante hacer esto escribiendo antes de usar comandos como LISTBOX INSERT ROWS para insertar nuevos elementos en el array. O bien, es posible utilizar APPEND TO ARRAY tanto para escribir el array y empezar a insertar elementos al mismo tiempo.

 
PROPIEDADES 

Producto: 4D
Tema: Lenguaje

 
HISTORIA 

 
ARTICLE USAGE

4D v15 - Actualización (standard edition) ( 4D v15)