Este es el sitio web histórico de la documentación de 4D. La documentación se está trasladando progresivamente a developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
Utilizar arrays objetos en columnas
|
valueType | Widget por defecto | Widgets alternativos |
text | área de entrada de texto | menú desplegable (lista obligatoria) o combo box (lista de opciones) |
real | área de entrada de texto controlada (números y separadores) | menú desplegable (lista obligatoria) o combo box (lista de opciones) |
integer | controlled text input (numbers only) | menú desplegable (lista obligatoria) o combo box (lista de opciones) o casilla de selección de tres estados |
boolean | casilla de selección | menú desplegable (lista obligatoria) |
color | color de fondo | texto |
event | botón con etiqueta | |
Todos los widgets pueden tener un botón adicional unit toggle button o ellipsis button asociado a la celda. |
Defina la visualización de la celda y las opciones utilizando los atributos específicos en cada objeto (ver abajo).
Value type | Formato por defecto | Control de entrada |
text | el mismo que el del objeto | sin (no control) |
real | el mismo que el del objeto (utilización del separador decimal del sistema) | "0-9", "." y "-" |
"0-9" y "." si min>=0 | ||
integer | el mismo que el del objeto | "0-9" and "-" |
"0-9" si min>=0 | ||
Boolean | casilla de selección | N/A |
color | N/A | N/A |
event | N/A | N/A |
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).
El único atributo obligatorio es "valueType" y sus valores soportados son "text", "real", "integer", "boolean", "color" y "event". La siguiente tabla muestra todos los atributos soportados en arrays de objetos de list box, en función del valor "valueType" (cualquier otro atributo se ignora). Los formatos de visualización y ejemplos se muestran a continuación.
valueType | text | real | integer | boolean | color | event | |
Atributos | Descripción | ||||||
value | valor de la celda (entrada o salida) | x | x | x | |||
min | valor mínimo | x | x | ||||
max | valor máximo | x | x | ||||
behavior | valor "threeStates" | x | |||||
requiredList | menú desplegable definido en el objeto | x | x | x | |||
choiceList | combo box definido en objeto | x | x | x | |||
requiredListReference | RefList 4D, depende del valor de "saveAs" | x | x | x | |||
requiredListName | nombre de lista 4D, depende del valor "saveAs" | x | x | x | |||
saveAs | "reference" o "value" | x | x | x | |||
choiceListReference | RefList 4D, muestra un combo box | x | x | x | |||
choiceListName | nombre de lista 4D, muestra un combo box | x | x | x | |||
unitList | array de X elementos | x | x | x | |||
unitReference | índice del elemento seleccionado | x | x | x | |||
unitsListReference | RefList 4D para las unidades | x | x | x | |||
unitsListName | nombre de lista 4D para las unidades | x | x | x | |||
alternateButton | añadir un botón alternativo | x | x | x | x | x |
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).
Ejemplo:
ARRAY OBJECT(obColumn;0) //column array
<p>C_OBJECT($ob1)
$entry:="Hello world!"
OB SET($ob1;"valueType";"text")
OB SET($ob1;"value";$entry) // si el usuario introduce un nuevo valor, $entry contendrá el nuevo valor
C_OBJECT($ob2)
OB SET($ob2;"valueType";"real")
OB SET($ob2;"value";2/3)
C_OBJECT($ob3)
OB SET($ob3;"valueType";"boolean")
OB SET($ob3;"value";True)
APPEND TO ARRAY(obColumn;$ob1)
APPEND TO ARRAY(obColumn;$ob2)
APPEND TO ARRAY(obColumn;$ob3)
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)
$entry3:=2015
OB SET($ob3;"valueType";"integer")
OB SET($ob3;"value";$entry3)
OB SET($ob3;"min";2000)
OB SET($ob3;"max";3000)
El atributo behavior ofrece variaciones de la representación estándar de los valores. En 4D v15, una sola variación es posible:
Atributo | Valor disponible | valueType(s) | Descripción |
behavior | threeStates | integer | Representa un valor numérico como casilla de selección de tres estados. 2=semi-marcado, 1=marcado, 0=no marcado, -1=invisible, -2=no marcado desactivado, -3=marcado desactivado, -4=semi-marcado desactivado |
Ejemplo:
C_OBJECT($ob3)
OB SET($ob3;"valueType";"integer")
OB SET($ob3;"value";-3)
C_OBJECT($ob4)
OB SET($ob4;"valueType";"integer")
OB SET($ob4;"value";-3)
OB SET($ob4;"behavior";"threeStates")
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:
ARRAY TEXT($RequiredList;0)
APPEND TO ARRAY($RequiredList;"Open")
APPEND TO ARRAY($RequiredList;"Closed")
C_OBJECT($ob)
OB SET($ob;"valueType";"text")
OB SET($ob;"value";"Closed")
OB SET ARRAY($ob;"requiredList";$RequiredList)
ARRAY LONGINT($ChoiceList;0)
APPEND TO ARRAY($ChoiceList;5)
APPEND TO ARRAY($ChoiceList;10)
APPEND TO ARRAY($ChoiceList;20)
APPEND TO ARRAY($ChoiceList;50)
APPEND TO ARRAY($ChoiceList;100)
C_OBJECT($ob)
OB SET($ob;"valueType";"integer")
OB SET($ob;"value";10) //10 as default value
OB SET ARRAY($ob;"choiceList";$ChoiceList)
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:
C_OBJECT($ob)
OB SET($ob;"valueType";"text")
OB SET($ob;"saveAs";"value")
OB SET($ob;"value";"blue")
OB SET($ob;"requiredListName";"colors")
<>List:=New list
APPEND TO LIST(<>List;"Paris";1)
APPEND TO LIST(<>List;"London";2)
APPEND TO LIST(<>List;"Berlin";3)
APPEND TO LIST(<>List;"Madrid";4)
C_OBJECT($ob)
OB SET($ob;"valueType";"integer")
OB SET($ob;"saveAs";"reference")
OB SET($ob;"value";2) //muestra London por defecto
OB SET($ob;"requiredListReference";<>List)
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)
OB SET($ob;"valueType";"text")
OB SET($ob;"value";"blue")
OB SET($ob;"choiceListName";"colors")
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)
APPEND TO ARRAY($_units;"lines")
APPEND TO ARRAY($_units;"pixels")
C_OBJECT($ob)
OB SET($ob;"valueType";"integer")
OB SET($ob;"value";2) // 2 "units"
OB SET($ob;"unitReference";1) //"lines"
OB SET ARRAY($ob;"unitsList";$_units)
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)
$entry:="Hello world!"
OB SET($ob;"valueType";"text")
OB SET($ob;"alternateButton";True)
OB SET($ob;"value";$entry)
El atributo valueType de valor "color" le permite mostrar un color o un texto.
C_OBJECT($ob4)
OB SET($ob4;"valueType";"color")
OB SET($ob4;"value";0x00FF0000)
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.
Opcionalmente, se puede pasar un atributo "label".
C_OBJECT($ob)
OB SET($ob;"valueType";"event")
OB SET($ob;"label";"Edit...")
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.
Producto: 4D
Tema: List boxes
Creado por: 4D v15
Manual de Diseño ( 4D v20 R7)