Saltar al contenido principal
Versión: 19

List Box Object

List box de tipo array

En un list box de tipo array, cada columna debe estar asociada a un array unidimensional 4D; se pueden utilizar todos los tipos de array, a excepción de los arrays de punteros. El número de líneas se basa en el número de elementos del array.

Por defecto, 4D asigna el nombre "ColumnX" a cada columna. Puede cambiarlo, así como las otras propiedades de la columna, en las propiedades de las columnas. El formato de visualización de cada columna también puede definirse mediante el comando OBJECT SET FORMAT.

Los list boxes de tipo array pueden mostrarse en modo jerárquico, con mecanismos específicos.

Con los list box de tipo array, los valores introducidos o mostrados se gestionan utilizando el lenguaje 4D. También puede asociar una lista de opciones con una columna para controlar la entrada de datos. Los valores de las columnas se gestionan mediante comandos de alto nivel del tema List box (como LISTBOX INSERT ROWS o LISTBOX DELETE ROWS), así como comandos de manipulación de arrays. Por ejemplo, para inicializar el contenido de una columna, puede utilizar la siguiente instrucción:

ARRAY TEXT(varCol;size)

También puede utilizar una lista:

LIST TO ARRAY("ListName";varCol)

Atención: cuando un objeto List box contiene varias columnas de diferentes tamaños, sólo se mostrará el número de elementos del array (columna) más pequeño. Debe asegurarse de que cada array tenga el mismo número de elementos que los demás. Además, si una columna del list box está vacía (esto ocurre cuando el array asociado no fue declarado o dimensionado correctamente con el lenguaje), el list box no muestra nada.

List box de tipo selección

En este tipo de list box, cada columna puede estar asociada a un campo (por ejemplo [Employees]LastName) o a una expresión. La expresión puede basarse en uno o más campos (por ejemplo, [Employees]FirstName+" "[Employees]LastName) o puede ser simplemente una fórmula (por ejemplo String(Milliseconds)). La expresión también puede ser un método proyecto, una variable o un elemento de array. La expresión también puede ser un método proyecto, una variable o un elemento de array.

A continuación, el contenido de cada línea se evalúa en función de una selección de registros: la selección actual de una tabla o una selección temporal.

En el caso de un list box basado en la selección actual de una tabla, cualquier modificación realizada desde la base de datos se refleja automáticamente en el list box, y viceversa. Por lo tanto, la selección actual es siempre la misma en ambos lugares.

List box colección o entity selection

En este tipo de list box, cada columna debe estar asociada a una expresión. El contenido de cada línea se evalúa entonces por elemento de la colección o por entidad de la selección de entidades.

Cada elemento de la colección o cada entidad está disponible como un objeto al que se puede acceder a través de la palabra clave This. Una expresión de columna puede ser una ruta de propiedad, un método proyecto, una variable o cualquier fórmula, accediendo a cada entidad u objeto elemento de colección a través de This, por ejemplo This.<propertyPath> (o This.value en caso de una colección de valores escalares). La expresión también puede ser un método proyecto, una variable o un elemento de array.

Cuando la fuente de datos es una entity selection, cualquier modificación realizada del lado del list box se guarda automáticamente en la base de datos. Por otro lado, las modificaciones realizadas en la base de datos son visibles en el list box después de que se hayan recargado las entidades modificadas.

Cuando la fuente de datos es una colección, toda modificación realizada en los valores del list box se refleja en la colección. Cuando la fuente de datos es una colección, toda modificación realizada en los valores del list box se refleja en la colección. Por ejemplo:

myCol:=myCol.push("new value") //mostrar el nuevo valor en el list box

Propiedades soportadas

Las propiedades soportadas dependen del tipo de list box.

PropiedadList box arrayList box selecciónList box colección o entity selection
Color de fondo alternoXXX
Color de fondoXXX
NegritaXXX
Expresión del color de fondoXX
Estilo de línea de bordeXXX
InferiorXXX
ClaseXXX
Colección o entity selectionXX
Redimensionamiento automático de columnasXXX
Elemento actualX
Posición actual del elementoX
Fuente de datosXXX
Nombre del formulario detalladoX
Mostrar encabezadosXXX
Mostrar pies de páginaXXX
Doble clic en la filaX
ArrastrableXXX
SoltableXXX
EnfocableXXX
FuenteXXX
Color de fuenteXXX
Expresión de color de fuenteXX
Tamaño de fuenteXXX
Altura (list box)XXX
Altura (encabezados)XXX
Altura (pies de página)XXX
Ocultar líneas en blanco adicionalesXXX
Ocultar rectángulo de enfoqueXXX
Ocultar resaltado de selecciónXXX
List Box jerárquicoX
Conjunto de resaltadoX
Alineación horizontalXXX
Color de línea horizontalXXX
Barra de desplazamiento horizontalXXX
Tamaño horizontalXXX
ItálicaXXX
IzquierdaXXX
Tabla maestraX
Expresión info MetaX
MétodoXXX
Líneas móvilesX
Selección temporalX
Número de columnasXXX
Número de columnas bloqueadasXXX
Número de columnas estáticasXXX
Nombre del objetoXXX
DerechaXXX
Array de colores de fondo de filaX
Array de control de filasX
Array color de fuente de filaX
Altura de líneaX
Array altura de líneaX
Array de estilo de líneaX
Elementos seleccionadosX
Modo de selecciónXXX
Edición con un solo clicXXX
OrdenableXXX
Acción estándarX
Expresión de estiloXX
SuperiorXXX
TransparenteXXX
TipoXXX
SubrayadoXXX
Variable o ExpresiónXX
Alineación verticalXXX
Color de línea verticalXXX
Barra de desplazamiento verticalXXX
Tamaño verticalXXX
VisibilidadXXX
AnchoXXX

Las columnas, los encabezados y los pies de list box soportan propiedades específicas.

Eventos formulario soportados

Evento formularioPropiedades adicionales devueltas (ver Evento formulario para las propiedades principales)Comentarios
On After Edit
  • columna
  • nombreColumna
  • línea
  • On After Keystroke
  • columna
  • nombreColumna
  • línea
  • On After Sort
  • column
  • columnName
  • headerName
  • Las fórmulas compuestas no se pueden ordenar.
    (por ejemplo, This.firstName + This.lastName)
    On Alternative Click
  • columna
  • nombreColumna
  • línea
  • List box array únicamente
    On Before Data Entry
  • columna
  • nombreColumna
  • línea
  • On Before Keystroke
  • columna
  • nombreColumna
  • línea
  • On Begin Drag Over
  • columna
  • nombreColumna
  • línea
  • On Clicked
  • columna
  • nombreColumna
  • línea
  • On Close Detail
  • [row](#propiedades adicionales)
  • List box Selección actual y Selección temporal únicamente
    On Collapse
  • columna
  • nombreColumna
  • línea
  • List box jerárquicos únicamente
    On Column Moved
  • columnName
  • newPosition
  • oldPosition
  • On Column Resize
  • column
  • columnName
  • newSize
  • oldSize
  • On Data Change
  • columna
  • nombreColumna
  • línea
  • On Delete Action
  • [row](#propiedades adicionales)
  • On Display Detail
  • isRowSelected
  • row
  • On Double Clicked
  • columna
  • nombreColumna
  • línea
  • On Drag Over
  • area
  • areaName
  • column
  • columnName
  • row
  • On Drop
  • columna
  • nombreColumna
  • línea
  • On Expand
  • columna
  • nombreColumna
  • línea
  • List box jerárquicos únicamente
    On Footer Click
  • column
  • columnName
  • footerName
  • List box arrays, selección actual y selección temporal únicamente
    On Getting Focus
  • columna
  • nombreColumna
  • línea
  • Propiedades adicionales devueltas sólo al editar una celda
    On Header Click
  • column
  • columnName
  • headerName
  • On Load
    On Losing Focus
  • columna
  • nombreColumna
  • línea
  • Propiedades adicionales devueltas sólo cuando la modificación de una celda se completa
    On Mouse Enter
  • area
  • areaName
  • column
  • columnName
  • row
  • On Mouse Leave
    On Mouse Move
  • area
  • areaName
  • column
  • columnName
  • row
  • On Open Detail
  • [row](#propiedades adicionales)
  • List box Selección actual y Selección temporal únicamente
    On Row Moved
  • newPosition
  • oldPosition
  • List box array únicamente
    On Selection Change
    On Scroll
  • horizontalScroll
  • verticalScroll
  • On Unload

    Propiedades adicionales

    Los eventos formulario de los objetos list box o columnas de list box pueden devolver las siguientes propiedades adicionales:

    PropiedadTipoDescripción
    areatextÁrea de objeto list box ("header", "footer", "cell")
    areaNametextNombre del área
    columnentero largoNúmero de columna
    columnNametextNombre de la columna
    footerNametextNombre del pie
    headerNametextNombre del encabezado
    horizontalScrollentero largoPositivo si el desplazamiento es hacia la derecha, negativo si es hacia la izquierda
    isRowSelectedbooleanTrue si la línea está seleccionada, de lo contrario False
    newPositionentero largoNueva posición de la columna o línea
    newSizeentero largoNuevo tamaño (en píxeles) de la columna o línea
    oldPositionentero largoPosición anterior de la columna o línea
    oldSizeentero largoTamaño anterior (en píxeles) de la columna o línea
    rowentero largoNúmero de línea
    verticalScrollentero largoPositivo si el desplazamiento es hacia abajo, negativo si es hacia arriba

    Si un evento se produce en una columna o línea "fake" que no existe, se suele devolver una cadena vacía.