Construire des formulaires à la volée avec les nouvelles commandes Data Source

Dans le cadre du développement d’applications, il est souvent nécessaire de créer des formulaires de manière dynamique. Par exemple, vous pourriez vouloir générer un formulaire de recherche à la volée, adapté aux besoins de l’utilisateur. Dans 4D, il existe deux approches principales pour construire des formulaires dynamiques : soit construire l’ensemble du formulaire par programme, soit ajouter des objets à une disposition de formulaire existante. Pour la seconde option, il était jusqu’à présent possible de dupliquer des objets avec la commande OBJECT DUPLICATE et de modifier la source de données avec OBJECT SET DATA SOURCE le tout en utilisant une approche classique basée sur les pointeurs.

Avec 4D 20 R10, de nouvelles et puissantes commandes, OBJECT SET DATA SOURCE FORMULA et OBJECT Get data source formula permettent aux développeurs de lier une formule comme source de données des objets de formulaire. De plus, vous pouvez affecter dynamiquement des formules aux propriétés clés des boîtes de liste avec la commande LISTBOX SET PROPERTY telles que l’élément courant, la position de l’élément courant et les éléments sélectionnés.

Cela ouvre la voie à une approche plus moderne, plus flexible et plus lisible, grâce notamment à des expressions telles que Form.xx ou les classes.

HDI_SetDataSourceFormula

Nouvelles commandes pour manipuler la propriété de la source de données

Deux nouvelles commandes ont été ajoutées pour modifier la propriété de la source de données:

OBJECT SET DATA SOURCE FORMULA ( {* ;} object ; formula)
OBJECT Get data source formula ( {* ;} object) : formula

Exemple 1 : mise à jour de la formule

Imaginons que nous ayons une entrée de texte nommée « myInput » dans un formulaire, et que nous voulions lier sa source de données à la formule « Form.myText ».

$myFormula:=Formula(Form.myText)
OBJECT SET DATA SOURCE FORMULA (* ; "myInput" ; $myFormula)

Exemple 2 : Récupérer la formule

Pour récupérer la formule associée à un objet de formulaire, tel qu’une entrée de texte nommée « monEntrée », il suffit d’écrire :

$formula:=OBJECT Get data source formula(* ; "myInput")

Ces nouvelles commandes facilitent la création de modèles de formulaires génériques et réutilisables qui peuvent être configurés dynamiquement.

Capacités étendues pour les ListBox

Ces propriétés sont accessibles en utilisant les constantes suivantes avec les commandes LISTBOX Get property et LISTBOX SET PROPERTY:

  • lk current item expression
  • lk current item pos expression
  • lk selected items expression

 

Exemple :

LISTBOX SET PROPERTY(* ; "myListBox" ; lk selected items expression; "Form.selectedItems")

Conclusion

Avec OBJECT SET/GET DATA SOURCE FORMULA et les nouvelles constantes de propriété listbox, 4D offre une nouvelle façon, élégante et puissante, de construire des interfaces dynamiques.

En adoptant les formules et la programmation orientée objet, vous pouvez désormais créer des formulaires plus adaptables, plus faciles à maintenir et plus faciles à lire.

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.