Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

4D Discussion :

Problème affichage sous formulaire


Sujet :

4D

  1. #1
    Nouveau Candidat au Club
    Problème affichage sous formulaire
    Bonjour,

    Je rencontre un problème d'affichage d'un sous-formulaire.

    J'ai un formulaire projet avec la page 0, 1, et 2.
    J'ai un bouton qui va à la page 1 et qui affiche le formulaire de sortie de ma table [Article], jusqu'ici pas de problème.

    J'ai un autre bouton qui va à la page 2 et qui devrait afficher le formulaire de sortie de ma table [Client]
    => pourquoi ce sous formulaire n'apparait pas ?! je n'arrive pas à comprendre...

    cf.pièce jointe (imprim écran)

    Merci pour votre aide,

    Cdt,
    Louis

  2. #2
    Membre régulier
    Citation Envoyé par Louis_T Voir le message
    Bonjour,
    Je rencontre un problème d'affichage d'un sous-formulaire.
    ...
    J'ai un autre bouton qui va à la page 2 et qui devrait afficher le formulaire de sortie de ma table [Client]
    => pourquoi ce sous formulaire n'apparait pas ?! je n'arrive pas à comprendre...
    Louis
    Bonjour Louis,

    La raison est simple. Tu travailles dans le "process principal" et, dans ta liste des tables, c'est la table [Client] qui est affichée, or 4D ne sait pas (ou ne veut pas) afficher dans un même process 2 listes de la même table (1 dans ton formulaire et l'autre dans la fenêtre d'utilisation courante).
    Si tu veux vérifier, change dans l'utilisation la table que tu affiches et tu verras que ton sous-formulaire client apparaît bien et que c'est celui de ta 1ère page qui ne sera plus affiché.

    Pour que ça marche il faut afficher ton formulaire dans un autre process en créant une méthode => de manière simple :

    Créer une méthode dans la quelle tu mets ceci (en remplaçant par le nom de ton formulaire)

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    $fen:=Creer fenetre formulaire("TonFormulaire";4;Centrée horizontalement;Centrée verticalement)
    DIALOGUE("TonFormulaire")
    FERMER FENETRE($fen)


    Et tu exécutes cette méthode dans un nouveau process (voir le petit triangle noir en bas à droite du bouton d'exécution de ta méthode)

    Et là tu devrais avoir le résultat attendu.

    C'est un problème récurrent dans les formations que je fais, tous les stagiaires ont tendance à exécuter directement le formulaire, sans passer par la méthode et rencontrent ce problème.

    Bonne journée

    Denis