Passage de données entre les formulaires

Traduit automatiquement de Deepl

Ne serait-il pas formidable de pouvoir simplement ouvrir un formulaire et lui passer quelques paramètres pour initialiser vos objets de formulaire ? Et si vous pouviez également récupérer les données pour les traiter, après qu’elles aient été modifiées par l’utilisateur ? 4D v16 R5 facilite grandement votre codage en simplifiant considérablement les communications avec les formulaires.

Jusqu’à présent, lorsque vous vouliez afficher des données (ne provenant pas de la base de données elle-même, mais calculées ou externes) à plusieurs utilisateurs, vous aviez deux options : soit écrire un code complexe pour gérer l’affichage des données dans plusieurs processus, soit créer autant de formulaires que nécessaire avec un tas de variables globales. Mais vous savez que les variables globales ne sont pas une façon optimisée de coder, du point de vue de la mémoire.

Débarrassez-vous donc de votre code complexe et de vos variables globales ! Avec 4D v16 R5, vous pouvez simplement lier un objet à votre formulaire et l’utiliser en interne avec la nouvelle commandeForm . Sans douleur… et puissant !

Exemple de base de données

Passer des paramètres à un formulaire

Il est maintenant possible de passer des paramètres dans un objet à un formulaire en utilisant la commande DIALOG à un formulaire. Toute propriété de cet objet sera alors disponible dans le contexte du formulaire via la commande Form dans le contexte du formulaire.

C_LONGINT($window)
C_OBJECT($address)

$address:=Nouvelobjet
$address.CompanyName:="4D"
$address.LastName:="Dupont"
...

$window:=Openform window("AddressForm" ;Boîte de dialogue à formulaire mobile)

// Le formulaire est ouvert avec l'objet $address en paramètre
// Cela permet de modifier l'objet $address dans le formulaire avec la commande Form
DIALOG("AddressForm" ;$address)
CLOSE WINDOW($window)
ALERT("Le nouveau nom de la société est : "+
$address.CompanyName)

Dans le formulaire « AddressForm », il suffit d’utiliser la commande Form dans la source de données de l’objet du formulaire :

Lorsque l’utilisateur ferme la fenêtre, les valeurs qu’il a saisies sont disponibles dans la méthode d’appel via l’objet $address .

Passer des paramètres à un sous-formulaire

De la même manière que vous passez un objet à un formulaire avec la commande DIALOG vous pouvez également transmettre un objet à une zone de sous-formulaire en utilisant la liste de propriétés. Ensuite, vous pouvez l’utiliser dans le sous-formulaire avec la commande Form dans le sous-formulaire. Dans l’exemple ci-dessous, l’objet InvoiceAddress est lié au sous-formulaire.

blank

Fabrice Mainguené
- Product Owner -Fabrice Mainguené a rejoint l'équipe du programme 4D en novembre 2016. En tant que Product Owner, il est en charge 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 de la fonctionnalité livrée répond au besoin du client.Après avoir obtenu une licence en informatique au CNAM, Fabrice a rejoint une petite société d'édition de logiciels en tant que développeur Windev. Il a ensuite travaillé pour différentes entreprises dans les domaines de l'industrie et du commerce en tant que développeur Windev et web ainsi que conseiller technique sur les nouvelles fonctionnalités.