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

 Delphi Discussion :

Récupérer le texte d'un QRDBText


Sujet :

Delphi

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Avril 2011
    Messages : 177
    Points : 111
    Points
    111
    Par défaut Récupérer le texte d'un QRDBText
    Bonjour,
    j'ai une requête Qery1 qui retourne 3 champs

    - nombre d'affaires
    - nombre d'affaires terminer
    - Taux =(affaires terminer *100/nombre d'affaires)
    pour chaque élément.

    j'utilise aussi le Qreport pour l'impression , mon problème c'est si le nombre d'affaires = 0 donc l'affichage est vide (QRDBText)"division par zéro", alors que moi je veux afficher 0% dans le QRDBText.

    je cherche aussi de récupéré le texte du QRDBText pour faire un if else .

  2. #2
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 496
    Points : 2 762
    Points
    2 762
    Billets dans le blog
    10
    Par défaut Problème de logique
    Citation Envoyé par yacinew Voir le message
    Bonjour,
    j'ai une requête Qery1 qui retourne 3 champs
    - nombre d'affaires
    - nombre d'affaires terminer
    - Taux =(affaires terminer *100/nombre d'affaires)
    pour chaque élément.
    Sachant que le nombre d'affaires terminées ne peut pas être inférieur au nombre d'affaires tu peux filtrer ta requête avec une clause du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where nombre_affaires > 0

  3. #3
    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 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Bonjour,
    rien n'empêche de créer un évènement OnPrint sur le QRDBText et de coder la condition. c'est du B.A.B.A. très facile à faire avec Quickreport

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TForm1.QRDBTextPrint(Sender : TObject; var Value : String;)
    begin
    if Query.FieldByName('nombre d''affaires').asInteger=0 then Value:='0%';
    end;
    Mais j'approuve la remarque d'ALBEWER , logiquement il devrait être impossible d'avoir des 'affaires terminées' qui ne soient pas des 'affaires comptées'
    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

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Avril 2011
    Messages : 177
    Points : 111
    Points
    111
    Par défaut
    Bonjour ;
    oui c'est vrais qu il y a pas des affaires terminer quand le nombre d'affaires =0, mais sur ce dernier on peux pas calculer le taux

    car il faut mettre : Taux =(affaires terminer *100/nombre d'affaires) alors que le nombre d'affaires=0,

    dans l'affichage j'ai des cases vide.

    QRDBText1 ---> nombre affaire
    QRDBText2---->affaires terminer

    quand je mis:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TForm1.QRDBText2Print(Sender : TObject; var Value : String;)
    begin
    if Query.FieldByName('nombre d''affaires').asInteger=0 then Value:='0%';
    end;
    rien n'ait changé

    et pour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TForm1.QRDBText1Print(Sender : TObject; var Value : String;)
    begin
    if Query.FieldByName('nombre d''affaires').asInteger=0 then Value:='0%';
    end;
    c'est le QRDBText1 qui est formaté.




    Citation Envoyé par SergioMaster Voir le message
    Bonjour,
    rien n'empêche de créer un évènement OnPrint sur le QRDBText et de coder la condition. c'est du B.A.B.A. très facile à faire avec Quickreport

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TForm1.QRDBTextPrint(Sender : TObject; var Value : String;)
    begin
    if Query.FieldByName('nombre d''affaires').asInteger=0 then Value:='0%';
    end;
    Mais j'approuve la remarque d'ALBEWER , logiquement il devrait être impossible d'avoir des 'affaires terminées' qui ne soient pas des 'affaires comptées'

  5. #5
    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 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Bonjour,


    Quand tiendrez vous compte que sans informations précises vous n'obtiendrez que des réponses imprécises , fameux principe : GARBAGE IN GARBAGE OUT

    ma suggestion sur le OnPrint s'appliquait au QRDBText qui doit afficher le taux

    cela devrait vous apprendre un ou deux trucs basiques de Delphi et du Forum
    1- Nommer les composants
    2- donner le texte des querys, et des noms de colonnes simples des apostrophes dans les noms de champs

    enfin , s'il s'agit comme je le crois non pas d'un QRDBText mais d'un QRExpression sachez qu'il est possible de gérer ça dans l'expression elle même

    à peu de chose près :
    FORMATNUMERIC('###.## %',IF(Query.nombredaffaires=0,0,QueryAffairesTerminees * 100/query.nombredaffaires))
    , j'ai juste un doute sur la chaine de formattage
    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

Discussions similaires

  1. [Excel] Récupérer le texte dans un shape de type zonedetext
    Par Rakham dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/12/2005, 11h00
  2. Récupérer du texte d'un fichier xml entre deux balises
    Par manutudescends dans le forum Format d'échange (XML, JSON...)
    Réponses: 24
    Dernier message: 30/11/2005, 18h29
  3. récupérer le texte d'un tooltip grace à son hwnd
    Par ChrisitianS_ dans le forum MFC
    Réponses: 2
    Dernier message: 19/11/2005, 15h23
  4. Récupérer le texte d'un champ de texte
    Par theberliner dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 04/12/2004, 10h08
  5. [methode] récupérer du texte
    Par thesly dans le forum Débuter
    Réponses: 6
    Dernier message: 23/04/2004, 15h14

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