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 :

afficher les decimaux dans une requette


Sujet :

Bases de données Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 74
    Points : 68
    Points
    68
    Par défaut afficher les decimaux dans une requette
    Bonjour,

    J'utilise le code suivant pour afficher ma requette dans un stringgrid

    et j'obtiens pour les valeurs decimaux 646,8 et 0 au lieu de 646,80 et 0,00

    d'avance merci.



    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    procedure Tform1.Connect;
    var 
      JvUIBDataBase    : TJvUIBDataBase; 
      JvUIBTransaction : TJvUIBTransaction; 
      JvUIBQuery       : TJvUIBQuery; 
      i              : Integer;
    begin
      JvUIBDataBase    := TJvUIBDataBase.Create(NIL); 
      JvUIBTransaction := TJvUIBTransaction.Create(NIL); 
      JvUIBQuery       := TJvUIBQuery.Create(NIL);
      i:= 1;
      try 
        JvUIBTransaction.DataBase:= JvUIBDataBase; 
        JvUIBQuery.Transaction:= JvUIBTransaction; 
        JvUIBDataBase.SQLDialect:= 3; 
        JvUIBDataBase.DatabaseName := 'localhost:C:\delphi\ASSO.FDB'; 
        JvUIBDataBase.UserName := 'sysdba'; 
        JvUIBDataBase.PassWord := 'masterkey'; 
     
        JvUIBDataBase.Connected:= True; 
        try 
          JvUIBDataBase.Connected;
     
          JvUIBQuery.SQL.Add('select ID,NOM,DTE,MONTANT from DONS');
     
          JvUIBTransaction.StartTransaction; 
          try
           Memo1.Lines.Clear;
            JvUIBQuery.Open;
            JvUIBTransaction.InTransaction;
            try
              while not JvUIBQuery.EOF do 
               begin
                StringGrid.Cells[1,i]:= JvUIBQuery.Fields.ByNameAsString['ID'];
                StringGrid.Cells[2,i]:= JvUIBQuery.Fields.ByNameAsString['NOM'];
                StringGrid.Cells[6,i]:= JvUIBQuery.Fields.ByNameAsString['DTE'];
                StringGrid.Cells[6,i]:= JvUIBQuery.Fields.ByNameAsString['MONTANT'];
                Inc(i);            
                JvUIBQuery.Next;
               end;
            finally
              JvUIBQuery.Close;
            end; 
          finally 
            JvUIBTransaction.Commit; 
          end; 
        finally 
          JvUIBDataBase.Connected:= False; 
        end; 
      finally 
        JvUIBQuery.Free; 
        JvUIBTransaction.Free; 
        JvUIBDataBase.Free; 
      end;

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    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 042
    Points : 40 952
    Points
    40 952
    Billets dans le blog
    62
    Par défaut
    utilises Format

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    StringGrid.Cells[6,i]:=Format('%3.2f',JvUIBQuery.Fields.ByNameAsString['MONTANT']);
    Syntaxe à vérifier, je ne connais pas JvUIBQuery, j'aurais plutôt ecrit :

    JvUIBQuery.FieldByName('MONTANT').asFloat;
    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
    Expert éminent sénior
    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 : 61
    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
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Citation Envoyé par SergioMaster Voir le message
    je ne connais pas JvUIBQuery, j'aurais plutôt ecrit :

    JvUIBQuery.FieldByName('MONTANT').asFloat;
    Point de FieldByName avec un TJvUIBQuery (celui-ci n'héritant pas de TDataSet).

    Quant à l'utilisation de Format, je verrais plutôt ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    StringGrid.Cells[6,i]:=Format('%.2f',JvUIBQuery.Fields.ByNameAsCurrency['MONTANT']);
    Un string étant incompatible avec le paramètre f qui attend un Float.

    @+ Claudius

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    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 042
    Points : 40 952
    Points
    40 952
    Billets dans le blog
    62
    Par défaut
    Avé Cl@udius

    c'est donc comme cela qu'il fallait l'écrire ! Bah , la philosophie y était

    j'apprends donc quelque chose, donc c'est une bonne journée qui commence
    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
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 74
    Points : 68
    Points
    68
    Par défaut
    Merci à toi SergioMaster pour ton aide.
    Merci à toi Claudius pour la correction.

    Codialement,

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

Discussions similaires

  1. Afficher les espaces dans une PROC REPORT
    Par Fatah93 dans le forum ODS et reporting
    Réponses: 6
    Dernier message: 07/05/2008, 21h30
  2. Réponses: 1
    Dernier message: 12/02/2008, 17h14
  3. Afficher les accent dans une console
    Par arnaud036 dans le forum C
    Réponses: 11
    Dernier message: 18/01/2008, 12h43
  4. Réponses: 2
    Dernier message: 13/12/2007, 19h34
  5. Comment afficher les toolTipText dans une zone de statut ?
    Par nicok01 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 28/01/2005, 13h32

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