En el desarrollo de aplicaciones, a menudo es necesario crear formularios de forma dinámica. Por ejemplo, es posible que desee generar un formulario de búsqueda sobre la marcha, adaptado a las necesidades del usuario. En 4D, existen dos enfoques principales para crear formularios dinámicos: crear el formulario completo por programación o añadir objetos a un diseño de formulario existente. Para la segunda opción, hasta ahora era posible duplicar objetos con OBJECT DUPLICATE y modificar la fuente de datos con OBJECT SET DATA SOURCE todo ello utilizando un enfoque clásico basado en punteros.
Con 4D 20 R10, nuevos y poderosos comandos OBJECT SET DATA SOURCE FORMULA y OBJECT Get data source formula, permiten a los desarrolladores vincular una fórmula como fuente de datos de los objetos formulario. Además, puede asignar dinámicamente fórmulas a propiedades clave de listbox con el comando LISTBOX SET PROPERTY como el elemento actual, la del elemento posición actual y los elementos seleccionados.
Esto abre el camino a un enfoque más moderno, flexible y legible, gracias en particular a expresiones como Form.xx o las clases
Nuevos comandos para manipular la propiedad DE LA fuente de datos
Se han añadido dos nuevos comandos para modificar la propiedad de la fuente de datos:
OBJECT SET DATA SOURCE FORMULA ( {* ;} object ; formula)
OBJECT Get data source formula ( {* ;} object) : formula
Ejemplo 1: Actualizar la fórmula
Imaginemos que tenemos una entrada de texto llamada «myInput» en un formulario, y queremos vincular su fuente de datos a la fórmula «Form.myText».
$myFormula:=Formula(Form.myText)
OBJECT SET DATA SOURCE FORMULA (*; "myInput"; $myFormula)
Ejemplo 2: Recuperar la fórmula
Para recuperar la fórmula asociada a un objeto formulario, como una entrada de texto llamada «miEntrada», basta con escribir:
$formula:=OBJECT Get data source formula(*; "myInput")
Estos nuevos comandos facilitan la creación de plantillas de formulario genéricas y reutilizables que pueden configurarse dinámicamente.
Capacidades ampliadas para LOS List Box
Estas propiedades son accesibles utilizando las siguientes constantes con los comandos LISTBOX Get property y LISTBOX SET PROPERTY:
- lk current item expression
- lk current item pos expression
- lk selected items expression
Ejemplo:
LISTBOX SET PROPERTY(*; "myListBox"; lk selected items expression; "Form.selectedItems")
Conclusión
Con OBJECT SET/GET DATA SOURCE FORMULA y las nuevas constantes de propiedades listbox, 4D ofrece una nueva, elegante y poderosa forma de crear interfaces dinámicas.
Adoptando fórmulas y programación orientada a objetos, ahora puede crear formularios más adaptables, mantenibles y fáciles de leer.
