Saltar al contenido principal
Versión: 20

Objeto List Box

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.

El contenido de cada fila se evalúa según 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 alterno XXX
Color de fondo XXX
Negrita XXX
Expresión del color de fondo XX
Estilo de línea de borde XXX
Inferior XXX
Colección o entity selection XX
Redimensionamiento automático de columnas XXX
Elemento actual X
Posición actual del elemento X
Fuente de datos XXX
Nombre del formulario detallado X
Mostrar encabezados XXX
Mostrar pies de página XXX
Doble clic en la fila X
Arrastrable XXX
Soltable XXX
Enfocable XXX
Fuente XXX
Color de fuente XXX
Expresión de color de fuente XX
Tamaño de fuente XXX
Altura (list box) XXX
Altura (encabezados) XXX
Altura (pies de página) XXX
Ocultar líneas en blanco adicionales XXX
Ocultar rectángulo de enfoque XXX
Ocultar resaltado de selección XXX
List Box jerárquico X
Conjunto de resaltado X
Alineación horizontal XXX
Color de línea horizontal XXX
Barra de desplazamiento horizontal XXX
Tamaño horizontal XXX
Itálica XXX
Izquierda XXX
Tabla maestra X
Expresión info Meta X
Método XXX
Líneas móviles X
Selección temporal X
Número de columnas XXX
Número de columnas bloqueadas XXX
Número de columnas estáticas XXX
Nombre del objeto XXX
Derecha XXX
Array de colores de fondo de fila X
Array de control de filas X
Array color de fuente de fila X
Altura de línea X
Array altura de línea X
Array de estilo de línea X
Elementos seleccionados X
Modo de selección XXX
Edición con un solo clic XXX
Ordenable XXX
Acción estándar X
Expresión de estilo XX
Superior XXX
Transparente XXX
Tipo XXX
Subrayado XXX
Variable o Expresión XX
Alineación vertical XXX
Color de línea vertical XXX
Barra de desplazamiento vertical XXX
Tamaño vertical XXX
Visibilidad XXX
Ancho XXX

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.

    AltStyle によって変換されたページ (->オリジナル) /