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 :

Table hiérarchique par programmation [WD23]


Sujet :

WinDev

  1. #1
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2018
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2018
    Messages : 151
    Points : 107
    Points
    107
    Par défaut Table hiérarchique par programmation
    Bonjour à tous,
    je rencontre le problème suivant lors de l'affichage de la table hiérarchique à 4 niveaux (auteur, livre, livre-sujet, sujet) dont voici le code :

    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
     
    POUR TOUT auteur
    	TableAjoute(TABLEH_auteurLivre,auteur.identité) 
    FIN
     
    POUR TOUT livre 
    	HLitRecherchePremier(auteur, IDauteur, livre.IDauteur)
    	TableAjouteFils(TABLEH_auteurLivre,TableCherche(TABLEH_auteurLivre.COL_SansNom1,auteur.identité), livre.titre)
    FIN
     
    POUR TOUT livre_sujet 
    	HLitRecherchePremier(livre, IDlivre,livre_sujet.IDlivre)
    	TableAjouteFils(TABLEH_auteurLivre,TableCherche(TABLEH_auteurLivre.COL_SansNom1,livre.titre), livre_sujet.IDsujet)
    FIN
     
    POUR TOUT sujet 
    	HLitRecherchePremier(sujet,IDsujet,livre_sujet.IDsujet)
    	TableAjouteFils(TABLEH_auteurLivre, TableCherche(TABLEH_auteurLivre.COL_SansNom1, livre_sujet.IDlivre_sujet),sujet.libsujet)
    FIN
    je précise que livre_sujet est un fichier de relation. J'arrive à afficher jusqu'au niveau 3 mais le niveau 4(sujet) n'est pas pris en compte. Cela provient-il du niveau 3 ? est-il incompatible dans une table hiérarchique ? Erreur de code au niveau 4 ?.
    Merci pour vos conseils
    Bernisch

  2. #2
    Membre du Club
    Homme Profil pro
    Urbaniste
    Inscrit en
    Octobre 2017
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Octobre 2017
    Messages : 31
    Points : 49
    Points
    49
    Par défaut
    bonjour
    déjà tu devrais tout englober au sein du même pour tout
    => cela t'éviterait tous ces hlitrecherche et tableaucherche qui ne servent à rien

  3. #3
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2018
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2018
    Messages : 151
    Points : 107
    Points
    107
    Par défaut peux-tu être plus précis ?
    Citation Envoyé par Gnouxyz Voir le message
    bonjour
    déjà tu devrais tout englober au sein du même pour tout
    => cela t'éviterait tous ces hlitrecherche et tableaucherche qui ne servent à rien
    Un exemple serait souhaitable car si j'emploie Tablecherche C'est pour pouvoir obtenir l'indice. Mais il y a certainement une solution plus élégante mais pas de mon niveau. Merci pour ton début de réponse.
    Bernisch

  4. #4
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 057
    Points : 9 396
    Points
    9 396
    Par défaut
    Je trouve que ton code serait plus lisible ainsi :
    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
    23
    t est un entier 
     
    POUR TOUT auteur
    	TableAjoute(TABLEH_auteurLivre,auteur.identité) 
    FIN
     
    POUR TOUT livre 
    	HLitRecherchePremier(auteur, IDauteur, livre.IDauteur)
    	t= TableCherche(TABLEH_auteurLivre.COL_SansNom1 ,auteur.identité)
           TableAjouteFils(TABLEH_auteurLivre, t, livre.titre)
    FIN
     
    POUR TOUT livre_sujet 
    	HLitRecherchePremier(livre, IDlivre,livre_sujet.IDlivre)
            t = TableCherche(TABLEH_auteurLivre.COL_SansNom1,livre.titre)
    	TableAjouteFils(TABLEH_auteurLivre, t, livre_sujet.IDsujet)
    FIN
     
    POUR TOUT sujet 
    	HLitRecherchePremier(sujet,IDsujet,livre_sujet.IDsujet)
            t =  TableCherche(TABLEH_auteurLivre.COL_SansNom1, livre_sujet.IDlivre_sujet)
    	TableAjouteFils(TABLEH_auteurLivre, t ,sujet.libsujet)
    FIN
    En plus, ainsi, Windev t'aide à taper tes commandes.
    Tu as un problème de conception : Imagine la situation suivante :
    - tu as un auteur qui s'appelle MARTIN
    - et tu as un autre auteur, qui a écrit un livre dont le titre est MARTIN ; quand ton programme va exécuter la ligne 15, et chercher la ligne concernant ce livre de titre MARTIN, il risque fort de trouver à la place la ligne concernant l'auteur MARTIN.

    Ca ne répond pas à ta question. Dans la dernière boucle, ta colonne s'appelle IDsujet. J'imagine que c'est un numérique. Peut-être que c'est ça la raison du problème.

    Ceci dit, appliquons le conseil de Gnouxyz

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    t1, t2, t3  est un entier 
     
    POUR TOUT auteur
    	TableAjoute(TABLEH_auteurLivre,auteur.identité) 
            t1 = table occurrence( TABLEH_auteurLivre )    // ça nous donne le n° de la ligne correspondant à cet auteur
     
            hfiltre ( livre, idauteur, auteur.idAuteur )
            pour tout livre
                   t2 = tableAjouteFils (  TABLEH_auteurLivre, t1,  livre.titre)  // Ce livre a été ajouté en ligne t2, on sait donc où raccrocher les sujets de ce livre.
     
                  // Insérer ici un table filtre    et des tableAjouteFIls
            FIN
    FIN
    Dernier point, le plus important : Je peux me tromper mais j'ai l'impression que dans ta table finale, tu veux en fait 3 niveaux, et pas 4 ; la table livre-sujet est une table de liaison, elle contient des identifiants, elle est indispensable, mais elle ne devrait pas apparaître en tant que tel dans l'interface utilisateur. C'est probablement ça qui fait que ton code marche pour les premiers niveaux mais pas pour le 4ème.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  5. #5
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2018
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2018
    Messages : 151
    Points : 107
    Points
    107
    Par défaut merci pour avoir pris sur ton temps
    Merci pour ton aide, cela devrait régler la majeur partie de mon problème. Tu as bien compris ce que j'essaie d'obtenir. En effet, j'ai 4 niveaux car je ne peux pas me passer du 3ème qui ouvre le lien sur le 4ème. Seuls les niveaux 1,2 et 4 m'intéressent. Faut-il modifier le fichier de données de la table de liaison en rajoutant une rubrique ? peut-on s'exempter de la visibilité du 3ème niveau ? Enfin, j'aimerais que dans les 3 autres colonnes de la tableH_auteur livre apparaissent livre.titrecomplet, livre. collection et sujet.libsujet. Si les 2 premiers ne posent pas de problème, je me heurte au troisième.
    je teste ce week-end et te tiens au courant.
    Bonne journée à toi
    Bernisch

  6. #6
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2018
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2018
    Messages : 151
    Points : 107
    Points
    107
    Par défaut J'avance grâce à tes conseils
    Comme promis, je donne des nouvelles. Voilà le code que j'ai fait :
    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
    23
    24
     
    t1, t2, t3, t4 est un entier
     
    POUR TOUT auteur 
    	TableAjoute(TABLEH_auteurLivre,auteur.identité) 
    	t1 = TableOccurrence(TABLEH_auteurLivre)
     
    HFiltre (livre, IDauteur, auteur.IDauteur)
    POUR TOUT livre 
    		t2 = TableAjouteFils(TABLEH_auteurLivre, t1, livre.titre)
     
     
    HFiltre(livre_sujet,IDlivre,livre.IDlivre)
    POUR TOUT livre_sujet 
    	t3 = TableAjouteFils(TABLEH_auteurLivre, t2, livre_sujet.IDlivre)
     
    HFiltre(sujet,IDsujet,livre_sujet.IDsujet)
    POUR TOUT sujet 
    	t4 =  TableAjouteFils(TABLEH_auteurLivre, t3, sujet.libsujet)
     
    FIN	
    FIN
    FIN
    FIN
    Cela permet un gain de temps dans l'affichage de la table (+ de 600 auteurs et près de 3000 livres), par contre, je sèche toujours pour l'affichage dans les colonnes. Voir ci-dessous :
    Nom : hiérarchie2.JPG
Affichages : 2048
Taille : 45,8 Ko
    et le 3ème niveau est toujours là.
    merci encore.
    Bernisch

  7. #7
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2018
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2018
    Messages : 151
    Points : 107
    Points
    107
    Par défaut Merci, Problème résolu
    Merci à tous ceux qui m'ont apporté leur aide bienveillante, plus particulièrement à tbc92 et Gnouxyz.
    Pour l'affichage dans les colonnes, j'ai inséré le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    POUR TOUT livre 
    		t2 = TableAjouteFils(TABLEH_auteurLivre, t1, livre.titre)
    		COL_Titre[t2]=livre.titrecombiné
    		COL_Collection[t2]=livre.collection
    pour ce qui concerne les 2 premières colonne. Il me reste encore à gratter pour voir comment je peux me passer de ce 3ème niveau basé sur un ID.

    très bon week-end à vous
    Bernisch

  8. #8
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 057
    Points : 9 396
    Points
    9 396
    Par défaut
    Dans ton code de l'avant-dernier message, en ligne 19, tu remplaces t3 par t2, et tu mets en commentaire la ligne 15 ... et ça devrait être bon.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  9. #9
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2018
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2018
    Messages : 151
    Points : 107
    Points
    107
    Par défaut C'est parfait !!!!
    Citation Envoyé par tbc92 Voir le message
    Dans ton code de l'avant-dernier message, en ligne 19, tu remplaces t3 par t2, et tu mets en commentaire la ligne 15 ... et ça devrait être bon.
    Super, je n'avais pas pensé à mettre t3 en commentaire ! Cela fonctionne exactement comme je le souhaitais. Voici le code mis à jour :
    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
    23
    24
    25
    26
    27
    28
    29
    30
     
    t1, t2, t3, t4 est un entier
     
    POUR TOUT auteur 
    	TableAjoute(TABLEH_auteurLivre,auteur.identité)
    	t1 = TableOccurrence(TABLEH_auteurLivre)
    	COL_SansNom1[t1]..PoliceTaille=11
    	COL_SansNom1[t1]..Couleur=RougeFoncé
     
    	HFiltre (livre, IDauteur, auteur.IDauteur)
    	POUR TOUT livre 
    		t2 = TableAjouteFils(TABLEH_auteurLivre, t1, livre.titre)
    		COL_Titre[t2]=livre.titrecombiné
    		COL_Titre[t2]..Couleur=BleuFoncé
    		COL_Collection[t2]=livre.collection
     
    		HFiltre(livre_sujet,IDlivre,livre.IDlivre)
    		POUR TOUT livre_sujet 
    //			t3 = TableAjouteFils(TABLEH_auteurLivre, t2, livre_sujet.IDlivre)
    			COL_Ref[t2]=livre_sujet.IDsujet
     
    			HFiltre(sujet,IDsujet,livre_sujet.IDsujet)
    			POUR TOUT sujet 
    				t4 =  TableAjouteFils(TABLEH_auteurLivre, t2, sujet.libsujet)
    				COL_Sujet[t4]=sujet.libsujet
    				COL_Sujet[t4]..Couleur=MarronFoncé
    			FIN	
    		FIN
    	FIN
    FIN
    Un très grand merci !!!!
    Bernisch

  10. #10
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 057
    Points : 9 396
    Points
    9 396
    Par défaut
    La ligne 20 est suspecte.
    Si un livre touche plusieurs sujets, tu écris dans la ligne du titre de ce livre l'un des idSujet.
    Normalement, sur les lignes avec les titres des livres, la colonne idSujet devrait rester vide.

    De plus ( mais là, je chipote un peu), la boucle <pour tout sujet> en ligne 23 est moyennement justifiée. C'est un pour TOUT, alors que, par construction, on va trouver un seul enregistrement.
    Je propose :
    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
    23
    24
    25
    26
    27
    28
    29
     
    t1, t2, t3, t4 est un entier
     
    POUR TOUT auteur 
    	TableAjoute(TABLEH_auteurLivre,auteur.identité)
    	t1 = TableOccurrence(TABLEH_auteurLivre)
    	COL_SansNom1[t1]..PoliceTaille=11
    	COL_SansNom1[t1]..Couleur=RougeFoncé
     
    	HFiltre (livre, IDauteur, auteur.IDauteur)
    	POUR TOUT livre 
    		t2 = TableAjouteFils(TABLEH_auteurLivre, t1, livre.titre)
    		COL_Titre[t2]=livre.titrecombiné
    		COL_Titre[t2]..Couleur=BleuFoncé
    		COL_Collection[t2]=livre.collection
     
    		HFiltre(livre_sujet,IDlivre,livre.IDlivre)
    		POUR TOUT livre_sujet 
    //			t3 = TableAjouteFils(TABLEH_auteurLivre, t2, livre_sujet.IDlivre)
    //			COL_Ref[t2]=livre_sujet.IDsujet
                            hlitRecherche (sujet, idSujet, livre_sujet.IDSujet)
                            si pas hendehors() alors 
                                t4 =  TableAjouteFils(TABLEH_auteurLivre, t2, sujet.libsujet)
    			    COL_Sujet[t4]=sujet.libsujet
    			    COL_Sujet[t4]..Couleur=MarronFoncé
    			FIN	
    		FIN
    	FIN
    FIN
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  11. #11
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2018
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2018
    Messages : 151
    Points : 107
    Points
    107
    Par défaut Quelques précisions
    Bonjour,
    en suivant ta proposition de mise à jour du code, je n'ai pas trouvé de différence à l'affichage. Ci-dessous 2 copies d'écran, la première avant modification, la deuxième après modification

    Nom : hiérarchie3.JPG
Affichages : 1903
Taille : 42,1 Ko

    Nom : hiérarchie4.JPG
Affichages : 1787
Taille : 36,3 Ko

    Dans ce cas produit, l'auteur a bien 2 livres dont le 2ème a bien 2 sujets distincts ce qui correspond à la réalité. Peut-être, m'étais-je mal expliqué ou bien pensais-tu à autre chose ?
    Bonne journée
    Bernisch

  12. #12
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2018
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2018
    Messages : 151
    Points : 107
    Points
    107
    Par défaut Information supplémentaire
    Encore moi,
    lors d'un test complet je viens de me rendre compte du problème suivant qui est particulièrement gênant. Ce problème existe en mode test ou après installation.

    1. La table livre affiche bien tous les enregistrements lorsque cela est demandé.
    2. Après fermeture de la table livre, l'ouverture de la table hiérarchique affiche bien tous les enregistrements
    3. Après fermeture de la table hiérarchique, l'ouverture de la table livre n'affiche plus qu'un seul enregistrement (ni le premier, ni le dernier mais toujours le même)
    4. En quittant le mode test ou en fermant l'application, je retrouve l'intégralité de la table livre lors de la nouvelle ouverture et retombe dans le même travers après ouverture de la table hiérarchique


    il existe certainement une solution que je n'arrive pas à identifier. Merci pour tes conseils

  13. #13
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2018
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2018
    Messages : 151
    Points : 107
    Points
    107
    Par défaut Désolé
    Désolé de vous importuner pour des évidences. Je crois que je supporte mal le changement d'horaire
    la solution était pourtant évidente avec A tous, un excellent dimanche
    Bernisch

  14. #14
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 057
    Points : 9 396
    Points
    9 396
    Par défaut
    hDesactiveFiltre, effectivement.
    Et une bonne pratique, c'est de mettre le hdésactiveFiltre juste après le hFiltre ... Juste après, ça veut pas dire dans la ligne qui suit, mais ça veut dire dans le même bloc de code.
    Comme ça, ce bloc de code rend la main au reste du programme, avec une situation propre.

    Donc là, il faut ajouter les 2 instructions hdesactivefiltre(livre_sujet) et hdesactiveFiltre(livre) après la ligne 29 du code.

    Sur l'autre 'bug' : tu as dans ta table une colonne col_Ref. Si j'ai tout suivi, actuellement cette colonne est invisible. Rend la visible, et tu verras qu'elle contient des données 'aléatoires'.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  15. #15
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2018
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2018
    Messages : 151
    Points : 107
    Points
    107
    Par défaut Petit problème
    Citation Envoyé par tbc92 Voir le message
    hDesactiveFiltre, effectivement.
    Et une bonne pratique, c'est de mettre le hdésactiveFiltre juste après le hFiltre ... Juste après, ça veut pas dire dans la ligne qui suit, mais ça veut dire dans le même bloc de code.
    Comme ça, ce bloc de code rend la main au reste du programme, avec une situation propre.

    Donc là, il faut ajouter les 2 instructions hdesactivefiltre(livre_sujet) et hdesactiveFiltre(livre) après la ligne 29 du code.

    Sur l'autre 'bug' : tu as dans ta table une colonne col_Ref. Si j'ai tout suivi, actuellement cette colonne est invisible. Rend la visible, et tu verras qu'elle contient des données 'aléatoires'.

    J'ai bien noté l'emplacement défini pour les 2 HDésactivefiltre (je les avais mis sur fermeture de la fenêtre). Si je les mets après la ligne 29, je me prive du tri et de la recherche sur la 1ère colonne, la table restant figée; je les ai donc mis en fin de code (après le 4ème FIN). J'ai également rajouté une ligne de code après la ligne 26
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    COL_Ref [t2] = livre_sujet.IDlivre
    J'ai bien rendu visible la col_Ref, elle affiche bien l'ID du livre et non des données aléatoires. Cela m'intéresse car je souhaite, en cliquant sur la ligne affichant le nom du livre, afficher la fiche de ce livre. le code suivant me renvoie bien l'ID du livre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    nReflivre est un entier
     
    nReflivre = COL_Ref..ValeurAffichée
     
    Trace (" le numéro du livre est"+" "+nReflivre)
    par contre je sèche sur le code pour ouvrir la fenêtre fiche_livre
    Voilà où j'en suis...

  16. #16
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2018
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2018
    Messages : 151
    Points : 107
    Points
    107
    Par défaut Dernier petit problème résolu
    Merci pour l'aide précieuse reçue, je pense être arrivé au bout de cette fameuse table hiérarchique. Voilà mon dernier code :
    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
    nReflivre est un entier
     
    nReflivre = COL_Ref..ValeurAffichée
     
    //trace (" le numéro du livre est"+" "+nReflivre)
     
    HLitRecherchePremier(livre,IDlivre,nReflivre)
     
    // Si le livre n'existe pas
    SI HTrouve(livre) = Faux ALORS
     
    	// Message indiquant qu'il n'y a pas d'enregistrement sujet lié à l'enregistrement livre courant
    	Info("Ce livre n'est relié à aucun sujet, merci de le définir.")
     
    	RETOUR
     
    FIN
     
    // Ouverture de la fenêtre fiche du livre
    Ouvre(FEN_Fiche_livreProjet)
    Bonne fin de soirée
    Bernisch

  17. #17
    Membre du Club
    Homme Profil pro
    Urbaniste
    Inscrit en
    Octobre 2017
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Octobre 2017
    Messages : 31
    Points : 49
    Points
    49
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    nLigne est un entier = 0
    nLigne = Tableajouteligne(matable)
    matable[nligne].col_xxxx = "lavaleur"
    c'est plus propre (surtout quand tu décales tes colonnes...) et tu as tes indices.

  18. #18
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2018
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2018
    Messages : 151
    Points : 107
    Points
    107
    Par défaut
    Merci beaucoup pour ton conseil, je vais mettre ça en pratique.

    je te souhaite une bonne journée.
    Bernisch

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

Discussions similaires

  1. Réponses: 18
    Dernier message: 28/05/2014, 14h45
  2. [WD18] Champ table chargé par programmation
    Par plambert123 dans le forum WinDev
    Réponses: 4
    Dernier message: 18/12/2013, 18h08
  3. Réponses: 10
    Dernier message: 21/05/2013, 13h29
  4. [WD17] tri sur table fichier par programmation
    Par hadaf dans le forum WinDev
    Réponses: 1
    Dernier message: 12/10/2012, 14h34
  5. [WD14] remplir une Table Fichier par programmation
    Par burndev dans le forum WinDev
    Réponses: 3
    Dernier message: 14/08/2009, 17h16

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