begin process at 2010 02 09 21:00:11
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Base de données

 > 

Access

 > 

DisplayFormat DBGrid


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

DisplayFormat DBGrid

vendredi 3 juillet 2009 à 21:56:40 | DisplayFormat DBGrid

eli42

Bonjour, Je voudrais Formater 2 Colonnes Float dans un DBGrid, colunns[0] en ####-##-##### et colunns[5] en #.##, mes Champs ne sont pas Persistent, donc pas accés à DisplayFormat dans l'nspecteur d'objet,donc j'ai Tapé : DBGrid1.Columns[0].FieldName := QUERY.FieldValues['CHAMP1'].DisplayFormat('#####-##-#####'); DBGrid1.Columns[5].FieldName := QUERY.FieldValues['CHAMP1'].DisplayFormat('#.##'); Mais à chaque fois j'ai "Opération de Variant Incorrecte" Bonne Prog à tous (tes) *Nota j'ai testé la solution de Loulibier : http://www.delphifr.com/forum/sujet-FORMATER-CHAMPS-TDBGRID_316176.aspx pas mieux
vendredi 3 juillet 2009 à 21:58:26 | Re : DisplayFormat DBGrid

eli42

Réponse acceptée !
Oups désolé pour la mise en page de daube que je viens de poster
vendredi 3 juillet 2009 à 23:51:37 | Re : DisplayFormat DBGrid

beckerich

Réponse acceptée !
bonsoir,

il faut peut-être essayer le traitement dans l'évènement DBGrid1DrawColumnCell du dbgrid.

procedure TForm4.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  if DataCol = 0 then
  begin
   
  end;
end;

Luc.
vendredi 3 juillet 2009 à 23:54:58 | Re : DisplayFormat DBGrid

beckerich

Réponse acceptée !
oups trop vite :

procedure TForm4.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  if DataCol = 0 then
  begin
    DBGrid1.Canvas.Font.Name := 'Tunga';

  end;
  DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

samedi 4 juillet 2009 à 01:16:30 | Re : DisplayFormat DBGrid

eli42

J'ai fait un mix de Beckerich et de Loulibier : http://www.delphifr.com/forum/sujet-FORMATER-CHAMPS-TDBGRID_316176.aspx Procedure TFiche.DBGListeDrawColumnCell(Sender: TObject; Const Rect: TRect; DataCol: Integer; Column: TXColumn; State: TGridDrawState); Begin If DataCol = 0 Then Begin DBGListe.Canvas.TextRect(Rect, Rect.Left, Rect.Top, FormatFloat('####-##-#####', DM.T_BL.Fieldbyname('NFICHE').AsFloat)); End; If DataCol = 5 Then Begin DBGListe.Canvas.TextRect(Rect, Rect.Left, Rect.Top, FormatFloat('0.00', DM.T_BL.Fieldbyname('TOTAL').AsFloat)); End; End; Ca fonctionne par contre pour ma colonne 5 qui FLOAT j'ai un Alignement a gauche malgre : DBGLISTE.Columns[5].Alignment := taRightJustify; Voila ca avance doucement mais surement
samedi 4 juillet 2009 à 01:17:33 | Re : DisplayFormat DBGrid

eli42

???? c'est quoi cete mise en page ????
samedi 4 juillet 2009 à 01:18:41 | Re : DisplayFormat DBGrid

beckerich

Réponse acceptée !
tu dois gérer toi-même les alignements (SetTextAlign(DBGrid.Canvas.Handle, TA_RIGHT))

ou utiliser DrawText...
Courage, tu es sur la bonne voie.
Luc.
samedi 4 juillet 2009 à 01:20:45 | Re : DisplayFormat DBGrid

eli42

Réponse acceptée !
J'ai fait un mix de Beckerich et de Loulibier : http://www.delphifr.com/forum/sujet-FORMATER-CHAMPS-TDBGRID_316176.aspx

Procedure TFiche.DBGListeDrawColumnCell(Sender: TObject; Const Rect: TRect;
DataCol: Integer; Column: TXColumn; State: TGridDrawState);
Begin
If DataCol = 0 Then
Begin
  DBGListe.Canvas.TextRect(Rect, Rect.Left, Rect.Top,
   FormatFloat('####-##-#####', DM.T_BL.Fieldbyname('NFICHE').AsFloat));
End;
If DataCol = 5 Then
Begin
  DBGListe.Canvas.TextRect(Rect, Rect.Left, Rect.Top,
   FormatFloat('0.00', DM.T_BL.Fieldbyname('TOTAL').AsFloat));
End;
End;

Ca fonctionne par contre pour ma colonne 5 qui FLOAT j'ai un Alignement a gauche malgre :
DBGLISTE.Columns[5].Alignment := taRightJustify;

Voila ca avance doucement mais surement
lundi 6 juillet 2009 à 14:00:29 | Re : DisplayFormat DBGrid

eli42

Réponse acceptée !
Bon voila pour finir, j'ai exactement ce que je voulais :

Procedure TForm1.DBGListeDrawColumnCell(Sender: TObject; Const Rect: TRect;
DataCol: Integer; Column: TXColumn; State: TGridDrawState);
Var
LargEcrit: Integer;
Begin
Try
  If DataCol = 0 Then
  Begin
   LargEcrit := DBGListe.Canvas.Textwidth(FormatFloat('####-##-#####',
    Table.Fieldbyname('NFICHE').AsFloat));
   DBGListe.Canvas.TextRect(Rect, Rect.Right - LargEcrit - 2, Rect.Top + 2,
    FormatFloat('####-##-#####', Table.Fieldbyname('NFICHE').AsFloat));
  End;
  If DataCol = 5 Then
  Begin
   LargEcrit := DBGListe.Canvas.Textwidth(FormatFloat('0.00',
    Table.Fieldbyname('TOTAL').AsFloat));
   DBGListe.Canvas.TextRect(Rect, Rect.Right - LargEcrit - 2, Rect.Top + 2,
    FormatFloat('0.00', Table.Fieldbyname('TOTAL').AsFloat));
  End;
Except
  exit;
End;
End;

Bonne Prog a tous, et merci a Beckerich et de Loulibier, ded m'avoir mis sur le bon chemin


Cette discussion est classée dans : champs, formater, dbgrid, displayformat, colunns


Répondre à ce message

Sujets en rapport avec ce message

grid [ par aurel_kb ] j'ai lu dans une discussion que pour formater un champs d'un Dbgrid, on double clique sur le DBgrid et sur le champs qu'on veut formater on change la champs persistants, dbgrid et table access [ par informatixo ] J'ai une Table access intitulé "Fourniture" avec : id_fac (entier long) identificateur facture ind_lig (entier long) identificateur ligne num_lig (te mettre la 1ère lettre en majuscule dans une DBGrid [ par lilo415 ] Bonjour,J'aurais voulu savoir comment on pouvait mettre la 1ère lettre en majuscule de tous les champs saisis dans un DBGrid.Est-ce posssible pour tou un champs dbLookUpcombobox dans mon dbGrid [ par tleboukaka ] <link rel="Fi formater un chiffre dans un DbGrid [ par notrica ] salutje cherche comment formater un chiffre dans un dbGrid càd afficher le séparateur de millier et le décimal. Y a t'il moyen de le faire ?Merci d'av inclure une image dans champs d'un dbgrid [ par idaas ] salut, es que vous pouvez me dire Comment inclure une image dans champs d'un dbgrid avec une bdd sqlserver, au un autre composant dbgrid qui permet la concaténation de DBGrid provenant de bases différentes mais ayant les memes champs [ par hajerhajer ] bonjour les Delphistes, j'ai une question: j'ai des DBGrid ayant les meme champs. je veux concaténer leurs contenus dans un seul DBGrid résultat sacha dbgrid [ par houeg ] bonjour,quelqu'un peut il m'expliquer comment faire pour récupérer l'enregistrement en cours de sélection (par un utilisateur) dans un DBGrid ?je ne v dbgrid [ par houeg ] bonjour,quelqu'un peut il m'expliquer comment faire pour récupérer l'enregistrement en cours de sélection (par un utilisateur) dans un DBGrid ?je ne v DBGrid Récupéré le contenu d'un champs [ par airhik7 ] J'utilise Delphi 7 J'aimerai savoir comment récupéré la donné contenu dans une cellule de DBGrid par programmation!!!!!C'est pour faire un test sur la


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,421 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales