La communication par formulaire et sous-formulaire est facilitée !

Traduit automatiquement de Deepl

A partir de 4D v19 R5, la possibilité d’associer une variable à un sous-formulaire a enrichi les possibilités d’interfaces et de communication entre formulaires et sous-formulaires. Les moyens de communication sont désormais simplifiés par deux nouvelles commandes : Say hello to OBJECT Get subform container value et OBJECT SET SUBFORM CONTAINER VALUE.

Améliorer la communication entre formulaires et sous-formulaires

Deux nouvelles commandes

Les nouvelles commandes OBJECT Get subform container value et OBJECT SET SUBFORM CONTAINER VALUE doivent être utilisées dans le contexte du sous-formulaire.

La première – OBJECT Get subform container value sera le plus souvent utilisée lorsqu’un événement On Bound Variable Change est généré, c’est-à-dire après que la variable (ou l’expression) associée au sous-formulaire du formulaire parent soit modifiée. Il est donc utilisé pour lire cette nouvelle valeur.

La seconde – OBJECT SET SUBFORM CONTAINER VALUE sera utilisée si, à partir du sous-formulaire, vous souhaitez modifier la valeur de la variable (ou de l’expression) associée au sous-formulaire du formulaire parent.

Pourquoi ces commandes ?

Jusqu’à présent, il y avait deux façons d’obtenir cette information.

Le moyen le plus simple(et le plus récent) est d’associer une variable de type objet au sous-formulaire. Dans ce cas, les attributs de cet objet sont accessibles directement par la fonction Form au sein du sous-formulaire. Cela fonctionne bien mais utiliser un objet quand on a besoin d’une simple valeur n’est pas forcément une bonne pratique.

La deuxième façon(plus historique) consiste à créer un pointeur vers la variable en question via la commande OBJECT Get pointer avec le paramètre Object subform container. Cela fonctionne, mais uniquement lorsqu’un variable est associé à des sous-formulaires. Malheureusement, cela n’est pas possible lorsqu’il s’agit d’une expression (par exemple, Form.myValue) car il n’est pas possible de créer un pointeur sur une expression.

Ces deux commandes représentent donc la solution la plus pratique et la plus directe pour les cas simples ! Elles simplifieront la programmation des cas les plus courants. Le code sera plus lisible et plus facile à maintenir.

Bonne programmation avec 4D !

Roland Lannuzel
- Product Owner & 4D Expert - Après avoir étudié l'électronique, Roland s'est lancé dans l'informatique industrielle en tant que développeur et consultant, créant des solutions pour les clients avec une variété de bases de données et de technologies. À la fin des années 80, il est tombé amoureux de 4D et l'a utilisé pour écrire des applications commerciales, notamment des systèmes de comptabilité, de facturation et de messagerie électronique. Il a rejoint la société en 1997 et a contribué à la conception de spécifications, d'outils de test et de démonstrations, ainsi qu'à la formation et à la présentation de la communauté 4D lors de nombreuses conférences. Il continue à façonner activement l'avenir de 4D en définissant de nouvelles fonctionnalités et des outils de développement de bases de données.