Descubra el poder de las formas dinámicas

Traducido automáticamente de Deepl

Nos has dicho lo mucho que quieres una función para construir dinámicamente formularios totalmente adaptados a las necesidades de tus usuarios finales. Pues bien, le hemos escuchado y 4D v16 R6 now abre nuevas oportunidades con los formularios dinámicos. Los formularios dinámicos, que se ofrecen como una vista previa en 4D v16 R6, le permiten construir sus formularios de forma programada en un objeto o cargarlos desde un archivo de texto. Pero esto sólo araña la superficie de lo que hemos cocinado para ti…

Formularios dinámicos – Ejemplo de base de datos

Formulario dinámico Ventajas

En los formularios dinámicos, todo el contenido del formulario -páginas, objetos del formulario y las propiedades de cada objeto- se describe en un formato textual (formato JSON). Así, los formularios dinámicos pueden almacenarse en un objeto o en un archivo. Para una migración sin problemas, es posible tener ambos tipos de formularios en una base de datos, es decir, tanto formularios regulares (almacenados en formato binario en el archivo .4DB) como formularios dinámicos(almacenados como texto en cualquier lugar del disco).

Los formularios dinámicos pueden utilizarse con aplicaciones compiladas o independientes. La ventaja de los nuevos formularios frente a los formularios binarios normales es que puede modificarlos simplemente actualizando el archivo JSON… sin tener que recompilar la aplicación. Esto le da una gran flexibilidad en el despliegue.

El uso de formularios dinámicos también tiene otros grandes beneficios. ¿Ha tenido ya un cliente que ha solicitado cambiar la fuente de todos los objetos del formulario? Con los formularios dinámicos, es tan sencillo como hacer una «Búsqueda y Reemplazo» en un archivo de texto.

Ahora digamos que quiere enviar por correo electrónico un formulario concreto a un compañero de trabajo, sólo tiene que enviar un único archivo de texto en lugar de todo el paquete de la base de datos. Los formularios dinámicos también simplifican la reutilización de un formulario en otra aplicación sin la molestia de moverlo a otra base de datos… ¡sólo tienes que copiar/pegar un único archivo y ya está!

comandos que soportan los formularios dinámicos

A partir de ahora, todos los comandos de 4D que utilizan un nombre de formulario han sido mejorados para aceptar también una descripción del formulario como un objeto o una ruta de archivo:.

«Ejemplo de «HOLA MUNDO

descripción del formulario desde un archivo de texto

Tomemos un ejemplo sencillo con sólo texto y un botón:

Hello World dialogLa descripción textual del formulario es la siguiente:

{
    ... list of form parameters ...
    "pages": [  ... list of form pages ...
        null, ... page 0 ...
        {     ... page 1 ...
            "objects": {    ... list of form objects in page 1 ...

                "text": {
                    "type": "text",
                    "text": "Hello World !",
                    "left": 20, "top": 20, "width": 200, "height": 20
                },

                "button": {
                    "type": "button",
                    "text": "OK",
                    "left": 120, "top": 40, "width": 100, "height": 20
                }
            }}]
}

Y aquí está el código para cargar este formulario en un diálogo:

DIALOG ("/RESOURCES/helloWorld.json")

La gramática está definida por un esquema JSON. La documentación también ofrece la lista completa de atributos que pueden utilizarse en los formularios dinámicos, con detalles sobre los atributos que admite cada objeto de formulario. No olvide que puede utilizar el comando JSON Validate para verificar que el JSON en la descripción de tu formulario está de acuerdo con el esquema JSON.

Construir un formulario en un objeto

Ahora, ¡hagamos que este formulario sea totalmente dinámico construyéndolo sólo con código!

// Build form description
$label:=New object("tipo"; "texto"; "texto"; "¡Hola Mundo!";"top";20;"left";20;"width";200;"height";20)
$button :=New object("type";"button";"text";"OK";"top";40;"left";120;"width";100;"height";20)
$page :=New object("objects";New object("label";$label; "button";$button))
$form :=New object("pages";New collection(Null;$page); "windowTitle"; "My first dynamic form"; "rightMargin";20; "bottomMargin";20)

// Load the form in a dialog
$w:=Open form window($form)
DIALOG ($form)

Como puedes ver, te da la flexibilidad de construir tus formularios según tus necesidades. Una vez que haya escrito sus formularios en un archivo o un objeto, puede utilizarlos igual que los formularios normales.

¿Qué pasa con la edición de los formularios?

Por el momento, no hay ningún mecanismo disponible para editar tus formularios dinámicos que no sea el uso de un editor de texto. Pero esto no durará. Un editor de formularios dedicado específicamente a los formularios dinámicos está en camino. ¿Cuándo? Esté atento.

Vanessa Talbot
• Propietario de producto - Vanessa Talbot llegó al equipo de 4D Program en junio de 2014. Como Propietario de producto, está a cargo de escribir las historias de los usuarios y luego traducirlas a especificaciones funcionales. Su papel es también asegurarse de que la implementación de la funcionalidad entregada cumpla con las necesidades del cliente. Desde su llegada, ha trabajado en la definición de funcionalidades claves en 4D. Ha trabajado en la mayoría de las nuevas funcionalidades de multi hilo apropiativo y también en un tema muy complejo: la nueva arquitectura para la aplicación engined. Vanessa es licenciada por Telecom Saint-Etienne. Comenzó su carrera en el Instituto de Investigación Criminal como desarrolladora del departamento audiovisual. También ha trabajado en medios de comunicación y en el ámbito médico como experta en soporte técnico, producción y documentación de nuevas funcionalidades.