IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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 :

Question d'ordre pratique à propos des sous-formulaire


Sujet :

4D

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2004
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 71
    Points : 35
    Points
    35
    Par défaut Question d'ordre pratique à propos des sous-formulaire
    Bonjour,
    Je viens de découvrir une autre enigme qui me pose probleme

    Jai créer un formulaire contenant 3 sous formulaires. Chaque sous formulaire est une liste composé d'une variable et de 3 champs.

    Jai reglé les taquets de corps, rupture et pied de maniere a ce que lon voit, lors de l'execution de l'appli, plusieurs lignes dans l'espace dedié au sous formulaire.

    ET la vien le probleme, l'endroit reservé a la variable se repete sur chacune des lignes, meme les lignes ou les champs sont vides. Et ce quil est possible de faire afficher la variable que sur les lignes ou les autres champs sont non vides?
    J'ai pensé faire une condition sur le sous formulaire pour que la variable s'affiche que lorsqu'un champs est non vide. Qu'en pensez vous?

    Merci d'avance

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 71
    Points : 89
    Points
    89
    Par défaut
    Bonjour,

    Vous devez régler les taquets pour chaque formulaire de manière individuelle.
    Avant de glisser déposer vos 3 sous-formulaires dans votre formulaire, vos taquets doivent donc avoir été configurées correctement.

    Si vous souhaitez avoir plus d'informations, je vous conseille de jeter un coup d'oeil à partir de la page 562 de la documentation suivante: ftp://ftp-developpez.com/4d/document..._Structure.pdf

    Cordialement

  3. #3
    Nouveau membre du Club
    Inscrit en
    Novembre 2004
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 71
    Points : 35
    Points
    35
    Par défaut
    Jai modifier les formulaires et les sous formulaires pour que les taquets soit reglés avant le glisser deposer. Cependant rien n'y change, la colonne contenant la variable s'affiche tjs meme qd il ny a pas de valeur dans les autres champs.

    Sur le tutorial de 4D, ils n'apportent pas de solution, ils expliquent simplement ce que signifie les differents taquets et ce quil peut y avoir dans une zone de corps ou de rupture.

    Je joint 1 photo, cela vous aidera peu etre a comprendre un peu mieux mon probleme.
    Images attachées Images attachées  

  4. #4
    Membre habitué

    Inscrit en
    Juin 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 76
    Points : 131
    Points
    131
    Par défaut
    oui, il faut utiliser le code suivant dans la gestion de l'evenement formulaire sur affichage corps :

    si(enregistrement charge([table]))
    remplir les variables
    sinon
    mettre les variables à vide
    fin de si

  5. #5
    Nouveau membre du Club
    Inscrit en
    Novembre 2004
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 71
    Points : 35
    Points
    35
    Par défaut
    jai essayé votre technique mais il me marque un message d'erreur comme quoi il me manque une table.
    ce qui est bizarre, c'est que le probleme ne se pose pas dans la version 6.5.
    Pour la meme configuration du formulaire, le resultat n'est pas le meme suivant les versions...

  6. #6
    Membre habitué

    Inscrit en
    Juin 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 76
    Points : 131
    Points
    131
    Par défaut
    Citation Envoyé par le_gueux
    jai essayé votre technique mais il me marque un message d'erreur comme quoi il me manque une table.
    vérifiez la syntaxe dans la doc, vous avez fait une erreur.

    Citation Envoyé par le_gueux
    j
    ce qui est bizarre, c'est que le probleme ne se pose pas dans la version 6.5.
    Pour la meme configuration du formulaire, le resultat n'est pas le meme suivant les versions...
    oui, c'est normal, la gestion des sous-formulaires a énormément évolué

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 71
    Points : 89
    Points
    89
    Par défaut
    Est-ce que la table en question est une sous-table ?

  8. #8
    Membre habitué

    Inscrit en
    Juin 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 76
    Points : 131
    Points
    131
    Par défaut
    Citation Envoyé par CGareau
    Est-ce que la table en question est une sous-table ?
    ah, non, effectivement, les soustables je ne connais plus depuis des années.

    Désolé, il s'agit effectivement d'une table.

  9. #9
    Nouveau membre du Club
    Inscrit en
    Novembre 2004
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 71
    Points : 35
    Points
    35
    Par défaut
    la table en question est une sous table
    je sais que je ne devrait pas utiliser de sous table mais la base en question a été concu avec des sous tables (et des sous-sous-tables) et la reconcevoir me prendrait trop de temps.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 71
    Points : 89
    Points
    89
    Par défaut
    Je ne peux que vous conseillez de prendre un peu de temps car vous en perdrez à côté jusqu'au jour où les sous-tables ne seront peut-être plus supportées.

    En attendant un code comme ci-dessous placé dans la méthode formulaire du formulaire liste de votre sous-table (fonctionne en v2004.4) pourrait vous permettre de remédier à votre problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    C_ALPHA(80;vTest)
     
    Au cas ou 
        : (Evenement formulaire=Sur affichage corps )
            Si ([TABLE]SOUS_TABLE'champ_sous_table#"")
                Si (vTest#[TABLE]SOUS_TABLE'champ_sous_table)
                    vTest:=[TABLE]SOUS_TABLE'champ_sous_table
                    CHOIX VISIBLE(*;"votre_variable";Vrai)
                Sinon 
                    CHOIX VISIBLE(*;"votre_variable";Faux)
                Fin de si 
            Fin de si 
        Sinon 
            vTest:=""
    Fin de cas

  11. #11
    Nouveau membre du Club
    Inscrit en
    Novembre 2004
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 71
    Points : 35
    Points
    35
    Par défaut
    Merci bcp pour le code.
    Jaimerais savoir par contre a quoi sert la variable vTest ainsi que le test:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Si (vTest#[TABLE]SOUS_TABLE'champ_sous_table)

    La variable vTest n'est pas initialisée et je ne comprend pas bien a quoi elle sert.

    ce code la serait il faux?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Au cas ou 
        : (Evenement formulaire=Sur affichage corps )
            Si ([TABLE]SOUS_TABLE'champ_sous_table#"")  ``Teste si un champ est vide ou non
                    CHOIX VISIBLE(*;"votre_variable";Vrai) ``si il n'est pas vide on affiche la variable
            Sinon 
                    CHOIX VISIBLE(*;"votre_variable";Faux) ``sil est vide on ne l'affiche pas
            Fin de si 
    Fin de cas

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 71
    Points : 89
    Points
    89
    Par défaut
    La variable vTest sert à mémoriser l'ancienne valeur (unique) du champ de votre sous-table et ainsi à ne pas afficher la variable lorsqu'il n'y a plus d'enregistrements.

    Elle est initialisée au chargement du formulaire une première fois et chaque fois que vous déclenchez un événement :


  13. #13
    Nouveau membre du Club
    Inscrit en
    Novembre 2004
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 71
    Points : 35
    Points
    35
    Par défaut
    je vien d'essayer votre technique, cependant l'application ne veux rien savoir, pas moyen de faire afficher la variable la ou je le veux.

    Je joint les code, jai surement du faire une faute dedans ms jene voit pas laquelle.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    C_ALPHA(80;$vTest)
     
    Code:=Code
    CHARGER SUR LIEN(Code)
     
    Au cas ou 
    	: (Evenement formulaire=Sur affichage corps )
    		Si ([ALLOC]PREST ALLOC'Discipline#"")
    			Si ($vTest#[ALLOC]PREST ALLOC'Discipline)
    				$vTest:=[ALLOC]PREST ALLOC'Discipline
    				AH1:=[PRESTATION]Libellé
    				CHOIX VISIBLE(*;AH1;Vrai)
    			Sinon 
    				CHOIX VISIBLE(*;AH1;Faux)
    			Fin de si 
    		Fin de si 
    	Sinon 
    		$vTest:=""
    Fin de cas 
     
    ........(la suite du code).......

    la variable a afficher est la variable AH1.

  14. #14
    Nouveau membre du Club
    Inscrit en
    Novembre 2004
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 71
    Points : 35
    Points
    35
    Par défaut
    non le sous-champ discipline n'est pas unique, le champ unique n'est pas afficher.
    Est ce que je doit faire le test sur le sous-champ unique meme si il n'est pas affiché ou je laisse comme c'est?

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 71
    Points : 89
    Points
    89
    Par défaut
    Vous avez oublié les guillemets avant et après AH1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CHOIX VISIBLE(*;"AH1";Vrai)
    Votre sous-champ "Discipline" est bien unique ?

    Par contre ne mettez pas de $ devant la variable vTest car sinon elle devient une variable locale donc elle n'a de porter que dans l'événement. La variable ne sera donc pas initialisée et le code ne fonctionnera pas.
    Sans le $ elle devient une variable process et a ainsi une portée dans tout les événements du formulaire.

    Citation Envoyé par le_gueux
    Est ce que je doit faire le test sur le sous-champ unique meme si il n'est pas affiché ou je laisse comme c'est?
    oui faites le sur le champ unique même s'il n'est pas affiché. Sinon vous aurez des lignes où votre variable ne sera pas affichée.

  16. #16
    Nouveau membre du Club
    Inscrit en
    Novembre 2004
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 71
    Points : 35
    Points
    35
    Par défaut
    je suis desolé, malgré tous vos conseils, la variable continue a s'afficher meme qd elle ne le doit pas.

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 71
    Points : 89
    Points
    89
    Par défaut
    Avez-vous enlever tous les $ devant vTest ?

    Etes-vous en 2004.4 ?

  18. #18
    Nouveau membre du Club
    Inscrit en
    Novembre 2004
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 71
    Points : 35
    Points
    35
    Par défaut
    jai bien enlevé le $ devanty le vTest
    sinon je suis en version 2004 mais je ne crois pas que je suis en v2004.4

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 71
    Points : 89
    Points
    89
    Par défaut
    Il faudrait que vous me disiez en quelle version vous êtes exactement et sur quel OS. Comme ça je ferai un test.

    Pour connaitre la version de 4D : Mode structure -> Aide -> A propos de 4ème Dimension -> Version : version Windows(tm) 8.0.x

    Par contre il est conseillé de faire les MAJ de votre 4ème Dimension 2004 (gratuites) ce qui vous permet de bénéficier des dernières amméliorations et des corrections de bug. Et votre problème disparaitra surement en plus.

  20. #20
    Nouveau membre du Club
    Inscrit en
    Novembre 2004
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 71
    Points : 35
    Points
    35
    Par défaut
    bonjour,
    donc, la version du logiciel est 2004.3, je suis en train de telecharger la 2004.4 (=> je trouve dommage par contre de devoir retelecharger le logiciel entierement, ils auraient pu mettre 1 patch, ca aurait été plus rapide.)
    Je travaille sous Windows XP pro.

Discussions similaires

  1. affichage des sous-formulaires
    Par hkiko abdelhaq dans le forum Access
    Réponses: 2
    Dernier message: 18/04/2006, 13h23
  2. Problème d'id sur des sous formulaires.
    Par antier dans le forum Access
    Réponses: 4
    Dernier message: 07/01/2006, 16h53
  3. Réponses: 2
    Dernier message: 28/09/2005, 17h08
  4. Filtrages dans des sous-formulaires
    Par Smint dans le forum Access
    Réponses: 4
    Dernier message: 20/09/2005, 13h56
  5. modifer un seul des sous formulaire
    Par hades666evil dans le forum Access
    Réponses: 6
    Dernier message: 12/09/2005, 20h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo