J'ai perdu la Form

Bonjour les anachorètes,

Un formulaire table d’une table [PARAMETRE]
est appelé ainsi :

  • Open form window
  • DIALOG
    La variable objet Form est bien présente et non null

A la 14e page de mon formulaire, j’ai un formulaire inclus dans lequel a été placée une listbox sélection
Le formulaire de la listbox affiché dans le sous formulaire provient d’un composant
Tout marche bien

Quand je double clique sur un enregistrement de cette Listbox
Dans le container de sous formulaire
j’appelle MODIFY RECORD([MATABLE])
L’enregistrement se charge bien

Mon problème du jour :
Dans le contexte de cet enregistrement je n’ai plus la variable Form

Visiblement Form attise toutes les convoitises.

Cela fait plusieurs fils/threads qui traitent de ce sujet communication formulaire hôte et sous-formulaire.

Nous sommes nombreux à patauger sur cet aspect. appel, lecture, écriture, synchronisation entre les deux entités.
Le semaine dernière encore une discussion sans fin à ce sujet avec Arnaud et nous étions tous les deux sceptiques sur les processus.

Tu peux utiliser “EXECUTER METHODE DANS SF” pour mettre à jour le Form du sous-formulaire…

Un exemple concret sur 4D blog serait le bienvenu.

: Eric JUHEL

Tu peux utiliser “EXECUTER METHODE DANS SF” pour mettre à jour le
Form du sous-formulaire…

Je ne suis pas du tout dans ce contexte :

Quand mon enregistrement s’ouvre
Dans le on load, je lis un champ objet (une propriété pour une collection)
je prends la collection et je la colle à : Form.description

L’expression de ma listbox collection invoque Form.description

Et le problème est que je n’ai pas de Form quand la documentation me dit que j’aurai dû en avoir un.

Sur ce coup, mon problème devrait être contourné, mais j’apprécierais de comprendre l’absence de Form

OK.

Mon sentiment, c’est que nous sommes tous entrain de contourner.
De contourner un aspect difficile à saisir.

Le coup du conteneur sans nom avec un variable objet associée et d’utiliser objet lire pointeur d’un coté ou un Form.monSubForm comme objet associé manque d’exemples simples tout de même.

: Bertrand SOUBEYRAND

j’appelle MODIFY RECORD([MATABLE])

Déjà, Bertrand, Honte à toi de continuer à utiliser cette commande obsolète, elle fait tellement de chose qu’on ne sait plus ce qu’elle fait exactement… :twisted:

Pour modifier ton enregistrement, tu dois utiliser un dialogue et donc un nouveau (sous-) formulaire ! donc un nouveau Form…

: Manuel PIQUET

Honte à toi

Honte à moi
Shame on me
Die Scham
الحشومة

D’accord avec tes remarques :

  • le fonctionnement des sous-formulaires est complexe et pas facile à comprendre
  • la doc est mal faite et il manque une base exemple complète avec explications.

Ce qui manque surtout dans les cas complexes, c’est la philosophie du système : que cherche-t-on à faire et quelles sont les solutions ?
En réalité, on n’a guère que des descriptions de commandes avec très peu de contexte.

J’aimerais que mon Form soit partagé entre le formulaire principal et les sous-formulaires (à moi de me démerder à mettre les infos dans la bonne case), mais ça ne fonctionne pas.
Kirk, dans une de ses bases test, met Form dans la variable du sous-formulaire mais ça n’a pas l’air de fonctionner.

Bien d’accord avec vous sur ces difficultés à s’approprier la chose. Pour commencer, une doc centralisée qui pointerait les différents endroits de la doc qui traite du sujet serait une sérieuse avancée de mon point de vue : on trouve des choses dans Développement, des choses dans Langage et peut-être encore ailleurs et difficile de savoir si on manque pas quelque chose. Une page “centrale” qui recense ces différentes ressources serait bien agréable.
(et ça pourrait s’appliquer à d’autres sujets aussi comme les listbox par exemple…)

Comme par le passé, le problème réside dans le passage de paramètres (contexte) ; 4D a enfin daigné nous écouter en introduisant la gestion du Form et surtout le passage d’un objet dans la commande Dialogue. Il faudrait pouvoir faire de même lors de la création d’un sous-formulaire. :idea:

Un exemple https://github.com/vdelachaux/4DPop-XLIFF-Proici>, c’est déjà du vieux code mais c’est une base de réflexion.

1 Like