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 :

chargement d'un tableau à partir d'une requête de jointure


Sujet :

WinDev

  1. #21
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    As-tu essayé ta requête avec WDSQL ou le centre de contrôle HF ?

    De plus (c'est ce que je te disais avant) il faut pas que la condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AND	matière_eleve.code_matière = {param3}
    soit de le WHERE de ta requête mais dans la jointure externe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    LEFT OUTER JOIN note
    ON matière_eleve.IDmatière_eleve = note.IDmatière_eleve AND matière_eleve.code_matière = {param3}
    (au passage évite les accents dans les noms de table c'est pas vraiment standard... et c'est pas une bonne habitude je trouve)

    si tu applique une restriction (dans le WHERE) sur une table en LEFT JOIN ça devient de fait un INNER JOIN.

    Enfin si tu ne supprime pas la table avant de la remplir ça le fera pas ! donc pour ton code lors d'une ligne ajoute une TableSupprimeTout() avant tout.

  2. #22
    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
    REQ_saisie_note.param1= TABLE_REQ_classes_inscription.COL_Code_classe[TABLE_REQ_classes_inscription]

    HExécuteRequête(REQ_saisie_note)

    TANTQUE HTrouve(REQ_saisie_note)
    TableAjouteLigne(TABLE_REQ_saisie_note, REQ_saisie_note.IDeleve ,REQ_saisie_note.nom,REQ_saisie_note.prenom,REQ_saisie_note.note )
    HLitSuivant(REQ_saisie_note)
    FIN
    je coderais le parcours de la requête avec un hlitpremier et hendehors.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    REQ_saisie_note.param1= TABLE_REQ_classes_inscription.COL_Code_classe[TABLE_REQ_classes_inscription]
     
    HExécuteRequête(REQ_saisie_note)
    HlitPremier(REQ_saisie_note)
    TANTQUE PAS HEnDehors(REQ_saisie_note)
    	TableAjouteLigne(TABLE_REQ_saisie_note, REQ_saisie_note.IDeleve ,REQ_saisie_note.nom,REQ_saisie_note.prenom,REQ_saisie_note.note )
    	HLitSuivant(REQ_saisie_note)
    FIN
    HAnnuleDéclaration(REQ_saisie_note)

  3. #23
    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 michel.souris Voir le message
    As-tu essayé ta requête avec WDSQL ou le centre de contrôle HF ?
    je l'ai testé à partir de l'éditeur de requête ( click droit : tester la reqête)
    Citation Envoyé par michel.souris Voir le message
    De plus (c'est ce que je te disais avant) il faut pas que la condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AND	matière_eleve.code_matière = {param3}
    soit de le WHERE de ta requête mais dans la jointure externe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    LEFT OUTER JOIN note
    ON matière_eleve.IDmatière_eleve = note.IDmatière_eleve AND matière_eleve.code_matière = {param3}
    lorsque j'ai essayé ça, la requête n'est plus valide ( erreur lors de la compilation qui signale un erreur au niveau du requête
    Citation Envoyé par michel.souris Voir le message
    Enfin si tu ne supprime pas la table avant de la remplir ça le fera pas ! donc pour ton code lors d'une ligne ajoute une TableSupprimeTout() avant tout.
    pour le moment ceci ne me pose pas un problème, si lorsque je change l'un des paramètres, les tuples correspondants s'ajoutent au tableau des notes correctement, je 'occuperai de ça .

    je coderais le parcours de la requête avec un hlitpremier et hendehors.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    REQ_saisie_note.param1= TABLE_REQ_classes_inscription.COL_Code_classe[TABLE_REQ_classes_inscription]
     
    HExécuteRequête(REQ_saisie_note)
    HlitPremier(REQ_saisie_note)
    TANTQUE PAS HEnDehors(REQ_saisie_note)
    	TableAjouteLigne(TABLE_REQ_saisie_note, REQ_saisie_note.IDeleve ,REQ_saisie_note.nom,REQ_saisie_note.prenom,REQ_saisie_note.note )
    	HLitSuivant(REQ_saisie_note)
    FIN
    HAnnuleDéclaration(REQ_saisie_note)
    ça ne marche pas de même
    merci pour vos tentatives de m'aider.
    ça pourrait être ridicule, mais je commence à penser que ce n'ai pas faisable avec ma méthodologie
    y'a t il d'autres suggestions ?

  4. #24
    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
    REQ_saisie_note.param1= TABLE_REQ_classes_inscription.COL_Code_classe[TABLE_REQ_classes_inscription]

    HExécuteRequête(REQ_saisie_note)

    TANTQUE HTrouve(REQ_saisie_note)
    TableAjouteLigne(TABLE_REQ_saisie_note, REQ_saisie_note.IDeleve ,REQ_saisie_note.nom,REQ_saisie_note.prenom,REQ_saisie_note.note )
    HLitSuivant(REQ_saisie_note)
    FIN
    Je viens de remarquer une chose dans ton exemple, tu mets à jour uniquement le param1, et les autres ne sont pas initialisé. Initalise Param2 et 3, si ils n'ont aucune valeur, tu les initialises à Null

  5. #25
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Teste ta requête dans le centre de controle HF ou dans WDSQL pour voir.

    Ce n'est pas normal que la condition dans la jointure génère une erreur de compilation, merci de nous donner le message d'erreur.

  6. #26
    Membre chevronné Avatar de laurent30s
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 881
    Points : 1 771
    Points
    1 771
    Par défaut
    Il y a plusieurs problèmes dans ce que tu fais :

    - comme dit dsr57 tu ne passes qu'un paramètre sur 3 à la requête

    - à voir le nom de la table que tu veux remplir "TABLE_REQ_saisie_note" j'ai l'impression que tu as fais une table sur requête (et non pas une table à remplir par programmation) du coup toutes les liaisons entre les colonnes de la requête et de la table sont faites. Ce qui simplifie le code, tu n'as pas besoin de faire une boucle avec TableAjouteLigne(). Un simple TableAffiche() suffit...

    - dans la combo pour la sélection de trimestre je vois "2". Comment tu fais la différence entre le 2ème trimestre de chaque année ? il me semble que le plus simple et de codifier les trimestres avec un code unique, par exemple 2014T1, 2014T2,...

    - je t'avoue, mais c'est personnel, et c'est l'expérience qui me fait dire ça, je n'aime pas avoir des identifiants chaîne (code_classe, Code_matiere,...). Je préfère que l'id soit une entier et avoir une rubrique indexé pour le code. Avantage, on est libre de modifier le code si nécessaire sans avoir à gérer des problème d'intégrité... mais ce n'est pas bloquant pour ton affaire...

    Ceci dit...

    La procédure de mise à jour de la table de saisie de note
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    PROCEDURE Maj_TABLE_REQ_saisie_note(sCode_classe,sCode_matiere,pNumero_trimestre)
     
    MaSource.param1 = sCode_classe
    MaSource.param2 = sCode_matiere
    MaSource.param3 = sNumero_trimestre
    HExécuteRequête(REQ_saisie_note)
     
    TableAffiche(TABLE_REQ_saisie_note)
    pour appeler la procédure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Maj_TABLE_REQ_saisie_note(TABLE_REQ_classes_inscription.COL_Code_classe[TABLE_REQ_classes_inscription], ...
    			   TABLE_REQ_matiere.COL_code_matiere[TABLE_REQ_matiere], ...
    			   COMBO_Numero_trimestre)
    il te faut jouer cette procédure à l'initialisation de la fenêtre et chaque fois que la table est susceptible d'être mise à jour.
    c'est à dire :
    - à chaque sélection d'une ligne pour les tables TABLE_REQ_classes_inscription et TABLE_REQ_matiere
    - à chaque sélection d'une ligne dans la combo COMBO_Numero_trimestre

    il y a sans doute des noms de champs ou de rubriques qu'il te faudra adapter puisque je les ai nommé sans connaître leur vrai nom...

  7. #27
    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 pour vos propositions,
    J'ai essayé la procédure que Laurent a proposée,
    et voici l'erreur que j'obtient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Erreur à la ligne 13 du traitement Initialisation de TABLE_REQ_saisie_note.
    L'indice spécifié [-1] est invalide.
    TABLE_REQ_classes_inscription utilise un fichier ou une requête comme source de données.
    Seuls les éléments visibles sont disponibles en programmation.
    J'ai essayé d'initialiser les paramètres ( pour tester) ça marche.
    quand j'ai essayé de faire la mise à jour automatique des paramètres ( à chaque selection d'une ligne de table_classe, table_matiere, ou combo_trimestre)
    ça me pose ce problème de visibilité et disponibilité pour la programmation.

  8. #28
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Tu obtiens ce message car au moment de l'exécution aucune ligne n'est sélectionnée...

  9. #29
    Membre chevronné Avatar de laurent30s
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 881
    Points : 1 771
    Points
    1 771
    Par défaut
    Citation Envoyé par futur_ingenieur Voir le message
    merci pour vos propositions,
    J'ai essayé la procédure que Laurent a proposée,
    et voici l'erreur que j'obtient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Erreur à la ligne 13 du traitement Initialisation de TABLE_REQ_saisie_note.
    L'indice spécifié [-1] est invalide.
    TABLE_REQ_classes_inscription utilise un fichier ou une requête comme source de données.
    Seuls les éléments visibles sont disponibles en programmation.
    J'ai essayé d'initialiser les paramètres ( pour tester) ça marche.
    1 - Erreur à la ligne 13 ??? dans le code que je t'ai donné il y a moins de 13 lignes... ça serait bien d'avoir le code qui pose problème...

    2 - Vu le message d'erreur je pense comme Michel qu'il provient du fait qu'aucune sélection n'est faite au démarrage dans les tables qui doivent transmettre les paramètres...

    3 - Pour que tu soit un peu plus autonome pour déboguer, apprend à mettre des points d'arrêts dans ton code et à déboguer pas à pas...
    http://doc.pcsoft.fr/fr-FR/?2019005
    http://doc.pcsoft.fr/fr-FR/?2019001
    dans le 2ème lien il est expliqué comment "Visualiser le contenu des variables"
    place des point d'arrêt à chaque exécution de la procédure Maj_TABLE_REQ_saisie_note() et regarde le contenu des paramètres que tu passes, tu comprendras ce qui ne va pas...

    Citation Envoyé par futur_ingenieur Voir le message
    quand j'ai essayé de faire la mise à jour automatique des paramètres ( à chaque selection d'une ligne de table_classe, table_matiere, ou combo_trimestre)
    ça me pose ce problème de visibilité et disponibilité pour la programmation.
    "ça me pose ce problème de visibilité et disponibilité pour la programmation"
    soit plus explicite...

  10. #30
    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, j'ai résolu le problème en remplaçant les tableaux par des combos :la saisie des notes marche bien.
    maintenant je suis entrain d'essayer d'enregistrer les données introduits dans le fichier note.
    voici la requete d'insertion que j'ai tapé :
    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
     
    INSERT INTO note
    	( 
    		note,	
    		numero_trimestre,	
    		id_eleve,	
    		id_matière
    	)
    VALUES
    	( 
    		{Param_note},	
    		{Param_trimestre},	
    		{Param_eleve},	
    		{Param_matiere}
    	 )
    et voici le code de l'exécution ( dans un bouton valider)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    POUR i=1 A TableOccurrence(TABLE_REQ_saisie_note)
    	REQ_insertion_note.Param_note= COL_Note[i]
    	REQ_insertion_note.Param_eleve = COL_IDeleve[i]
    	REQ_insertion_note.Param_trimestre= COMBO_trimestre..Valeur
    	REQ_insertion_note.Param_matiere= COMBO_Matière..Valeur
    	HExécuteRequête(REQ_insertion_note)
    FIN
    Info("saisie effectuée")
    ça marche bien. mais le problème que le fichier "NOTE" contient la rubrique " id_matière_eleve" ( rubrique de jointure entre les deux tables "Note" et "Matière_eleve")

    je veux savoir comment insérer dans cette rubrique, sachant que son type est "binaire"
    je veux ajouter un 5 éme paramètre qui présentera note.id_matiere_eleve , mais je ne sais pas comment y affecter une valeur adéquate:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    REQ_insertion_note.Param_id_matiere_eleve= ???????????????
    NB : j'ai ajouté les 2 rubrique id_eleve et id_matière au fichier "Notes" pour simplifier l'insertion d'une part et la selection pour l'impression du bulletin aprés.

  11. #31
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 242
    Points : 12 874
    Points
    12 874
    Par défaut
    Bonjour,
    Il me semble qu'avec HF, dans ce cas il faut utiliser hConstruitValCle(), mais je ne sais pas si ça fonctionne avec une requête.
    C'est d'ailleurs l'un des gros reproches que je fais à HF: sa gestion "tordue" des clés composées.

    Tatayo.

  12. #32
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Je trouve très étrange de ne pas avoir générer une clé artificielle pour la table de relation matiere_eleve....

    Déjà ça t'éviterait d'avoir ce problème. En plus ça serait plus dans la norme, du moins il me semble, en cas de changement de SGBD....

  13. #33
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    sinon pour te répondre il faut que alimente id_matiere et id_eleve dans la table note mais pas cette clé composée... du moins j'imagine...

  14. #34
    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
    J'ai essayé avec la fonction hConstruitValCle() mais en vain,
    je veux bien savoir est ce que je peux accéder à l'une des composante du clé :
    par exemple (2,5) je veux récupérer le 2 :
    j'ai essayé avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     id_matiere_eleve..composante[1]
    mais ça ne marche pas

  15. #35
    Membre chevronné Avatar de laurent30s
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 881
    Points : 1 771
    Points
    1 771
    Par défaut
    Je penses que tu te compliques la vie...

    Si dans ton fichier matière_eleve (les accents dans les noms de fichiers ou de rubriques ça pique les yeux) tu aurais un id automatique (auto-incrémenté), la liaison serait faite avec cet id (un entier) au lieu de ta clé composé et tu n'aurais pas de problème pour l'alimenter... (ça rejoint ce que te dit Michel)

    J'en parlais dans mon message #26
    ...Je n'aime pas avoir des identifiants chaîne (code_classe, Code_matiere,...). Je préfère que l'id soit une entier et avoir une rubrique indexé pour le code. Avantage, on est libre de modifier le code si nécessaire sans avoir à gérer des problème d'intégrité...
    Après pour ce qui est des clés composées il faut voir dans l'aide :
    http://doc.pcsoft.fr/fr-FR/?3044178

    petit extrait :
    ...
    Les clés composées sont des rubriques binaires. Leur valeur ne peut pas être affichée directement (dans une trace ou dans un champ).
    ...

    Ajout d'un enregistrement contenant une clé composée dans un fichier relié

    Lors de l'ajout d'un enregistrement contenant une clé composée dans un fichier relié, il est nécessaire de construire la valeur de la clé. En effet, dans le fichier relié, la clé composée n'est pas considérée comme une clé composée, mais comme une clé binaire. Il est donc nécessaire de lui affecter une valeur.

    Cette valeur peut être affectée :

    - soit directement. Par exemple, un enregistrement a été ajouté dans le fichier Client. Pour ajouter la valeur de la clé dans le fichier relié, il suffit de réaliser une affectation directe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        FichierLiaison.NomDate = Client.NomDate
    - soit à l'aide de la fonction HConstruitValClé. Cette fonction permet de construire la valeur de la clé composée à partir de ses composantes.
    Perso, le seul intérêt que je trouve aux clés composées c'est d’accélérer des recherches, des requêtes, mais surement pas d'en faire une clé unique d'un fichier... une rubrique binaire, difficile à lire, c'est vraiment ce compliquer la vie...

  16. #36
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    +1 Laurent, avec renvoi vers l'aide et tout et tout, la classe !

Discussions similaires

  1. Enregistrer un tableau à partir d'une requête
    Par stannis dans le forum Langage
    Réponses: 2
    Dernier message: 11/04/2012, 10h14
  2. [A-03] Création d'un tableau à partir d'une requête
    Par helprojet dans le forum VBA Access
    Réponses: 3
    Dernier message: 16/02/2009, 12h41
  3. Réponses: 19
    Dernier message: 04/08/2008, 12h38
  4. [SQL] Tableau associatif à partir d'une requête
    Par hugo69 dans le forum WinDev
    Réponses: 1
    Dernier message: 24/03/2007, 19h22
  5. [PHPLIB] Afficher un tableau à partir d'une requête
    Par Erigion dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 06/02/2006, 11h55

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