Este tema incluye la propiedad Fuente de datos que se utiliza para especificar el tipo de list box:
Seleccione la opción Selección actual si quiere utilizar expresiones, campos o métodos cuyos valores se evaluarán para cada registro de la selección actual de una tabla.
Seleccione la opción Selección temporal si quiere utilizar expresiones, campos o métodos cuyos valores se evaluarán para cada registro de una selección temporal.
Seleccione la opción Arrays si quiere utilizar elementos del array como líneas del list box. La opción arrays es necesaria si quiere recuperar el resultado de una petición SQL en un list box (ver la sección Visualización del resultado de una petición SQL en un list box).
Este tema aparece para los list box de tipo selección únicamente. Contiene la propiedad Tabla principal para los list box de tipo selección actual o Selección temporal para los list box de tipo selección temporal.
Tabla principal: permite especificar la tabla cuyo selección actual se utilizará. Esta tabla y su selección actual serán la referencia para los campos asociados con las columnas del list box (referencias de campos o expresiones que contienen campos). Incluso si algunas columnas contienen campos de otras tablas, el número de líneas mostradas será definido por la tabla principal. El menú asociado a esta propiedad muestra todas las tablas de la base, sin importar si el formulario está relacionado a una tabla (formulario tabla) o no (formulario proyecto). Por defecto, la propiedad muestra la primera tabla de la base. Para mayor información sobre el comportamiento de esta propiedad, consulte Visualización de campos en list box.
Selección temporal: permite especificar la selección temporal a utilizar. Debe introducir el nombre de una selección temporal válida. La selección temporal puede se proceso o interproceso. El contenido del list box se basará en esta selección. La selección temporal elegida debe existir y ser validada en el momento de la visualización del list box, de lo contrario el list box se mostrará vacío. Si deja vacía el área del nombre, el list box se mostrará vacío. Nota: las selecciones temporales son listas ordenadas de registros. Se utilizan para conservar en memoria el orden y el registro actual de una selección. Para mayor información, consulte Selecciones temporales en el manual Lenguaje de 4D.
Este tema agrupa las propiedades elementales del objeto.
Número de columnas: número de columnas mostradas en el list box (1 por defecto). Puede modificar el número de columnas (añadir, duplicar o borrar una columna) utilizando el menú contextual (clic en una columna o en un encabezado de columna):
Número de columnas fijas: número de columnas que no pueden moverse durante la ejecución. Este valor indica el número de columnas fijas a partir de la primera columna del list box. Para evitar todo desplazamiento de columnas, este valor debe ser igual al número total de columnas. Esta propiedad tiene en cuenta las columnas invisibles. Por defecto, si el modo jerárquico no está activo (opción List box jerárquico no seleccionada), el valor de la propiedad es 0, lo que significa que todas las columnas se pueden mover. Cuando el modo jerárquico está activo (list boxes de tipo array únicamente), esta opción siempre es al menos 1.
Mostrar los encabezados: permite mostrar o ocultar los encabezados de las columnas (mostradas por defecto).
Selección múltiple: esta propiedad se añade para los list box de tipo selección únicamente. Permite especificar el conjunto a utilizar para manejar los registros seleccionados en el list box (cuando está seleccionada la fuente de datos Arrays, se utiliza un array Booleano con el mismo nombre que el list box). 4D crea un conjunto por defecto, llamado ListBoxSet1, que se puede modificar si es necesario. El conjunto puede ser local, proceso o interproceso (recomendamos el uso de un conjunto local, por ejemplo $LBSet, con el fin de limitar el tráfico en la red). El conjunto es mantenido automáticamente por 4D. Si el usuario selecciona uno o más líneas en el list box, el conjunto se actualiza inmediatamente. Si quiere seleccionar una o más líneas por programación, aplique los comandos del tema “Conjuntos” a este conjunto. Notas:
El estado resaltado de las líneas del list box y el de los registros de la tabla son totalmente independiente.
Si la propiedad “Selección múltiple” no contiene un nombre, no será posible realizar selecciones en el list box.
Array de estilos (list box de tipo array) / Estilos (list box de tipo selección): permite aplicar un estilo de caracteres personalizado a cada línea del list box.
Para los list box de tipo array, debe introducir el nombre de un array de tipo Entero largo. Cada elemento de este array corresponde a una fila del list box; el array debe tener el mismo tamaño que los arrays asociados a las columnas. Para llenar el array (utilizando un método), utilice las constantes del tema “Texto”. Sumando las constantes, puede combinar estilos. Para aplicar el estilo definido en las propiedades del list box a una fila, asigne el valor -255 al elemento del array correspondiente.
Para los list box de tipo selección, debe introducir una expresión o una variable (excepto para un array). La expresión o la variable se evaluará para cada línea mostrada. Puede utilizar el editor de fórmulas para definir una expresión. Para hacerlo, haga clic en el botón [...] que aparecer cuando selecciona el área. Puede utilizar las constantes del tema “Estilos de caracteres”. El siguiente ejemplo utiliza un nombre de variable: entre EstiloEmpresa en el área Estilos y en el método de formulario, escriba el siguiente código:
Array de colores de fuente (list box de tipo array) / Colores de fuente (list box de tipo selección): permite aplicar un color de fuente personalizado a cada fila del list box. Debe utilizar los valores de colores RGB. Para mayor información consulte la descripción del comando OBJECT SET RGB COLORS en el manual Lenguaje de 4D.
Para los list box de tipo array, debe introducir el nombre de un array de tipo Entero largo. Cada elemento de este array corresponde a una línea del list box; el array debe tener el mismo tamaña que los arrays asociados a las columnas. Puede utilizar las constantes del tema “SET RGB COLORS”. Para aplicar el color de fuente definido en las propiedades de la list box a una línea, pase el valor -255 al elemento del array correspondiente.
Para los list box de tipo selección, debe introducir una expresión o una variable (excepto para un array). La expresión o variable se evaluará para cada línea mostrada. Puede utilizar el editor de fórmulas para definir una expresión. Para hacerlo, haga clic en el botón [...] que aparece al seleccionar el área. Puede utilizar las constantes del tema “SET RGB COLORS”. El siguiente ejemplo utiliza un nombre de variable: introduzca ColorEmpresa en el área Color de fuente y en el método de formulario, escriba el siguiente código:
Array de colores de fondo (list box de tipo array) / Colores de fondo (list box de tipo selección): permite aplicar un color de fondo personalizado a cada línea del list box. Debe utilizar los valores de colores RGB. Para mayor información, consulte la descripción del comando OBJECT SET RGB COLORS en el manual Lenguaje 4D.
Para los list box de tipo array, debe introducir el nombre de un array de tipo entero largo. Cada elemento de este array corresponde a una línea del list box; el array debe tener el mismo tamaño que los arrays asociados a las columnas. Puede utilizar las constantes del tema “SET RGB COLORS”. Para aplicar el color de fondo definido en las propiedades del list box a una línea, pase el valor -255 al elemento del array correspondiente.
Para los list box de tipo selección, debe introducir una expresión o una variable (excepto para un array). La expresión o variable se evaluará para cada línea mostrada. Puede utilizar el editor de fórmulas para especificar una expresión. Para hacerlo, haga clic en el botón [...] que aparece cuando selecciona el área. Puede utilizar las constantes del tema “SET RGB COLORS”.
Array líneas ocultas (list box de tipo array únicamente): permite ocultar una o varias líneas en el listbox. Debe introducir el nombre de un array de tipo Booleano. El array debe tener el mismo número de elementos que el listbox. Cada elemento del array representa el estado mostrado/oculto de la línea correspondiente en el list box:
Para ocultar la línea, pase True,
Para mostrar la línea, pase False.
Si no se ha definido un array o si el array está vacío, todas las líneas del list box son visibles. Por defecto, las líneas añadidas son visibles. Ocultar las líneas afecta únicamente la visualización del listbox. Las líneas ocultas están presentes en los arrays y pueden manipularse por programación. Los comandos del lenguaje, especialmente LISTBOX Get number of rows o LISTBOX GET CELL POSITION, no tienen en cuenta el estapdo oculto/mostrado de las líneas. Por ejemplo, en un list box de 10 líneas donde 9 líneas están ocultas, LISTBOX Get number of rows devuelve 10. Desde el punto de vista del usuario, la presencia de líneas ocultas en un list box no es visible. Sólo las líneas visibles son seleccionables (por ejemplo vía el comando Select All).
Modo de selección: permite definir el modo de selección de las líneas en el list box. Hay tres modos disponibles:
Ninguno: no puede seleccionarse ninguna línea y no es posible introducir datos. La selección y gestión de datos puede efectuarse únicamente por programación. El clic o el doble clic en la lista no tienen ningún efecto (incluso si la opción Editable está seleccionada para las columnas) pero se pueden generar los eventos On Clicked y On Double Clicked. En este modo, el desarrollador tiene control total de las selecciones (utilizando el conjunto resaltado) y de la entrada de datos (utilizando el comando EDIT ITEM). No se generan los eventos de formulario On Selection Change y On Before Data Entry. Por otra parte, el evento On After Edit puede generarse cuando los datos son introducidos por el usuario por medio del comando EDIT ITEM.
Línea única: una sola línea puede seleccionarse a la vez.
Multilíneas: varias líneas (adyacentes o no) utilizando atajos estándar: Mayús+clic para una selección continua y Ctrl+clic (Windows) o Comando+clic (Mac OS) para una selección discontinua.
Este tema sólo está disponible para los list boxes cuya fuente de datos es Arrays. Sus opciones configuran la visualización jerárquica del list box. Tenga en cuenta que estas propiedades se modifican automáticamente cuando se define la jerarquía utilizando el menú emergente del objeto list box (ver Creación y uso de list box jerárquicos).
List box jerárquico: se utiliza para especificar que el list box se debe mostrar en forma jerárquica.
Variable 1 ... 10: estas opciones adicionales aparecen cuando la opción List box jerárquico está seleccionada. Cada vez que se introduce un valor en un campo, se agrega una nueva fila. Se pueden especificar hasta 10 variables. Estas variables definen los niveles jerárquicos que se mostrarán en la primera columna. La primera variable siempre corresponde al nombre de la variable de la primera columna del list box (los dos valores se enlazan automáticamente). Esta primera variable es siempre visible y editable. Por ejemplo: país. La segunda variable es siempre visible y editable, especifica el segundo nivel jerárquico. Por ejemplo: regiones. Empezando con el tercer campo, cada variable depende de la que le precede. Por ejemplo: departamentos, ciudades, etc. Se pueden especificar un máximo de diez niveles jerárquicos. Si elimina un valor, toda la jerarquía se mueve un nivel. La última variable nunca es jerárquica, aunque varios valores idénticos existan en este nivel. Por ejemplo, en referencia a la configuración ilustrada anteriormente, imagine que arr1 contiene los valores A A A B B B, arr2 tiene los valores 1 1 1 2 2 2 y arr3 los valores X X Y Y Y Z. En este caso, A, B, 1 y 2 podría aparecer en forma contraída, pero no X y Y: + A + 1 X X Y + B + 2 Y Y Z Este principio no se aplica cuando una sola variable se especifica en la jerarquía: en este caso, los valores idénticos se pueden agrupar. Nota: si especifica una jerarquía basada en las primeras columnas de un list box existente, debe entonces borrar u ocultar estas columnas (excepto la primera), de lo contrario, aparecerán dos veces en el list box. Si define la jerarquía a través del menú emergente del editor (ver Creación y uso de list box jerárquicos), las columnas innecesarias se eliminan automáticamente del list box.
Este tema agrupa las propiedades relacionadas con las coordenadas, el ancho y el alto del list box.
La propiedad Altura de filas es específica: permite definir la altura de las filas del list box (en píxeles). Esta altura también aplica a los encabezados. La altura de las filas está definida por defecto en función de la plataforma y del tamaño de la fuente.
Este tema reúne las propiedades relativas a los colores de fondo de las líneas así como también al estilo del borde.
Color de fondo:permite definir el color de fondo específico del list box. Este color se utiliza para todo el objeto a excepción de los encabezados (si se muestran).
Color de fondo alterno: permite definir un color de fondo diferente para las líneas impares del list box. Utilizar un color de fondo alterno facilita la lectura de los arrays.
Estilo del borde: permite definir un estilo estándar para el borde (el contorno) del objeto list box.
Este tema reúne las propiedades relativas al comportamiento dinámico del list box.
Método del objeto (Editar...): este botón muestra el método del objeto list box (observe que cada columna también puede contener un método de objeto).
Arrastrable y Soltable: activa las funciones arrastrar y soltar del list box, permitiendo arrastrar una fila del list box hacia otro list box u otro objeto 4D y viceversa. Sólo las filas del list box se pueden arrastrar y soltar. No es posible arrastrar y soltar las columnas (no obstante es posible arrastrar las columnas al interior de un mismo list box). La gestión efectiva de arrastrar y soltar en los list box se efectúa con la ayuda de mecanismos estándar de 4D (eventos de formulario On Drop y On Drag Over, comandos DRAG AND DROP PROPERTIES y Drop position).
Filas desplazables (list box de tipo array únicamente): autoriza el desplazamiento de líneas en ejecución. Esta opción está seleccionada por defecto. Esta opción no está disponible para los list box de tipo selección ni para los list box en modo jerarquico (opción List box jerárquico seleccionada).
Ordenable: permite ordenar los datos de las columnas al hacer clic en el título. Esta opción está seleccionada por defecto. Los arrays de tipo imagen (columnas) no pueden ordenarse utilizando este mecanismo. En los list boxes basados en las selecciones de registros, únicamente está disponible la función de ordenación estándar:
cuando la fuente de datos es la Selección actual,
con las columnas asociadas a los campos (de tipo alfa, numérico, fecha, hora o booleano).
En los otros casos (list box basados en las selecciones temporales, columnas asociadas con las expresiones), la función de ordenación estándar no está disponible. La ordenación estándar del list box modifica el orden de la selección actual en la base de datos. Sin embargo, los registros seleccionados y el registro actual no cambian. La ordenación estándar sincroniza todas las columnas del list box, incluyendo las columnas calculadas.