Découvrez la puissance des formulaires dynamiques

Traduit automatiquement de Deepl

Vous nous avez dit à quel point vous souhaitiez disposer d’une fonctionnalité permettant de créer des formulaires dynamiques entièrement adaptés aux besoins de vos utilisateurs finaux. Eh bien, nous vous avons entendu, et 4D v16 R6 now ouvre de nouvelles possibilités avec les formulaires dynamiques! Proposés en avant-première dans 4D v16 R6, les formulaires dynamiques vous permettent de construire vos formulaires de manière programmatique dans un objet ou de les charger à partir d’un fichier texte. Mais cela ne fait qu’effleurer la surface de ce que nous avons concocté pour vous…

Formulaires dynamiques – Exemple de base de données

Formulaire dynamique Avantages

Dans les formulaires dynamiques, l’ensemble du contenu du formulaire – les pages, les objets du formulaire et les propriétés de chaque objet – est décrit dans un format textuel (format JSON). Ainsi, les formulaires dynamiques peuvent être stockés dans un objet ou dans un fichier. Pour une migration en douceur, il est possible d’avoir les deux types de formulaires dans une base de données, c’est-à-dire les formulaires réguliers (stockés dans un format binaire dans le fichier .4DB) et les formulaires dynamiques(stockés sous forme de texte n’importe où sur le disque).

Les formulaires dynamiques peuvent être utilisés avec des applications compilées ou autonomes. L’avantage des nouveaux formulaires par rapport aux formulaires binaires habituels est que vous pouvez les modifier en mettant simplement à jour le fichier JSON… sans avoir à recompiler l’application. Cela vous donne une grande souplesse dans le déploiement.

L’utilisation de formulaires dynamiques présente également d’autres avantages. Avez-vous déjà eu un client qui a demandé de changer la police de caractères de tous les objets du formulaire ? Avec les formulaires dynamiques, c’est aussi simple que d’effectuer un « Rechercher et remplacer » dans un fichier texte !

Imaginons maintenant que vous souhaitiez envoyer un formulaire particulier par courriel à un collègue, il vous suffira d’envoyer un seul fichier texte au lieu de l’ensemble de la base de données. Les formulaires dynamiques permettent également de réutiliser facilement un formulaire dans une autre application sans avoir à le déplacer vers une autre base de données… il suffit de copier/coller un seul fichier et le tour est joué !

Commandes supportant les formulaires dynamiques

Désormais, toutes les commandes 4D qui utilisent un nom de formulaire ont été améliorées pour accepter également une description de formulaire sous forme d’objet ou de chemin de fichier :.

« Exemple « HELLO WORLD

Description du formulaire à partir d’un fichier texte

Prenons un exemple simple avec juste du texte et un bouton :

Hello World dialogLa description textuelle du formulaire est la suivante :

{
    ... 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
                }
            }}]
}

Et voici le code pour charger ce formulaire dans un dialogue :

DIALOG ("/RESOURCES/helloWorld.json")

La grammaire est définie par un schéma JSON. La documentation donne également la liste complète des attributs qui peuvent être utilisés dans les formulaires dynamiques, avec des détails sur les attributs pris en charge par chaque objet de formulaire. N’oubliez pas que vous pouvez utiliser la commande JSON Validate pour vérifier que le JSON de votre description de formulaire est conforme au schéma JSON.

Construire un formulaire dans un objet

Maintenant, rendons ce formulaire entièrement dynamique en le construisant uniquement avec du code !

// Build form description
$label:=New object(" type " ; " text " ; " text " ; " Hello World !";"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("objets" ;New object("étiquette" ;$label; "bouton" ;$button))
$form :=New object("pages" ;New collection(Null;$page) ; "windowTitle" ; "Mon premier formulaire dynamique" ; "rightMargin";20 ; "bottomMargin";20)

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

Comme vous pouvez le constater, cette méthode vous offre la souplesse nécessaire pour construire vos formulaires en fonction de vos besoins. Une fois que vous avez écrit vos formulaires dans un fichier ou un objet, vous pouvez les utiliser comme vous le feriez avec des formulaires ordinaires.

Qu’en est-il de l’édition des formulaires ?

Pour l’instant, il n’existe aucun mécanisme permettant de modifier vos formulaires dynamiques autrement qu’en utilisant un éditeur de texte. Mais cela ne va pas durer ! Un éditeur de formulaires spécifiquement dédié aux formulaires dynamiques est en cours de développement. Quand ? Restez à l’écoute.

Vanessa Talbot
- Product Owner -Vanessa Talbot a rejoint l'équipe du programme 4D en juin 2014. En tant que Product Owner, elle est chargée de rédiger les user stories puis de les traduire en spécifications fonctionnelles. Son rôle est également de s'assurer que l'implémentation des fonctionnalités livrées répond aux besoins des clients.Depuis son arrivée, elle a travaillé à la définition des fonctionnalités clés de 4D. Elle a travaillé sur la plupart des nouvelles fonctionnalités de multithreading préemptif et aussi sur un sujet très complexe : la nouvelle architecture pour les applications enginées. Vanessa est diplômée de Telecom Saint-Etienne. Elle a commencé sa carrière à l'Institut de Recherche Criminelle en tant que développeur pour le département audiovisuel. Elle a également travaillé dans les domaines des médias et du médical en tant qu'experte en support technique, en production ainsi qu'en documentation de nouvelles fonctionnalités.