4D v16.3Utilizar arrays objetos en las columnas (4D View Pro) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
Utilizar arrays objetos en las columnas (4D View Pro)
Utilizar arrays objetos en las columnas (4D View Pro)
A partir de 4D v15, las columnas de list box pueden contener arrays de objetos. Como los arrays de objetos pueden contener diferentes tipos de datos, esta nueva y poderosa funcionalidad le permite mezclar diferentes tipos de valores en las líneas de una sola columna, y mostrar varios widgets también. Por ejemplo, puede insertar una entrada de texto en la primera fila, una casilla de selección en la segunda, y una lista desplegable en la tercera. Los arrays de objetos también ofrecen acceso a nuevos tipos de widgets, tales como botones o selectores de colores. El siguiente list box fue diseñado utilizando un array objeto: Nota sobre las licencias: la capacidad de utilizar arrays de objetos en list boxes es un primer paso para la próxima herramienta "4D View pro" que va a sustituir progresivamente el plug-in 4D View. Esta funcionalidad requiere una licencia 4D View válida. Para más información, por favor consulte el sitio Web de 4D. Para asignar una array de objetos a una columna de list box, sólo tiene que definir el nombre del array de objetos, ya sea en la lista de propiedades (campo "Nombre de la variable"), o utilizando el comando LISTBOX INSERT COLUMN al igual que con toda columna asociada a un array. En la lista de propiedades, ahora puede seleccionar Objeto como "Tipo de variable" para la columna: Las propiedades estándar relacionadas con coordenadas, tamaño y estilo están disponibles para las columnas de tipo objeto. Puede definirlas utilizando la lista de propiedades o programando los atributos de estilo, color de fuente, color de fondo y visibilidad para cada línea de columna objeto del list box. Este tipo de columna también se pueden ocultar. Sin embargo, el tema Fuente de datos no está disponible para las columnas objeto de los list box. De hecho, el contenido de cada celda de la columna se basa en los atributos presentes en el elemento correspondiente del array de objetos. Cada elemento del array puede definir:
Para definir estas propiedades, es necesario definir los atributos adecuados en el objeto (los atributos disponibles se listan a continuación). Por ejemplo, puede escribir "Hello World!" en una columna objeto utilizando este simple código: ARRAY OBJECT(obColumn;0) // array de columnas Nota: el formato de visualización y los filtros de entrada no se pueden definir para las columnas objeto. Dependen de forma automática del tipo de valor. Cuando una columna de list box está asociada a un array de objetos, la visualización, la entrada y la edición de las celdas se basa en el atributo valueType presente en cada elemento del array. Los valores valueType soportados son:
4D utiliza los widgets por defecto en función del valor "valueType" (es decir, un "texto" se muestra como un widget de entrada de texto, un "booleano", como una casilla de selección), pero también están disponibles representaciones alternativas vía las opciones (por ejemplo, un real también puede representarse como un menú desplegable). La siguiente tabla muestra la visualización por defecto, así como también las alternativas para cada tipo de valor:
Defina la visualización de la celda y las opciones utilizando los atributos específicos en cada objeto (ver abajo). No se puede establecer formatos de visualización o filtros de entrada para columnas objeto de list box. Se definen automáticamente de acuerdo con el tipo de valor. Se enumeran en la siguiente tabla:
Cada elemento del array objeto de objetos es un objeto que puede contener uno o más atributos que definirán el contenido de la celda y la visualización de datos (ver el ejemplo anterior).
Los valores de las celdas se almacenan en el atributo "value". Este atributo se utiliza para la entrada y salida. También se puede utilizar para definir los valores por defecto cuando se utilizan las listas (ver abajo). ARRAY OBJECT(obColumn;0) //column array Nota: el valor Null es soportado y resulta en una celda vacía. Cuando "valueType" es "real" o "integer", el objeto acepta también los atributos min y max con los valores apropiados (los valores deben ser del mismo tipo que el valueType). Estos atributos se pueden utilizar para controlar el rango de valores de entrada. Cuando se valida una celda (cuando pierde el foco), si el valor de entrada es menor que el valor min o mayor que el valor max, entonces se rechaza. En este caso, el valor anterior se mantiene y un mensaje de ayuda muestra una explicación. Ejemplo: C_OBJECT($ob3) El atributo behavior ofrece variaciones de la representación estándar de los valores. En 4D v15, una sola variación es posible:
Ejemplo: C_OBJECT($ob3) Cuando un atributo "choiceList" o "requiredList" está presente en el interior del objeto, la entrada de texto se sustituye por una lista desplegable o un combo box, dependiendo del atributo:
En ambos casos, un atributo "value" se puede utilizar para preseleccionar un valor en el widget. Nota: los valores de widgets se definen a través de un array. Si desea asignar una lista 4D existente al widget, es necesario utilizar los atributos "requiredListReference", "requiredListName", "choiceListReference", o "choiceListName". Ejemplos:
Los atributos "requiredListName" y "requiredListReference" le permiten utilizar, en una celda de list box, una lista definida en 4D en modo Diseño (en la caja de herramientas) o por programación (utilizando el comando New list). La celda se mostrará como una lista desplegable. Esto significa que el usuario sólo puede seleccionar uno de los valores de la lista. Utilice "requiredListName" o "requiredListReference" dependiendo del origen de la lista: si la lista proviene de la caja de herramientas, pase un nombre; de lo contrario, si la lista se ha definido por programación, pase una referencia. En ambos casos, un atributo "valor" se puede utilizar para preseleccionar un valor en el widget. Nota: si desea definir estos valores a través de un array simple, es necesario utilizar el atributo "requiredList". En este caso, el atributo "saveAs" definirá si el elemento seleccionado debe ser guardado como un "valor" o como una "referencia".
Para más información sobre la opción "guardar como", consulte la sección Guardar como Valor o Referencia en el Manual de Diseño. Nota: si la lista contiene elementos de texto que representan los valores reales, el separador decimal debe ser un punto ("."), independientemente de los parámetros locales: "17.6" "1234.456". Ejemplos:
Los atributos "choiceListName" y "choiceListReference" le permiten utilizar, en una celda de list box, una lista definida en 4D en modo Diseño (en la caja de herramientas) o por programación (utilizando el comando New list). La celda a continuación se muestra como un combo box, lo que significa que el usuario puede seleccionar o digitar un valor. Utilice "choiceListName" o "choiceListReference" dependiendo del origen de la lista: si la lista proviene de la caja de herramientas, se pasa un nombre; de lo contrario, si la lista se ha sido definido por programación, se pasa una referencia. En ambos casos, un atributo "value" se puede utilizar para preseleccionar un valor en el widget. Nota: si desea definir estos valores a través de un array simple, es necesario utilizar el atributo "choiceList". El atributo "saveAs" no se puede usar en este caso porque los elementos seleccionados se guardan automáticamente como un "value" (ver para más información). Nota: si la lista contiene elementos de texto que representa los valores reales, el separador decimal debe ser un punto ("."), Independientemente de los parámetros locales, por ejemplo: "17.6" "1234.456". Ejemplo: Usted desea mostrar un combo box based on a "colors" basado en una lista "colors", definida en la caja de herramientas (que contiene los valores "blue", "yellow" y "green") y mostrar "green" por defecto: C_OBJECT($ob) Puede utilizar atributos específicos para agregar unidades asociadas a valores de las celdas (por ejemplo: "10 cm", "20 píxeles", etc.). Para definir la lista de unidades, puede utilizar uno de los siguientes atributos:
Independientemente de la forma en que se defina la lista unidades, puede estar asociada al atributo siguiente:
La unidad actual se muestra como un botón mostrando los valores "unitList", "unitsListReference" o "unitsListName" v cada vez que se hace clic (por ejemplo, "píxeles" -> "filas" -> "cm" -> "píxeles" - > etc.) Ejemplo: queremos definir un valor de entrada numérico seguido de dos unidades posibles: "filas" o "píxeles". El valor actual es "2" + "líneas". Utilizamos valores definidos directamente en el objeto (atributo "unitsList" ): ARRAY TEXT($_units;0) Si desea agregar un botón de puntos suspensivos [...] a una celda, sólo tiene que pasar el atributo "alternateButton" con el valor True en el objeto. El botón se muestra en la celda de forma automática. Cuando un usuario clic en este botón, se generará un evento On Alternate Click, y podrá manejarlo como quiera (ver el párrafo "Gestión de eventos" para más información). Nota: On Alternate Click es el nuevo nombre del evento On Arrow Click, renombrado en 4D v15 para resaltar su alcance extendido. Ejemplo: C_OBJECT($ob1) El atributo valueType de valor "color" le permite mostrar un color o un texto.
El "evento" valueType muestra un botón simple que genera un evento On Clicked cuando el usuario hace clic. No se pueden pasar o devolver datos o valores. C_OBJECT($ob) Varios eventos se pueden manejar en las columnas de list box de tipo array de objetos:
Nota: On Alternative Click es el nuevo nombre del evento On Arrow Click que estaba disponible en versiones anteriores de 4D. Este evento ha sido renombrado en 4D v15 ya que su alcance se ha extendido.
|
PROPIEDADES
Producto: 4D
HISTORIA
Creado por: 4D v15 ARTICLE USAGE
Manual de lenguaje 4D ( 4D v16) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||