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

Delphi Discussion :

LiveBindings Grid-Dataset : tri à partir d'un clic sur entête


Sujet :

Delphi

  1. #1
    Membre du Club
    Homme Profil pro
    Programmeur
    Inscrit en
    Octobre 2015
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Programmeur
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2015
    Messages : 80
    Points : 46
    Points
    46
    Par défaut LiveBindings Grid-Dataset : tri à partir d'un clic sur entête
    Bonjour,

    Sous FMX, ma Grid et mon FDQuery sont liés par LB.
    Je voudrais associer le click sur un entête d'une colonne de la grille (correpondant à un champ indexé de table) au tri sur la colonne, le tout en préservant la sélection. Y a-t-il moyen de faire cela en utilisant au maximum le LB donc avec un minimum de code dans l'événement OnClick, voire en paramétrant le LB, la Grid et le FDQuery pour rendre cela automatique ?

    Merci. Zac.

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 030
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 030
    Points : 40 928
    Points
    40 928
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    tu parles (hélas) de la Grid fourni avec Delphi et pas de celle de TMS ?
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre du Club
    Homme Profil pro
    Programmeur
    Inscrit en
    Octobre 2015
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Programmeur
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2015
    Messages : 80
    Points : 46
    Points
    46
    Par défaut
    Oui au départ. Mais en réalité je cherchais comment on liait par code une grid à son dataset par LB quand on utilisait un LB par défaut ou comment on réalise un LB personnalisé permettant ce type d'écriture (si nécessaire), un peu l'équivalent d'un myGrid.DataSource.DataSet en Lazarus.

    En TMS, hormis la déconnexion "par défaut" de certaines colonnes, un code usuel sur le dataset suffit : il n'y a pratiquement rien à faire (le tri s'effectue proprement, la sélection est maintenue et le repositionnement [sélection visible dans la Grid] aussi).

    Mais j'aurais aimé aussi, plutôt que d'écrire MySQL, trouver l'écriture par le LB : With TMSFMXLiveGrid1.xxx?

    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
    procedure TForm1.TMSFMXLiveGrid1CanSortColumn(Sender: TObject; ACol: Integer;
      var Allow: Boolean);
    begin
    { Pas de tri sur le Champ tePRENOM }
      if aCol =3 then Allow := False;
    end;
     
    procedure TForm1.TMSFMXLiveGrid1CellSortClick(Sender: TObject; ACol,
      ARow: Integer; Cell: TFmxObject);
    begin
      with mySQLQuery do
      begin
        case Acol of
          1: if IndexFieldNames = 'teID' then
              IndexFieldNames := 'teID:D'
            else
              IndexFieldNames := 'teID';
          2: if IndexFieldNames = 'teNOM;tePRENOM' then
              IndexFieldNames := 'teNOM:D;tePRENOM'
          else
              IndexFieldNames := 'teNOM;tePRENOM';
        end;
      end;
    end;

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 030
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 030
    Points : 40 928
    Points
    40 928
    Billets dans le blog
    62
    Par défaut
    Re,

    Ah, d'accord je vois où tu veux en venir : une liaison entre la grid et la propriété IndexName ou IndexFieldName de la Query (je viens de vérifier, c'est liable, pour peu de l'indiquer comme tel) par contre je ne vois pas trop comment récupérer le texte(Nom de index ou des IndexFieldName) à part dans une liste et non simplement en cliquant

    je n'en suis encore qu'au match d'entrainement avec LiveBindings et je perds souvent même en mode facile un simple CustomParse avec deux champs me pose des problèmes dés que je déclare ces derniers, je ne comprends pas ! (petit détail, il s'agit d'une FDMemTable c'est peut être pour ça )
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #5
    Membre du Club
    Homme Profil pro
    Programmeur
    Inscrit en
    Octobre 2015
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Programmeur
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2015
    Messages : 80
    Points : 46
    Points
    46
    Par défaut
    Bonjour,

    j'avance un peu à mes moments de détente mais très lentement : du LB en code sans passer par le "visuel" ? Using LiveBinding Programatically
    Si quelqu'un a des adresses complémentaires, je suis preneur.

    Merci. Zac.

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 030
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 030
    Points : 40 928
    Points
    40 928
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    beaucoup de questions peu de réponses http://stackoverflow.com/questions/tagged/livebindings
    je commence à peine à entrevoir la lueur de sortie
    les autres points que j'ai consultés sont les équivalents fonctionnalité du mardi de Embarcadero que l'on peut trouver ici (Skill Sprints)
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

Discussions similaires

  1. tri à partir d'une colonne auto_increment
    Par jobrousse dans le forum Requêtes
    Réponses: 2
    Dernier message: 11/11/2009, 10h54
  2. Dataset (tri table, mise à jour)
    Par skysee dans le forum C#
    Réponses: 1
    Dernier message: 27/09/2007, 09h40
  3. Ajouter valeur dans mon dataset a partir de textbox
    Par lulu3111 dans le forum C++/CLI
    Réponses: 1
    Dernier message: 18/04/2007, 17h12
  4. [C#] creer un dataset a partir de plusieurs fichiers XML
    Par ager1912 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 16/05/2006, 18h17
  5. Réponses: 19
    Dernier message: 13/03/2006, 13h06

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