Formater les champs d'un TDBGrid [Résolu]

Cylc 8 Messages postés lundi 9 février 2004Date d'inscription 8 avril 2005 Dernière intervention - 19 oct. 2004 à 14:35 - Dernière réponse : Cylc 8 Messages postés lundi 9 février 2004Date d'inscription 8 avril 2005 Dernière intervention
- 20 oct. 2004 à 14:12
Bonjour,

Mon problème est le suivant :

J'ai un TDBGrid relié à un query, quand j'ouvre le query les données s'affichent, pas de souci.
Je voudrais en fait formater le dernier de mes champs, qui représente un nombre, en séparant les milliers, de la forme ###.###.###,##

J'ai reussi à le faire dans un StringGrid, grace un précedent post, en utilisant le OnDrawCell, mais je ne suis pas parvenu a reproduire ça sur le TDBGrid.

merci de m'aiguiller :)

Cylc
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Wriggles 31 Messages postés lundi 27 janvier 2003Date d'inscription 10 mars 2009 Dernière intervention - 20 oct. 2004 à 13:12
3
Merci
Salut,

pour pouvoir trouver la propriété DISPLAYFORMAT, tu fais un double click sur ton query, la fenêtre d'éditeur de champ doit apparaitre.
Si cette dernière est vide, fais un clic droit dessus et "Ajouter tous les champs".

Ensuite tu n'as qu'à te positionner sur le champ souhaité et tu auras accès à ses différentes propriétés, y compris "DisplayLabel"

Bonne prog à toi.

Merci Wriggles 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de Wriggles
cs_MHI 112 Messages postés jeudi 7 octobre 2004Date d'inscription 19 février 2009 Dernière intervention - 19 oct. 2004 à 17:28
0
Merci
Si tu as des champs persistent tu peux appliquer ton format dans la propriété DisplayFormat (il existe pour les float, currency)
Commenter la réponse de cs_MHI
Loulibier 323 Messages postés jeudi 6 juin 2002Date d'inscription 24 septembre 2008 Dernière intervention - 20 oct. 2004 à 00:29
0
Merci
salut cylc,

as-tu essayé cette méthode :
  ThousandSeparator := ',';
  DBGrid1.Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, FormatFloat('###.###.###,#####', Field.AsFloat));


ça reste à peut près la même méthode que sur ton dernier post.
Il faut bien sure intégrer des testes sur le fait que ton Field sois ou non un réel.

Bonne Prog, ;)

Olivier

PS : Lorsqu'une réponse vous convient, n'oubliez pas de la valider.
Commenter la réponse de Loulibier
Cylc 8 Messages postés lundi 9 février 2004Date d'inscription 8 avril 2005 Dernière intervention - 20 oct. 2004 à 10:32
0
Merci
Ca me parait pas mal mais je suis débutant et je ne sais pas comment tester que je suis bien dans une colonne spécifique, ni dans quel evenement inclure ce code (j'ai essayé le DrawDataCell mais le programme passe jamais dedans)

Quand a la fonction DisplayFormat je ne sais carrement pas ou l'utiliser malgré qu'elle apparaisse dans l'aide.

Merci pour vos réponse en tout cas
Commenter la réponse de Cylc
Loulibier 323 Messages postés jeudi 6 juin 2002Date d'inscription 24 septembre 2008 Dernière intervention - 20 oct. 2004 à 12:06
0
Merci
Il faut l'intégrer dans le OnDrawCell de ton composant TDBGrid
procedure TWndMain.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
  Field: TField; State: TGridDrawState);
begin
try
  DBGrid1.Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2,     FormatFloat('###.###.###,#####', Field.AsFloat));
except
DBGrid1.Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2,     Field.AsString);
end;
end;


il te suffit d'initialisé qu'une seule fois le séparteur des milliers.
  ThousandSeparator := ',';


Bonne Prog, ;)

Olivier

PS : Lorsqu'une réponse vous convient, n'oubliez pas de la valider.
Commenter la réponse de Loulibier
Cylc 8 Messages postés lundi 9 février 2004Date d'inscription 8 avril 2005 Dernière intervention - 20 oct. 2004 à 13:07
0
Merci
Comme je disais, j'ai essayé le DrawDataCell mais je n'arrive pas à passer dans la procédure pendant l'execution

J'ouvre le query, ca affiche automatiquement les données de la tables dans mon DBGrid, jamais on passe dans le DrawDataCell, je ne peux donc pas séparer les milliers du 5eme champs
Commenter la réponse de Cylc
Cylc 8 Messages postés lundi 9 février 2004Date d'inscription 8 avril 2005 Dernière intervention - 20 oct. 2004 à 14:12
0
Merci
Merci beaucoup de vos réponses, le DisplayFormat arrange effectivement mes bidons :)
Commenter la réponse de Cylc

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.