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

C++Builder Discussion :

[Dbgrid] tri par ordre alphabetique [Non suivi]


Sujet :

C++Builder

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 15
    Points : 17
    Points
    17
    Par défaut [Dbgrid] tri par ordre alphabetique
    quelle méthode utiliser pour trier automatiquement par ordre alphabétique les enregistrement d'une dbgrid.
    j'utilise une base access j'ai fait une requete trie mais je ne sais pas comment l'exploiter avec builder et je ne sais pas si c'est la meilleure méthode.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 26
    Points : 29
    Points
    29
    Par défaut
    Bonjour:

    SELECT * FROM MATABLE ORDER BY LE_CHAMP_A_CLASSER ASC

    Voilà!

  3. #3
    Membre actif
    Avatar de Djob
    Inscrit en
    Août 2002
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 215
    Points : 279
    Points
    279
    Par défaut
    Tout à fait.
    Surtout pour si la grille est reliée à 1 TQuery.(BDE)

    pour completer....
    Si tu utilises une TTable (BDE)
    tu peux jouer sur la propriété IndexFieldNames qui trie les enregitrements de façon ascendante une colonne :
    exemple de tri dynamique:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    //evenement Click sur titre de Colonne (OnTileClick)
    void __fastcall TForm1::DBGrid1TitleClick(TColumn *Column)
    {
      try{
        ((TTable*)(Column->Field->DataSet))->IndexFieldNames=Column->FieldName;
      }catch(Exception &e){}
    }
    ou sinon si tu utilises des composants ADO,
    il y a la propriété Sort .

    exemple avec TADOTable ou une requete TADOQuery qui permet de trier par colonne
    de manière ascendante ou descendante, en cliquant sur l'en tete d'une colonne

    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
    31
    32
    33
    34
     
    //evenement Click sur titre de Colonne (OnTileClick)
    void __fastcall TForm1::DBGrid1TitleClick(TColumn *Column)
    {
      try{
     
        AnsiString SortExpr ="";
        if(Column->Field->Tag==0){        //tag conserve l'etat de tri (ascendant /descendant).
            SortExpr = Column->FieldName+" ASC";
            Column->Field->Tag=1;        
        }else {
            SortExpr = Column->FieldName+" DESC";
            Column->Field->Tag=0;
        }
     
       // avec TADOQuery
       // ((TADOQuery*)(Column->Field->DataSet))->Sort = SortExpr;
     
      // avec TADOTable
      ((TADOTable*)(Column->Field->DataSet))->Sort = SortExpr;
     
      }catch(Exception &e){}
    }
    //---------------------------------------------------------------------------
    //affichage curseur main evenement OnMouseMove de TDBGrid
    void __fastcall TForm1::DBGrid1MouseMove(TObject *Sender,
          TShiftState Shift, int X, int Y)
    {
      TDBGrid * Grid = (TDBGrid*)Sender;
      TGridCoord  coord = Grid->MouseCoord(X,Y);
      if( coord.Y == 0 )  Grid->Cursor =crHandPoint;
      else    Grid->Cursor=crDefault;
    }
    //---------------------------------------------------------------------------

  4. #4
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 15
    Points : 17
    Points
    17
    Par défaut
    merci pour l'info.
    ca fonctionne , j'ai meme fais une simulation de clic sur la colonne a l'activation de la forme.
    mais mon soucit est que j'ai une colonne dans laquelle je fais un graphe pour chaque ligne.
    ce graphe est fait par labels de focon dynamique et qunad je fais le tri
    mes graphes ne correspondent plus a la bonne ligne.
    si quelqu'un a une idee?

Discussions similaires

  1. Tri par ordre croissant
    Par KinF dans le forum Algorithmes et structures de données
    Réponses: 18
    Dernier message: 13/12/2008, 20h19
  2. Réponses: 1
    Dernier message: 17/11/2007, 13h42
  3. [JComboBox] tri par ordre alphabetique
    Par GETah dans le forum Composants
    Réponses: 3
    Dernier message: 22/04/2005, 14h10
  4. URGENt: recherche dans un tableau trié par ordre alphabetiqu
    Par JulPop dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/02/2005, 17h21
  5. Tri par ordre alphabétique
    Par orus8 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 17/04/2003, 19h27

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