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

Bases de données Delphi Discussion :

Comment trier une DBGRID en cliquant sur une colonne


Sujet :

Bases de données Delphi

  1. #1
    Membre du Club
    Inscrit en
    Août 2003
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2003
    Messages : 100
    Points : 50
    Points
    50
    Par défaut Comment trier une DBGRID en cliquant sur une colonne
    Salut,
    j'ai associé un composant TTABLE à un DGGRID .Je veux quand on clique sur le titre d'une colonne de la grille (DBGRID) qu'il y ait un tri croissant ou decroissant de la grille selon cette colonne.
    salut

  2. #2
    Fxg
    Fxg est déconnecté
    Membre éclairé
    Homme Profil pro
    ingénieur financier
    Inscrit en
    Septembre 2003
    Messages
    510
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingénieur financier

    Informations forums :
    Inscription : Septembre 2003
    Messages : 510
    Points : 837
    Points
    837
    Par défaut
    suite à recherche sur google :

    http://phidels.com/php/index.php3?pa...ip.php3&id=488

    Désolé pas trouvé sur developpez

  3. #3
    Membre actif
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Andorre

    Informations forums :
    Inscription : Juin 2004
    Messages : 219
    Points : 241
    Points
    241
    Par défaut
    Sur ma web page tu trouveras un component (TExtendedGrid) qui descends de TRxDbGrid qui fait ça (et autres choses). Si tu veux, tu peux le prendre comme partie (il y a le code font)

    La page est en espagnol mais, si tu ne comprends quelque chose, tu peux me le demander (mon français n'est pas très bon mais......)

    Ma web page: www.clubdelphi.com/users/cadetill

  4. #4
    Membre du Club
    Inscrit en
    Juillet 2003
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 41
    Points : 42
    Points
    42
    Par défaut
    tu met un filtre de ta table dans l'evenement OnTitleClick du DBGrid selon la colonne cliquée

  5. #5
    Membre du Club
    Inscrit en
    Août 2003
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2003
    Messages : 100
    Points : 50
    Points
    50
    Par défaut Filtrer un DBGRID sur clic sur une colonne
    Vous prposez de mettre un filtre sur l'evenement ontitleclick.
    mais je voudrais savoir est ce que tu mettres un filtre dans l'evenement en precisant un tri ascendant ou descendant.
    merci
    salut

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 29
    Points : 24
    Points
    24
    Par défaut
    Je pense qu'il faudrait modifier le "ORDER BY" de ta requete en fonction de la colonne sélectionnée. Et pour savoir si c descendant ou ascendant tu peux garder en memoire la derniere colonne sélectionnée ou le dernier ordre de tri de chaque colonne (ascendant ou descendant) ou qqc dans le genre selon ce qui t'arrange le mieu.

  7. #7
    Membre du Club
    Inscrit en
    Août 2003
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2003
    Messages : 100
    Points : 50
    Points
    50
    Par défaut Filtre sur une grille(TDBGRID)
    Je rappelle que c'est pas une requete que j'ai liée au DBGRID ,j'ai liée un composant TTABLE donc impossible de réaliser un "ORDER BY".
    Merci
    salut

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 119
    Points : 125
    Points
    125
    Par défaut
    quant tuclique sur ta colonne tu fais

    ttable.indexname := tonindex.


    ton index doit être crée soit en ASCENDANT ou en DESCENDANT

    Bon courage
    Mika
    www.usargancy.net

  9. #9
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Bonjour,

    J'utilise ceci pour trier un DBGRID avec un IBQuery (Tri sur le champ TITRE) :
    Dans l'évenement OnTitleClick du DBGRID
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    // Tri colonne Grid1 ============================================
    procedure TMain.Grid1Click(Column: TColumn);
    begin
    //SQL
    1> DataModule.IBQuery1.DisableControls;
    2> DataModule.IBQuery1.SQL.Clear;
    3> DataModule.IBQuery1.SQL.Add('SELECT* FROM ' + MaTable + ' ORDER BY TITRE '+ Sens );
    4> DataModule.IBQuery1.Open;
    5> DataModule.IBQuery1.EnableControls;
    6> if (Sens = 'DESC') then
    7> Sens := 'ASC' else Sens := 'DESC';// On inverse le sens pour le prochain click
    8> end;
    //---------------------------------------------------------------
    Note : Cela implique de déclarer la variable Sens comme ceci pour la rendre accessible dans tous les UNITS du programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public
        { Déclarations publiques }
        Sens: string ; // Stocke la valeur du tri (ASC / DESC)
        end;
    Et de la définir quelquepart, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TMain.FormCreate(Sender: TObject);
    begin
    S := 'ASC';
    end;
    Cordialement
    N1bus

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

Discussions similaires

  1. [POO] Comment lancer un son en cliquant sur une image
    Par zebra123 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 29/01/2009, 21h10
  2. Trier une GridView en cliquant sur une colonne
    Par rfaouzi dans le forum ASP.NET
    Réponses: 4
    Dernier message: 24/02/2007, 21h22
  3. ne pas pouvoir revenir sur une page en cliquant sur précédent
    Par sagopa dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 06/11/2006, 01h10
  4. Réponses: 4
    Dernier message: 17/05/2006, 15h11
  5. Réponses: 6
    Dernier message: 27/05/2005, 15h43

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