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

Lazarus Pascal Discussion :

[dBase][Linux] TMemDataSet ou TBufDataSet - trier colonne d'un DBGrid contenant résultat d'un champ calculé [Lazarus]


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 54
    Par défaut [dBase][Linux] TMemDataSet ou TBufDataSet - trier colonne d'un DBGrid contenant résultat d'un champ calculé
    Bonjour,

    - Linux
    - Lazarus
    - Fichier dbf

    Je cherche un moyen pour trier une colonne d'un DBGrid, contenant le résultat d'un champ calculé.
    J'y suis parvenu en utilisant Delphi7. Mais je suis sous Linux et essaye maintenant avec Lazarus.
    Malgré de nombreuses recherches, je n'ai trouvé que très peu d'informations pour réaliser l'équivalent Delphi avec Lazarus.

    Quelqu'un peut-il m'indiquer comment connecter ces composants entre-eux ou bien où trouver une documentation montrant comment réaliser cela ?
    Soit :
    • - Quels composants (je pense à un datasource + BufDataSet)
    • - Ouverture/chargement du fichier
    • - sauvegarde du fichier avant fermeture du programme.


    Je ne souhaite pas utiliser SQL.

    Merci

    Linux Mint 20 / AMD64 / XFCE4
    Lazarus 2.0.6
    fpc 3.0.4

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 54
    Par défaut trier colonne d'un DBGrid contenant résultat d'un champ calculé
    Je vois qu'il n'y a pas beaucoup de spécialistes Lazarus sur ce forum

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 261
    Par défaut
    Bonjour,

    En cherchant un peu dans le Wiki du forum "officiel" de Lazarus je suis parti de çà pour résoudre le problème de tri d'une DBGrid. C'était sous Windows et une base Firebird, mais il n'y a pas de raison pour que ce soit impossible sous Linux même avec des champs calculés (ce sont les contenus des champs du BufDataset qui sont triés).
    Dans le wiki, il est question d'un TBufDataset. Dans mon application, j'utilisais dans un thread séparé un TUIBQuery dont le DataSet n'est pas tout à fait compatible avec le DataSet de Lazarus, ce qui m'a obligé à transférer le résultat de la requête dans un BufDataset. Mais maintenant il semble que le TSqlQuery soit un descendant du TCustomBufDataset ce qui devrait faciliter les choses.

    André

  4. #4
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 491
    Par défaut
    Salut

    De toutes les manières il te faut un TDataSource attaché a ta DbGrid.
    Au DataSource il te faut attacher un TDataSet.

    Donc dans la propriété du DataSource
    Et plus loin dans ton code pour faire un tri
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      BufDataset1.IndexFieldNames := NomColoneTrie;
      BufDataset1.First;
    En recherchant un peu plus j'ai trouvé ceci.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 54
    Par défaut trier colonne d'un DBGrid contenant résultat d'un champ calculé
    Merci a vous deux pour vos réponses.
    Mon problème est que je ne peux faire un tri sur une colonne d'une DBGrid d'un fichier .dbf (non possible avec lazarus/fichiers dbf). Il s'agit d'un programme que j'utilise depuis longtemps (développé au départ avec delphi7)
    Comme indiqué dans mon message précédent, pas de problème avec delphi et les composants qui vont bien. Mais avec Lazarus, pas facile de trouver un tuto exhaustif (je n'en ai d'ailleurs pas trouvé ). La plupart des messages trouvés ne traitent qu'une toute petite partie du problème et sont généralement pas récents.

    Bon, finalement, j'ai fini par trouver une solution qui va bien. Je peux même trier n'importe quelle colonne facilement.

    Merci encore pour votre soutient.

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

Discussions similaires

  1. Trier colonnes en VBA
    Par megatictac dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 30/06/2009, 22h55
  2. Ajouter une colonne à un fichier csv contenant les resultats d'un calcul
    Par Freedd dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 31/07/2008, 12h01
  3. Bouton trier colonne dans un sous formulaire
    Par Chichou87 dans le forum IHM
    Réponses: 1
    Dernier message: 18/01/2007, 22h38
  4. Peut-on trier sur la colonne d'un DBGrid ?
    Par colorid dans le forum Bases de données
    Réponses: 6
    Dernier message: 15/02/2006, 21h16

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