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 :

Tableaux reliés Windev 26 [WD25]


Sujet :

WinDev

  1. #1
    Membre à l'essai Avatar de RafB14
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2021
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2021
    Messages : 19
    Points : 13
    Points
    13
    Par défaut Tableaux reliés Windev 26
    Bonjour à vous,

    Je sollicite votre aide pour régler un problème sûrement simple mais ou je rencontre beaucoup de difficultés.

    En fait je vous explique, j'ai une Table des clients dans mon projet et celle-ci permet de lister tous les clients d'une entreprise donnée.

    La ou cela se corse pour moi c'est que chaque client peut faire une ou plusieurs ventilations qui est un tableau (tout comme la table des clients).

    Je voudrais en fait pouvoir n'afficher seulement les ventilations qui correspondent au client sélectionné dans la table des clients.

    J'ai fait la relation dans la Base de données MySQL entre les tables de client et celle de la ventilation des clients mais rien n'y fait et j'essayais ensuite par un : POUR TOUT Client AVEC Client.Code = Ventil.Code

    Mais ça ne veut vraiment pas, je suis à court d'idées.

    Je vous remercie par avance si vous avez la solution,

    A bientot ici sur le forum

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    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 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,
    Si tu veux filtrer les ventilations par client, il faut "inverser" la requête, et faire un POUR TOUT sur les ventilations et non sur les clients.

    Sinon si tu utilises un accès natif, tu peux aussi filtrer sur le code client avec un hFiltre

    Tatayo.

  3. #3
    Membre à l'essai Avatar de RafB14
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2021
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2021
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par tatayo Voir le message
    Bonjour,
    Si tu veux filtrer les ventilations par client, il faut "inverser" la requête, et faire un POUR TOUT sur les ventilations et non sur les clients.

    Sinon si tu utilises un accès natif, tu peux aussi filtrer sur le code client avec un hFiltre

    Tatayo.
    Merci beaucoup pour ta réponse Tatayo je vais essayer ça tout de suite !

  4. #4
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 807
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 807
    Points : 5 263
    Points
    5 263
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Il y a aussi la solution de la requête :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT
     .....
    FROM
         CLIENT,
         VENTIL
    WHERE
         CLIENT.Code=VENTIL.Code
         AND
         CLIENt.PK_Client={pClient}
    En règle générale, si on peut éviter de boucler on évite, ça limite l'accès au serveur.
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  5. #5
    Membre à l'essai Avatar de RafB14
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2021
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2021
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par Voroltinquo Voir le message
    Bonjour,
    Il y a aussi la solution de la requête :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT
     .....
    FROM
         CLIENT,
         VENTIL
    WHERE
         CLIENT.Code=VENTIL.Code
         AND
         CLIENt.PK_Client={pClient}
    En règle générale, si on peut éviter de boucler on évite, ça limite l'accès au serveur.
    Merci bien Voroltinquo, je te vois sur tous les forums hehe ;-)

  6. #6
    Membre à l'essai Avatar de RafB14
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2021
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2021
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    Par contre je la fais exécuter où la requête SQL ? Au niveau de la sélection d'une ligne de mon tableau de la table des clients ?

  7. #7
    Membre à l'essai Avatar de RafB14
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2021
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2021
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    Et à quoi correspond le {pClient} dans ta requête ?

  8. #8
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 807
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 807
    Points : 5 263
    Points
    5 263
    Billets dans le blog
    1
    Par défaut
    Oui, au niveau de la sélection d'un client.
    L'idéal est de configurer ton champ table pour qu'il renvoie (valeur mémorisée) la PK de Client.
    On en arrive à la deuxième question, {pClient} correspond à un paramètre à passer à la requête, en l'occurrence, le Client.
    En supposant que le résultat soit affiché dans un autre champ table, le code ressemble alors à ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    REQ_CLIENT_VENTIL.pClient=TABLE_Client
    HExécuteRequête(REQ_CLIENT_VENTIL)
    TableAffiche(TABLE_CLIENT_VENTIL)
    ou alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    REQ_CLIENT_VENTIL.pClient=TABLE_Client
    TableAffiche(TABLE_CLIENT_VENTIL,taRéExécuteRequête)
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  9. #9
    Membre à l'essai Avatar de RafB14
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2021
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2021
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    Je te remercie du fond du coeur pour cette réponse plus que détaillée !
    Merci merci merci ! Je comprends maintenant !

    Je mets le post en "Résolu"

  10. #10
    Membre à l'essai Avatar de RafB14
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2021
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2021
    Messages : 19
    Points : 13
    Points
    13
    Par défaut Re ;)
    Bonjour à vous,

    J'espère que je ne vous dérange pas, je suis toujours sur le problème de mes ventilations par rapport aux clients et j'avoue que je n'arrive pas à trier les ventil en fonction des clients.

    J'ai bien fait la liaison entre les tables, mis la requête à la sélection d'une ligne de mon tableau de la fiche clients et mis le paramètre {pClient} mais le tableau des ventilations reste toujours identique à la sélection d'un client (c'est à dire qu'il retourne toutes les lignes de tous les clients).

    Si vous avez une astuce, je serais preneur

    Merci beaucoup d'avance à vous,

    Raphaël

  11. #11
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 807
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 807
    Points : 5 263
    Points
    5 263
    Billets dans le blog
    1
    Par défaut
    Dans l'initialisation de ton champ table qui doit faire apparaître les résultats, il n'y a pas un truc du style . Si c'est le cas, il faut le virer.
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  12. #12
    Membre à l'essai Avatar de RafB14
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2021
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2021
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    Salut, non je n'ai rien du tout dans l'initialisation de mon champ table pourtant

  13. #13
    Membre à l'essai Avatar de RafB14
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2021
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2021
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    N'y aurait-t-il pas autre chose qui pourrait empêcher le filtre du tableau des ventilations en fonction de la sélection d'un client.
    Parce qu'en fait je dois passer à côté d'un certain réglage, je précise que j'ai 2 tableaux dans la même fenêtre (un pour les clients et un autre pour les ventilations) et qu'à la sélection d'un client dans le tableau recensant ceux-ci, le tableau des ventilations doit se mettre à jour et n'afficher et filtrer que la ou les ventilation(s) concernant tel ou tel client.

    J'avoue que je patauge pas mal là...

    Merci d'avance aux âmes charitables

  14. #14
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 807
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 807
    Points : 5 263
    Points
    5 263
    Billets dans le blog
    1
    Par défaut
    Sans ton code on ne peut pas en dire plus.
    En plus les tableaux sont des variables je ne comprend plus.
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  15. #15
    Membre à l'essai Avatar de RafB14
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2021
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2021
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    En fait, mes tableaux s'appuient sur des tables MySQL et donc sont des tableaux fichier. J'aurais peut-être du le préciser.
    En passant par une requête, peut-on n'afficher que certaines lignes de mon deuxième tableau (Ventilations) fichier lui aussi en fonction du client sélectionné dans le premier tableau (Client) ?

    Je m'y prends peut-être mal ?

    Merci à vous

  16. #16
    Nouveau membre du Club Avatar de pacodiasse
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2013
    Messages : 23
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par RafB14 Voir le message
    En fait, mes tableaux s'appuient sur des tables MySQL et donc sont des tableaux fichier. J'aurais peut-être du le préciser.
    En passant par une requête, peut-on n'afficher que certaines lignes de mon deuxième tableau (Ventilations) fichier lui aussi en fonction du client sélectionné dans le premier tableau (Client) ?

    Je m'y prends peut-être mal ?

    Merci à vous
    Bonjour,
    Je pense que le plus simple est de faire un tableTrie sur la deuxieme en prenant comme paramètre le client sélectionné
    Tu mets ton code sur la ligne sélectionnée du premier table et tu fais un table Trie sur le second table avec comme paramétré le nom du client en question
    cdlt

  17. #17
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    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 053
    Points : 9 392
    Points
    9 392
    Par défaut
    Pour se comprendre, il faut essayer de parler la même langue. Et donc la langue 'Windev'.

    Table ou tableau ?

    Un tableau, on le crée avec une instruction, du type : tb000 est un tableau de 0 struct. et ce tableau, il a une existence en mémoire, mais pas en visuel.
    En programmation, on le manipule avec des instructions TableauAjoute() , TableauTrie() etc etc.

    Une table, on la crée dans une fenêtre. C'est ce qu'on appelle parfois un controle. C'est comme une grille, affichée dans une fenêtre.
    En programmation, on la manipule avec des instructions TableAjoute() , TableTrie() , TableCherche() etc etc.

    Je pense que tu utilises 2 tables, et pas de tableau.

    En plus, ce sont des tables-FICHIER, pas des tables-MEMOIRE.

    Les tables-fichier c'est bien, parce que Windev fait plein de choses à ta place. Mais justement... tu dis ' je n'ai rien du tout dans l'initialisation de mon champ table ' ... oui et non. Il n'y a rien de visible, mais pour un champ table-fichier, il y a du code qui s'exécute à l'initialisation de la table. Donc le code existe , mais n'est pas visible.

    Donc 2 options.
    * Tu lis à fond la doc sur les tables-fichiers, tu essaies de comprendre parfaitement comment ça marche.
    * Ou tu remplaces tes tables-fichiers par des tables mémoire (un clic dans l'onglet description de la table), et c'est alors à toi de mettre le code nécessaire au bon endroit.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  18. #18
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 807
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 807
    Points : 5 263
    Points
    5 263
    Billets dans le blog
    1
    Par défaut
    Il semble à priori que l'on parle de champ table.
    Dans ton champ ventilation tu veux faire apparaître le résultat d'une requête, il semblerait donc logique d'alimenter ce champ par cette requête.
    Sinon a quoi sert le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TableAffiche(TABLE_ClientVentil,taRéexécuteRequête)
    . Il est d'ailleurs étonnant que tu n'ais pas eu au minimum un warning...
    Deux solutions alternatives mais très "Windeviennes", sont
    1-L'utilisation de la propriété Filtre sur ton champ table
    2-L'utilisation de HFiltre, avec tous les inconvénients de cette fonction.

    Cette doc détaille tout.
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  19. #19
    Membre à l'essai Avatar de RafB14
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2021
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2021
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    Merci beaucoup et grâce à vous, j'ai solutionné mon problème.
    J'ai fait un TABLE_Ventil..Filtre = TABLE_Client et ça fonctionne !!

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 31/08/2016, 17h00
  2. [WD-2010] Différents Tableaux Excel relié
    Par Mathiisss dans le forum Word
    Réponses: 3
    Dernier message: 05/08/2013, 09h09
  3. [langage] erreurs utilisation tableaux 2 dimensions
    Par drosof dans le forum Langage
    Réponses: 11
    Dernier message: 01/07/2003, 11h44
  4. Réponses: 6
    Dernier message: 04/04/2003, 15h28
  5. Les tableaux en PL/SQL
    Par GRUMLY dans le forum PL/SQL
    Réponses: 5
    Dernier message: 12/08/2002, 18h10

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