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 :

Formater une Colonne dans un DbGrid


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2002
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 103
    Par défaut Formater une Colonne dans un DbGrid
    Bonjour,

    Je désire formater une colonne dans un Dbgrid rattaché à une Table pour soigner la présentation.
    Exemple Afficher le Montant : 5200 ==> 5200,00
    Et Ce sans utiliser la propriété EditFormat du Champ.
    Il me semble que ce sujet ait été traité. J'ai cherché sans rèsultat.

  2. #2
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    SAlut

    Définit la propriété DisplayFormat de ton TField.

    @+ Claudius

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2002
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 103
    Par défaut
    Merci Cl@udius,

    Je connais cette solution. Mais je ne déclare pas mes Field en mode conceptuelle. D'où l'inconvénient de cette méthode. Pourquoi me diriez-vous? Quand je fais de la modification de structure de données dans une table, cette méthode s'avère inopérante. Sauf, si je n'ai pas su l'utiliser.

  4. #4
    Membre éprouvé
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Par défaut
    Tu peux quand même définir dynamiquent tes TField dans ta table à partir des TFieldDefs, cela te permettra de formatter visuellement tes champs.

    Sinon Egalement, atteindre le field de cette manière:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TNumericField( MaDBGrid.Fields[ x ] ).DisplayFormat
    Sinon, tu peux te servir de OnDrawColumnCell mais je suis pas sur que ce soit la meilleures solution...
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2002
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 103
    Par défaut
    Merci Beaucoup TicTacOe.
    C'est la solution que je cherchais. Elle est facile à mettre oeuvre.
    Le code suivant placé dans l'évènement on DrawColumnCell règle le probléme :

    TNumericField( MaDBGrid.Fields[ x ] ).DisplayFormat

  6. #6
    Membre éprouvé
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Par défaut
    Tant mieux

    mais ce n'est pas à placer dans OnDrawColumnCell

    car cet évt. est appelée à chaque fois que la cellule a besoin d'être dessinée, or là c'est une définition de formattage une fois pour toute.
    (à moins que je me trompe dans ce cas précis que je n'ai jamais essayé).

    et à moins que tu ne changes de formattage en changeant de ligne, cette définition est à mettre quelquepart ou elle n'est appelée qu'une seule fois.

    en gros
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      for i := 0 to MaDBGrid.Fields.Count - 1 do
        if MaDBGrid.Fields[ i ] is TNumericField then
          begin
          TNumericField( MaDBGrid.Fields[ i ] ).DisplayFormat := [format dépendant de la colonne]
          end;
    à appeler une seule fois.
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

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

Discussions similaires

  1. Comment connaitre le type d'une colonne dans un dbgrid ?
    Par alheuredudejeuner dans le forum Composants VCL
    Réponses: 2
    Dernier message: 11/04/2012, 18h50
  2. AutoSize d'une colonne dans un DBGrid
    Par kmaniche dans le forum C++Builder
    Réponses: 1
    Dernier message: 14/12/2006, 23h59
  3. Réponses: 28
    Dernier message: 30/11/2006, 17h47
  4. Réponses: 2
    Dernier message: 03/11/2006, 09h34
  5. Postionnement dans une colonne dans un DBGrid
    Par Jeankiki dans le forum Bases de données
    Réponses: 7
    Dernier message: 13/01/2005, 00h05

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