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 :

Trier ma Table


Sujet :

WinDev

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 39
    Points : 10
    Points
    10
    Par défaut Trier ma Table
    Bonjour, j'ai actuellement un problème car ma base de données est illisible c'est a dire que j'ai plusieurs produits et des détails sur d'autre ligne, les produits sont identifiés par un id 1 et les détails par un id 2 mais le problème c'est que la base de données avec laquelle est créer ma table est mal classée et il y a d'abord tout les produits puis ensuite tous les détails ce qui rend ma table illisible. Sachant que je ne peux pas changé la base de données que je reçois car elle est externe. Il existe cependant une partie qui me permettrai de classer ma table c'est à dire que les détails du produit sont reconnaissable car la colonne du produit (donc quand la colonne TYPF1 vaut 1) REFE1 est égale aux premier caractères de la colonne COMM1 des détails de ce produit(quand TYPF1 vaut 2).

    Nom : Capture.PNG
Affichages : 260
Taille : 16,5 Ko

  2. #2
    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
    Un simple ORDER BY IDEN1, TYPF1 devrait permettre de trier par produit... (tel que cela semble fait sur votre screenshot). J'avoue ne pas bien comprendre votre problème. Connaissez-vous le SQL ?
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 39
    Points : 10
    Points
    10
    Par défaut
    Merci pour cette réponse plus que rapide, oui je connais le SQL mais je ne l'ai jamais abordé sur Windev je vais donc m'y mettre .

  4. #4
    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
    Sachez également qu'il existe la fonction TableTrie si vous souhaitez traiter ça en interface (ce que je vous déconseille mais bon....).
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 39
    Points : 10
    Points
    10
    Par défaut
    Seulement les requêtes changent l'affichage mais pas la base de données elle même enfaîte ? Si l'on affiche la base de données elle reste non classé et donc c'est la que mon problème intervient car oui avec un order by la base de données se trie dans le bon ordre mais comment faire pour avoir la base de données bien trier sans avoir a lancer la requête. Et donc trier la base de données au moment ou les données sont insérés dans celle-ci ?

  6. #6
    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
    Vous parlez d'index clusterisé : http://blog.developpez.com/sqlpro/p5...t_ce_que_c_est

    Je ne crois pas que Hyperfile permette de les gérer...
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 39
    Points : 10
    Points
    10
    Par défaut
    Et en ajoutant un indice ce serait possible par exemple quand IDEN du produit est egal a IDEN detail alors ont leur donne le même indice par exemple 1?

  8. #8
    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,
    Citation Envoyé par vavans Voir le message
    Seulement les requêtes changent l'affichage mais pas la base de données elle même enfaîte ? Si l'on affiche la base de données elle reste non classé et donc c'est la que mon problème intervient car oui avec un order by la base de données se trie dans le bon ordre mais comment faire pour avoir la base de données bien trier sans avoir a lancer la requête. Et donc trier la base de données au moment ou les données sont insérés dans celle-ci ?
    Par définition les données dans une base de données ne sont pas triées. L'ordre d'arrivée des lignes d'une requête ne peut être garanti qu'avec une clause ORDER BY, sinon il dépend des indexes, de la stratégie choisie par le moteur, des stats... bref c'est un peu du hasard.
    Donc si tu veux absolument un tri, il n'y a que 2 solutions:
    1. Soit trier la requête avec un ORDER BY
    2. Soit trier la table avec TableTrie()


    Ici si tu veux "regrouper" via un tri les lignes qui ont le même IDEN, il suffit de trier en premier sur cette colonne, et le tour est joué.

    Tatayo.

  9. #9
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 054
    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 054
    Points : 9 394
    Points
    9 394
    Par défaut
    Auto-formation, encore et toujours ...

    Tu as une table. Tu ne nous dis pas si c'est une table mémoire ou une table fichier...mais on devine que c'est une table fichier.

    Dans une table fichier, quand tu crées ta table, tu peux sélectionner une clé de parcours (autrement dit, un ordre de parcours).
    Soit la clé de parcours que tu veux a été créée dans ton analyse... et voilà, il n'y a plus qu'à cliquer où il faut quand il faut. Soit cette clé de parcours n'existe pas, et il va falloir que tu bosses un peu.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 39
    Points : 10
    Points
    10
    Par défaut
    Merci pour toutes vos réponses. Enfaîte je viens de remarquer que la colonne iden1 était la même pour tous donc je m'explique pour les trier dans l'ordre que je veux il faut d'abord que je cherche si dans la colonne TYPF1 il y a marqué 1 ou 2 ensuite s'il y a marquer 1 les ligne s'ajoute a la suite mais s'il y a marquer 2 alors sa correspond a un détail de produit et il faut donc qu'il s'ajoute a la suite du produit qui lui correspond sinon la ba se de données est illisible, il faut donc pour cela que je cherche dans la colonne REFE1 des produit (TYPF1=1) le numéros qui correspond a la première partie de la colonne COMM1(les premiers caractéres avant l'espace)de mon detail(TYPF1=2).

    Vous pensez donc que cela est possible?

    Et oui c'est une table fichier en effet.

    Je suis rendu la pour l'instant mais seulement mes TYPF1=1 s'ajoute.
    Nom : Capture.PNG
Affichages : 234
Taille : 14,1 Ko

  11. #11
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par vavans Voir le message
    Vous pensez donc que cela est possible?
    Il suffit de voir les choses autrement afin de rendre les choses possible, par exemple, en ajoutant une nouvelle cachée sur lequel le tri se fera (par exemple, en concaténant le champ TYPF1 avec le champ COMM1).
    Dans ton code où tu insères les lignes avec TYPF1, le mieux serait d'utiliser la fonction TableCherche : avec le code produit récupéré dans ton champ commentaire, tu fais une recherche sur le champ REFE1, si le résultat est >0, tu peux ajouter ta ligne.

  12. #12
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 39
    Points : 10
    Points
    10
    Par défaut
    Donc plutôt comme ça ?
    Nom : Capture.PNG
Affichages : 230
Taille : 21,3 Ko

  13. #13
    Invité
    Invité(e)
    Par défaut
    Dans l'IHM de ta table, ajouter une nouvelle colonne de type chaine, où tu mettras comme valeur en insertion FGRAVEL.TYPF1+FGRAVEL.COMM1

    Le code de recherche serait plus comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CodeArticle est une chaine=gauche(FGRAVEL.COMM1, 5)
    IndiceLigne est un entier=TableCherche(COL_REF1, CodeArticle)
     
    si IndiceLigne>0
    //j'ai trouvé une ligne dans ma table avec TYPF1=1 et où le code produit a déjà été ajouté dans mon champ
    TableAjoute(...)
    fin
    Dans ton cas, quand tu veux ajouter une ligne avec TYPF1=2, tout ce dont tu veux savoir, c'est si une ligne avec TYPF1=1 est déjà présente, donc pas besoin de faire une boucle pour faire la recherche.

  14. #14
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 39
    Points : 10
    Points
    10
    Par défaut
    Je ne comprend pas l'utilité de rajouté une colonne dans mon tableau comme vous dites. Et j'ai rajouté le code que vous m'aviez conseillé et toujours le même problème c'est à dire que seul les TYPF1=1 s'affiche.
    Nom : Capture.PNG
Affichages : 210
Taille : 14,0 Ko

  15. #15
    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,
    Ce ne serait pas plus simple d'avoir une requête triée, et de baser la table sur cette requête ?

    Tatayo.

  16. #16
    Invité
    Invité(e)
    Par défaut
    avez-vous déboggé?

  17. #17
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 39
    Points : 10
    Points
    10
    Par défaut
    Bonjour, je ne sais pas si c'est possible avec les condition que je veux.

  18. #18
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par romulus001 Voir le message
    avez-vous déboggé?
    avez vous mis un point d'arrêt?

  19. #19
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 39
    Points : 10
    Points
    10
    Par défaut
    C'est à dire ?

  20. #20
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 075
    Points : 2 441
    Points
    2 441
    Par défaut
    Citation Envoyé par vavans Voir le message
    Je ne comprend pas l'utilité de rajouté une colonne dans mon tableau comme vous dites. Et j'ai rajouté le code que vous m'aviez conseillé et toujours le même problème c'est à dire que seul les TYPF1=1 s'affiche.
    Bonjour,

    1. Utilisez les balises [CODE] plutôt que [ATTACH], c'est plus simple pour les intervenants (mon avis évidemment)
    2. Débogez, comme on vous l'a suggéré.
      A priori, si vos lignes TYPF1=2 ne s'affichent pas - càd ne sont pas ajoutées - c'est que IndiceLigne>0 est faux, parce que votre TableCherche a échoué.
      Déboguer vous permettra de vérifier cela et d'agir en conséquence, càd relire la doc sur TableCherche pour comprendre ce qui peut poser problème.
      (type de recherche ou voir ce qui est défini dans l'analyse)
    3. Plusieurs SI FGRAV.TYPF1 en séquence, cela plaide pour l'utilisation de SELON


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    SI FGRAV.TYPF1 ALORS
    ...
    FIN
    SI FGRAV.TYPF2 ALORS
    ...
    FIN
    //Plutôt coder
    SELON FGRAV.TYPF1 
       CAS 1 
            ...
       CAS 2
           ...
    FIN

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. [JTable]Trier la table
    Par FFF dans le forum Composants
    Réponses: 12
    Dernier message: 22/09/2011, 12h11
  2. Comment trier une table paradox dans un Ttable sur un Dbgrid
    Par amireve dans le forum Bases de données
    Réponses: 5
    Dernier message: 26/12/2005, 19h28
  3. Trier une table .db paradox
    Par James64 dans le forum Bases de données
    Réponses: 7
    Dernier message: 25/10/2005, 11h01
  4. Trier une table avec valeur de differentes unités
    Par Sydaze dans le forum Bases de données
    Réponses: 8
    Dernier message: 01/06/2005, 11h43
  5. [VB.NET] Trier une table de mon DataSet
    Par San Soussy dans le forum ASP.NET
    Réponses: 3
    Dernier message: 03/03/2005, 17h30

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