Saltar al contenido principal
Versión: 21

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 de 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. Puede utilizar los comandos LISTBOX SET COLUMN FORMULA y LISTBOX INSERT COLUMN FORMULA para modificar columnas por programación.

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.

nota

Cuando se eliminan entidades, sus referencias permanecen en la selección de entidades con un valor undefined, por lo que aparecen filas en blanco en el list box. En este caso, puede llamar a la función .clean() para obtener una nueva selección de entidades pero sin las referencias de entidades eliminadas.

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
Relleno 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
Relleno 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 de formulario soportados

Evento formularioPropiedades adicionales devueltas (ver Evento formulario para las propiedades principales)Comentarios
On After Edit
On After Keystroke
On After Sort*Las fórmulas compuestas no se pueden ordenar.
(por ejemplo, This.firstName + This.lastName)_
On Alternative ClickList box array únicamente
On Before Data Entry
On Before Keystroke
On Begin Drag Over
On Clicked
On Close DetailList box Selección actual y Selección temporal únicamente
On CollapseList box jerárquicos únicamente
On Column Moved
On Column Resize
On Data Change
On Delete Action
On Display Detail
On Double Clicked
On Drag Over
On Drop
On ExpandList box jerárquicos únicamente
On Footer ClickList box arrays, selección actual y selección temporal únicamente
On Getting FocusPropiedades adicionales devueltas sólo al editar una celda
On Header Click
On Load
On Losing FocusPropiedades adicionales devueltas sólo cuando la modificación de una celda se completa
On Mouse Enter
On Mouse Leave
On Mouse Move
On Open DetailList box Selección actual y Selección temporal únicamente
On Row MovedList box array únicamente
On Scroll
On Selection Change
On Unload
On Validate

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 によって変換されたページ (->オリジナル) /