Utiliser un sous-formulaire dans un formulaire multi-page

Bonjour,

Je tiens tout d’abord à dire que je ne suis pas familier des sous-formulaires. Mais je voulais m’y mettre (il n’est jamais trop tard pour bien faire) mais j’ai bien l’impression que ce sera pas pour cette fois :disappointed:

Je suis dans le cadre d’un formulaire à 2 pages dont la page 2 affiche des données différentes selon une boîte à cocher située page 1. Jusque là, je gérais ça dans le formulaire principal en jouant sur la visibilité. Pénible mais on y arrive. Et je gérais ça dans une méthode qui s’exécutait au début du chargement, que ce soit la page 1 ou la page 2 qui s’ouvre en 1er puisque les 2 sont concernées.
Je me suis dit que ce serait plus simple de mettre ça dans 2 sous-formulaires distincts mais avant même de commencer ça, je me heurte au problème du chargement du sous-formulaire (qui ne se charge que lorsque la page le contenant est affichée). J’en ai déjà entendu parlé plusieurs fois mais je n’ai pas retenu les solutions proposées pour gérer ça.
Mais quoi qu’il en soit, ça veut dire qu’à un moment donné, je n’ai pas accès aux infos qui sont dans la page non affichée. Et ça, sur le principe, je trouve ça gênant. Mais je loupe peut-être quelque chose ?

Merci de votre aide…

: Eric TROTTA

Mais quoi qu’il en soit, ça veut dire qu’à un moment donné, je n’ai
pas accès aux infos qui sont dans la page non affichée. Et ça, sur
le principe, je trouve ça gênant.
C’est comme ça, le form parent ne sait pas ce qui se passe dans le sous formulaire et réciproquement. En même temps ça me semble normal, c’est à nous de gérer les échanges, c’est de la logique métier, et ça préserve la modularité car par principe, le sous formulaire peut contenir n’importe quoi.

Si tu veux mettre des choses en commun entre les deux, la variable ou expression du sous formulaire (typée objet) te sert de “pot commun”.

Supposons que l’hôte donne l’heure au sous form :
1 dans le contexte de l’hôte j’écris : monSousForm.heureCourante:=heure courante
2 dans le contexte du sous formulaire, je peux lire : Form.heureCourante
Pareil dans l’autre sens (le sous form écrit dans Form et l’hôte lit monSousForm)

Pour les événements :
1 quand l’hôte modifie monSousForm, le sous formulaire reçoit “sur modif variable liée”
2 quand le sous formulaire modifie Form, la méthode objet du sous formulaire dans l’hôte reçoit “sur données modifiées” ; sauf quand l’hôte est sourd (ça vient de m’arriver je comprends pas pourquoi ça m’énerve), dans ce cas tu fais APPELER CONTENEUR SOUS FORMULAIRE (uneValeur) et là ce @#$* d’hôte arrête d’être sourd

Bonjour Arnaud,

Je ne suis pas dans le cadre d’un composant ou d’un module fonctionnant comme un composant : j’ai un formulaire complexe dans lequel j’ai 2 états qui affichent des choses différentes et que, par commodité, je voulais mettre dans 2 sous-formulaires distincts.
Mais en utilisant OBJECT Get pointer(Object named;“MonObjet”;“MonSubForm”), j’accède sans problème à son contenu (je lis, j’affecte, je masque, etc…). Mais pour ça, faut que je sois sûr que le sous-formulaire est déjà chargé ce que je trouve une contrainte pénible…

Salut Éric,
je ne parlais pas de composant, là, on verra ça quand j’aurai mon DNBSF (diplôme de neuneu de base es sous formulaire), je le rate avec constance.

J’ai développé un genre d’assistant d’import dont l’hôte “héberge” 3 ou 4 sous formulaires distincts (successifs, dans ce contexte d’assistant), ça peut ressembler à ce que tu souhaites faire. Le sous formulaire est typé objet et j’y inscris ce qui doit être partagé entre l’hôte et le sous formulaire (et il y a du monde.)

Un autre truc que j’ai fait est un hôte qui héberge 3 occurrences du même sous formulaire avec 3 “rôles” distincts ; le “rôle” en question est connu du sous formulaire parce que l’hôte a écrit dans leur variable un truc du genre :
sousform1.role:=“fais le café”
sousform2.role:=“ajoute du sucre”
sousform3.role:=“touille”
Chacun d’eux lit son Form.role pour identifier sa tâche.

Là où ça se complique, je pense, c’est si tu as plus de 2 niveaux : A dans B dans C, par exemple, où C et A devraient “se parler”. Il faut que je trouve du temps pour bosser sur les pistes que Vincent a donné.

Bonjour Arnaud
n’étant pas capable de tenter le DNBSF peux tu nous donner une petite base demo ( si tu es le temps)

Merci
Cordialement

Moi non plus, je suis pas près d’avoir mon DNBSF (pourtant j’aimerais bien :stuck_out_tongue:). En fait, mon problème est plutôt de l’ordre d’une gestion des vues. Cette interface n’est pas au top mais finalement ça fait le job.

Merci de ton aide (et à l’occas pour un stage intensif DNBSF)