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 :

formatage de données


Sujet :

Bases de données Delphi

  1. #1
    iam
    iam est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 197
    Points : 72
    Points
    72
    Par défaut formatage de données
    bonjour tout le monde,
    excusez moi les amis car j'ai déjà poser ce pb, mais je n'arrive pas à trouver une solution,
    bon, j'ai un stringgrid, je formatte chaque cellule après sa validation en float avec : Floatformat('#,0.#0',strtofloat(cells[col,row]));
    pour un souci d'affichage seulement.
    par exemple : j'entre dans une celulle le texte suivant :1253000, après que je passe à la cellule suivante, j'obtiendrai dans la cellule précédente le texte suivant : 1 253 000,00 en appliquant la fonction précédente ok.
    donc j'arrive à afficher le contenu de mes cellules comme des montants (car c'est des prix qu'elles contiennent) jusqu'à là c'est bon.

    quand je termine la saisie de mon stringgrid, je veux insérer son contenu dans une table avec une requette d'insertion, les types des champs qui vont recevoir le contenu des cellules est float,
    donc lorsque je passe les parametres je doit transformer avec
    strtofloat(cells[col,row]), c'est à ce niveau là que je me bloque car la cellule est frmatée (ex:1 253 000,00 ) il m'affiche l'erreur suivante :
    (1 253 000,00 n'est une valeur en virgule flottante correcte).
    j'ai besoin de rendre ma cellule en format normale avant je passe son contenu au parametre de la requete d'insertion,
    est ce qu'il existe une fonction ou un moyen de faire ça, c'est ç dire enlever le formatage précédent des cellule.
    merci de votre attention

  2. #2
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    Je suggére une solution légérement différente :
    - laisser dans les cellules la valeurs saisies (12530000),
    - utiliser l'événement OnDrawcell pour afficher le nombre formatté (1 253 000,00).

    Par la même occasion, on peut définir la couleur de fond des cellules.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  3. #3
    Membre habitué Avatar de maamar1979
    Inscrit en
    Mai 2006
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 174
    Points : 134
    Points
    134
    Par défaut
    utilise FormatFloat('0.00',StrtoFloat(cells[x,y]))
    au lieu de FormatFloat('#,0.#0',StrtoFloat(cells[x,y]))

    si ca t'arenge bien sur

    salut.
    On fait tous les X choses nécessaires pour avoir comme résultats un Y, finalement c'est Z qu'on obtiens : c'est le destin.

  4. #4
    Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par iam
    bonjour tout le monde,
    excusez moi les amis car j'ai déjà poser ce pb, mais je n'arrive pas à trouver une solution,
    bon, j'ai un stringgrid, je formatte chaque cellule après sa validation en float avec : Floatformat('#,0.#0',strtofloat(cells[col,row]));
    pour un souci d'affichage seulement.
    par exemple : j'entre dans une celulle le texte suivant :1253000, après que je passe à la cellule suivante, j'obtiendrai dans la cellule précédente le texte suivant : 1 253 000,00 en appliquant la fonction précédente ok.
    donc j'arrive à afficher le contenu de mes cellules comme des montants (car c'est des prix qu'elles contiennent) jusqu'à là c'est bon.

    quand je termine la saisie de mon stringgrid, je veux insérer son contenu dans une table avec une requette d'insertion, les types des champs qui vont recevoir le contenu des cellules est float,
    donc lorsque je passe les parametres je doit transformer avec
    strtofloat(cells[col,row]), c'est à ce niveau là que je me bloque car la cellule est frmatée (ex:1 253 000,00 ) il m'affiche l'erreur suivante :
    (1 253 000,00 n'est une valeur en virgule flottante correcte).
    j'ai besoin de rendre ma cellule en format normale avant je passe son contenu au parametre de la requete d'insertion,
    est ce qu'il existe une fonction ou un moyen de faire ça, c'est ç dire enlever le formatage précédent des cellule.
    merci de votre attention
    Salut,
    Tu dois aller à Ain El-Kabira W. de Sétif et juste à Ain Touila à coté du Café tu trouveras une personne "M'RABET" avec un grand ordinateur sur sa tete, il peut t'aider je pense.
    j'espère que ma réponse est satisfaisante.

  5. #5
    Membre habitué Avatar de maamar1979
    Inscrit en
    Mai 2006
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 174
    Points : 134
    Points
    134
    Par défaut
    je vien d'essayer comme suit et ca a marcher

    utilise cette fonction (modifier de celle de la derniere fois) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function TForm1.efface_blanc(chaine: string): string;
    var depart : string;
        i : integer;
    begin
    depart:='';
    for i := 1 to length(chaine) do
    begin
    if chaine[i] in ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ','] then
    depart:=depart + chaine[i]
    end;
    result:=depart
    end;
    tu l'appel comme suit:

    StrToFloat(efface_blanc(Edit1.text))

    et c'est oki.

    salam
    On fait tous les X choses nécessaires pour avoir comme résultats un Y, finalement c'est Z qu'on obtiens : c'est le destin.

  6. #6
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    Citation Envoyé par Graffito
    Bonjour,

    Je suggére une solution légérement différente :
    - laisser dans les cellules la valeurs saisies (12530000),
    - utiliser l'événement OnDrawcell pour afficher le nombre formatté (1 253 000,00).

    Par la même occasion, on peut définir la couleur de fond des cellules.
    sa sera mieux je pence surtout pour aligné a droite
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  7. #7
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    +1 Graffito aussi.

    Surtout si le format change un jour, il n'y a pas à changer la conversion str->float inverse.
    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. [MySQL] Formatage des données dans un tableau
    Par dunbar dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/06/2006, 09h52
  2. [VBA-E] Formatage des données à l'ouverture d'un fichier texte
    Par jmercier dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/11/2005, 18h00
  3. [EXCEL] Formatage des données
    Par Cupidon dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 02/11/2005, 22h32
  4. [Struts] Formatage des données
    Par Biloo dans le forum Struts 1
    Réponses: 6
    Dernier message: 15/09/2005, 13h13
  5. formatage de données en Sorties
    Par Bjuice2 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/10/2004, 16h56

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