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 :

Test de valeur pour affichage dans un TDBText


Sujet :

Bases de données Delphi

  1. #1
    Membre habitué
    Développeur .NET
    Inscrit en
    Juin 2002
    Messages
    274
    Détails du profil
    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2002
    Messages : 274
    Points : 174
    Points
    174
    Par défaut Test de valeur pour affichage dans un TDBText
    Bonjour,

    J'ai dans ma table des données numériques dont aucune n'est à 0 mais à NULL. Et dans ce cas je ne veux pas afficher de valeur mais soit rien du tout, soit un caractère par défaut (par ex. "-"). Je teste donc de la manière suivante dans le OnAfterScroll de mon DataSet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (MonDataSet.FieldByName('CHAMP_NUMERIQUE').AsInteger = 0)
      or MonDataSet.FieldByName('CHAMP_NUMERIQUE').IsNull then
        monDBText.Caption := '-';
    Et là chose bizarre : j'ai parfois ce que je veux et parfois rien du tout !!

    Pour tester je tente de "forcer" l'affichage du caractère (cad pareil sans le "if..then"), mais lorsqu'une valeur numérique est présente elle est tout de même affichée ! Comprends pas
    Et surtout je ne comprends pas pourquoi en debug pas à pas il "passe" bien sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monDBText.Caption := '-';
    quand la valeur est NULL, qu'en survolant le caption à la souris il m'affiche bien '-' mais que dans le logiciel rien ne s'affiche...
    Des idées svp ?

  2. #2
    Rédacteur/Modérateur

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

    ne pourrais-tu pas utiliser la propriété DefaultExpression du champ ?
    Le "forçage" devrait alors se faire sans code
    cependant attention , au Post , qui lui remplacera le [null] par la valeur par défaut indiquée (enfin je crois , je n'ai jamais essayé dans ces conditions) , j'espère avoir une réponse à ce cas dans la suite du Trend
    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
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Bonjour,

    ne pourrais-tu pas utiliser la propriété DefaultExpression du champ ?
    @ Sergio,

    Je confirme, enfin du moins sur Access

    @ Paradise : Comme le dit Sergio, si tu fixe une valeur par defaut à ton champ systématiquement la valeur sera prise en compte en cas d' INSERT ou de APPEND (évidement sir tu n'alimente pas toi même le champs)

    Se qui te permet de tester uniquement si égale à 0 (si tu fixe une valeur par defaut à 0 biensur)



  4. #4
    Membre habitué
    Développeur .NET
    Inscrit en
    Juin 2002
    Messages
    274
    Détails du profil
    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2002
    Messages : 274
    Points : 174
    Points
    174
    Par défaut
    Merci pour vos réponses.

    La base est seulement en consultation donc pas de modifs, mais j'ai testé la propriété DefaultExpression (avec valeur numérique et chaine de caractères) et cela ne marche pas mieux

    En gros : soit je n'affiche rien du tout, soit j'utilise un "simple" TLabel avec MAJ manuelle ce qui est dommage tout de même....

  5. #5
    Membre habitué
    Développeur .NET
    Inscrit en
    Juin 2002
    Messages
    274
    Détails du profil
    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2002
    Messages : 274
    Points : 174
    Points
    174
    Par défaut
    Même comportement avec un TDBEdit....

  6. #6
    Membre habitué
    Développeur .NET
    Inscrit en
    Juin 2002
    Messages
    274
    Détails du profil
    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2002
    Messages : 274
    Points : 174
    Points
    174
    Par défaut
    J'ai peut être un début d'explication, à savoir qu'en mode conception (dans l'IDE Delphi quoi) je me connecte à FireBird par le serveur installé en service Windows, alors qu'en exécution j'utilise le serveur embarqué.

    Donc quand je règle le paramètre DisplayFormat dans le code j'arrive à avoir un nombre fixe de décimales (autre problème que j'avais), chose qui ne marchait pas en le définissant dans l'inspecteur d'objets.
    Par contre j'ai beau mettre DefaultExpression à '-' même dans le code, mes TDBLabel restent vides...

Discussions similaires

  1. Recherche d'une valeur et affichage dans une feuille distincte
    Par arbotch dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/05/2009, 17h20
  2. Réponses: 0
    Dernier message: 14/05/2009, 12h38
  3. lecture d'une cellule excel pour affichage dans une page web
    Par smartbis dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 22/05/2008, 09h33
  4. Réponses: 2
    Dernier message: 19/03/2008, 11h58
  5. Réponses: 2
    Dernier message: 24/01/2008, 19h58

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