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

WinDev Discussion :

tables maître/ détail ,Windev17 [WD17]


Sujet :

WinDev

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 43
    Points : 47
    Points
    47
    Par défaut tables maître/ détail ,Windev17
    Bonjour,
    j'a deux fichiers de données : "Classes " et "eleves" ( avec une liaison 1-n) .
    j'ai deux tableaux : "classes " et " eleves" lorsque l'utilisateur sélectionne (en y cliquant) une ligne du tableau associé au fichier de données " Classes" je veux que le 2éme tableau associé au ficher de données "eleves" soit remplies ( en affichage) par les eleves de la classe selectionnée .
    J'éspère que c'est bien expliqué, Je suis débutant en Windev, si quelqu'un peut me donner une idée , un exemple à suivre, je suis preneur, et merci d'avance.

  2. #2
    Membre régulier
    Inscrit en
    Août 2008
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 173
    Points : 83
    Points
    83
    Par défaut
    Salut,
    Il te faut remplir la 2ème table par programmation et c'est très simple....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    HlitPremier(eleves,id_eleves)
    si Htrouve() Alors
    Tantque pas hendehors(eleves)
    SI eleves.id_classe=Nom_table_1.col_id_classe Alors
    TableAjoute(Nom_table_2,...................................)
    Fin
    HlitSuivant(eleves,id_eleves)
    Fin
    Fin

  3. #3
    Rédacteur/Modérateur

    Avatar de dsr57
    Homme Profil pro
    Analyste programmeur senior
    Inscrit en
    Octobre 2003
    Messages
    1 139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Analyste programmeur senior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 139
    Points : 4 681
    Points
    4 681
    Billets dans le blog
    22
    Par défaut
    Remplit ta deuxième table par programmation comme indiqué par aurabarth

    En revanche aurabarth, dans votre code vous parcourez l'ensemble du fichier Eleves et effectuez un test enregistrement par enregistrement sur la classe. On pourrait indiquer cette condition dans la fonction HlitRecherche.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    HlitPremier(eleves,id_classe,Nom_table_1.col_id_classe)
    si Htrouve() Alors
       Tantque pas hendehors(eleves)
             TableAjoute(Nom_table_2,...................................)
              HlitSuivant(eleves)
         Fin
    Fin
    Code non testé

    Bon dev
    ------------------------------------------------------------------------------------------------------------------------------------------
    Mon message vous a aidé, pensez à remercier . La discussion est résolue, n'oubliez pas le tag
    ------------------------------------------------------------------------------------------------------------------------------------------
    Site perso : Formation, Expérience, Réalisations, ...
    Blog : Le Blog de DSR57 - Programmation WinDev

  4. #4
    Membre éprouvé

    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    402
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 402
    Points : 915
    Points
    915
    Par défaut
    Bonjour,

    ou bien vous liez la table classe au fichier de donnée "classe" et la table eleves à une requête du genre "SELECT * FROM eleves WHERE idClasse= param1"
    et lorsuqu'une ligne de la table classe est sélectionnée vous demandez l'initialisation de la requête et l'actualisation de l'affichage de la table eleves.

    En fais il doit y avoir une dizaine de solutions différentes pour ce problème et le choix de la "bonne solution" dépend essentiellement du volume et de l'utilisation persistante de ces données dans le logiciel.

    Bon dev

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 43
    Points : 47
    Points
    47
    Par défaut
    Merci tout le monde. Je vais essayer ce que vous avez proposés.

  6. #6
    Membre régulier
    Inscrit en
    Août 2008
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 173
    Points : 83
    Points
    83
    Par défaut
    Merci dsr57,
    j'utilise cette fonction hlitrecherchePremier mais je ne savais pas qu'elle maintient la condition de recherche même dans le Tantque ....

    Merci pour l'astuce, c'est Cool !

  7. #7
    Membre régulier
    Inscrit en
    Août 2008
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 173
    Points : 83
    Points
    83
    Par défaut
    Salut,
    dsr57 j'ai essayé d'utiliser la fonction HLitRecherchePremier sans utiliser la structure conditionnelle comme tu l'as suggéré mais je n'obtiens pas de bon résultats. As-tu vraiment déjà testé cette astuce ?
    Merci.

  8. #8
    Rédacteur/Modérateur

    Avatar de dsr57
    Homme Profil pro
    Analyste programmeur senior
    Inscrit en
    Octobre 2003
    Messages
    1 139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Analyste programmeur senior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 139
    Points : 4 681
    Points
    4 681
    Billets dans le blog
    22
    Par défaut
    Effectivement après avoir testé le code, le résultat n'est pas au rendez-vous .

    j'ai corrigé le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    HlitRecherchePremier(eleves,id_classe,Nom_table_1.col_id_classe)
     
    Tantque Htrouve(eleves)
          TableAjoute(Nom_table_2,...................................)
          HlitSuivant(eleves)
    Fin
    Bon dev
    ------------------------------------------------------------------------------------------------------------------------------------------
    Mon message vous a aidé, pensez à remercier . La discussion est résolue, n'oubliez pas le tag
    ------------------------------------------------------------------------------------------------------------------------------------------
    Site perso : Formation, Expérience, Réalisations, ...
    Blog : Le Blog de DSR57 - Programmation WinDev

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 43
    Points : 47
    Points
    47
    Par défaut
    Citation Envoyé par dsr57 Voir le message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    HlitRecherchePremier(eleves,id_classe,Nom_table_1.col_id_classe)
     
    Tantque Htrouve(eleves)
          TableAjoute(Nom_table_2,...................................)
          HlitSuivant(eleves)
    Fin
    bonjour tout le monde, c'est quoi les arguments que prend TableAjoute ?

  10. #10
    Rédacteur/Modérateur

    Avatar de dsr57
    Homme Profil pro
    Analyste programmeur senior
    Inscrit en
    Octobre 2003
    Messages
    1 139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Analyste programmeur senior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 139
    Points : 4 681
    Points
    4 681
    Billets dans le blog
    22
    Par défaut
    un petit tour dans l'aide en ligne : TableAjoute
    ------------------------------------------------------------------------------------------------------------------------------------------
    Mon message vous a aidé, pensez à remercier . La discussion est résolue, n'oubliez pas le tag
    ------------------------------------------------------------------------------------------------------------------------------------------
    Site perso : Formation, Expérience, Réalisations, ...
    Blog : Le Blog de DSR57 - Programmation WinDev

  11. #11
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 43
    Points : 47
    Points
    47
    Par défaut
    Citation Envoyé par dsr57 Voir le message
    un petit tour dans l'aide en ligne : TableAjoute
    Merci dsr57, ça marche parfaitement,
    à titre d'indication, il faut ajouter la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TableSupprimeTout(table_2)
    au début du code que vous avez proposé, sinon à chaque sélection dans le 1er tableau, des tuples s'ajoutent dans le deuxième tableau au lieu qu'il soit mis à jour.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Définir table Maître-Détail en runtime
    Par Pedro dans le forum Bases de données
    Réponses: 2
    Dernier message: 12/08/2013, 10h57
  2. Maître/Détail avec plusieurs tables
    Par delphinauxdz dans le forum Bases de données
    Réponses: 2
    Dernier message: 26/09/2007, 10h41
  3. Supprimer champ dans table maître avec tous détails clients
    Par dj_techno dans le forum Bases de données
    Réponses: 35
    Dernier message: 15/02/2007, 15h40
  4. Generateur IB et table Maître Détail
    Par 2icd dans le forum InterBase
    Réponses: 19
    Dernier message: 06/01/2006, 21h34
  5. [paradox] Post tables maître détail
    Par delphicrous dans le forum Bases de données
    Réponses: 1
    Dernier message: 23/09/2004, 10h28

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