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

Composants VCL Delphi Discussion :

Rave Reports -Récupérer la valeur d'un CalcText Component


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2003
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 207
    Par défaut Rave Reports -Récupérer la valeur d'un CalcText Component
    Bonjour à tous les développeurs,


    Dans un état Rave Report, je totalise 2 colonnes (DEBIT et CREDIT) à l'aide de 2 CalcText sum(DEBIT) et sum(CREDIT) qui se trouvent dans une bande <Group Footer>... Jusque là tout va bien.

    Je souhaite calculer le SOLDE en faisant la différence de ces 2 CalcText et placer le résultat en rouge s'il est débiteur et en vert s'il est créditeur.

    J'ai donc besoin de récupérer ces valeurs dans mon Delphi7, faire le calcul et envoyer le résultat avec ses attributs dans Rave Report.

    Sur le forum j'ai trouvé le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    RvPage := RAV.ProjMan.FindRaveComponent('Report1.Page1', nil) as TravePage;
     
    rvText := RAV.ProjMan.FindRaveComponent('DEBIT_PCG',RvPage) as TRaveText;

    rvText.Text me renvoie sum(DEBIT) et non sa valeur.

    Quelqu'un a t il une idée pour résoudre mon problème ?


    Merci d'avance pour vos éponses.
    Wilco

  2. #2
    Membre chevronné Avatar de chtiot
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 385
    Par défaut
    fais le calcul directement dans rave dans un autre calctext.

    sinon je pense que dans l'événement onBeforePrint de ta bande les calculs doivent être réalisé et donc que tu récupéres le solde

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2003
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 207
    Par défaut
    Merci chtiot pour ta réponse mais je n'ai pas trouvé comment faire une opération sur 2 calctext. Je peux le faire sur 2 datafields d'un dataview, sur 2 Calcvar ou sur 2 valeurs fixes mais je ne vois pas comment récupérer les valeurs de mes calctext.



  4. #4
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2003
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 207
    Par défaut
    J'essaye d'utiliser l'éditeur d'évenements des objets Rave Report mais je n'ai pas trouvé d'informations quant leur mode d'emploi.

    Quelqu'un a t il des exemples de codes ?

    Merci d'avance,
    Wilco

  5. #5
    Membre chevronné Avatar de chtiot
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 385
    Par défaut
    tu les trouves où tes composants calctext ?

    moi dans ma version rave (5.1.3) je n'ai que des CalcOp, CalcTotal et CalcController.

    il me semble que le composant CalcOp est fait pour ça.

    tu indiques tes 2 variables pour le calcul et l'opération à appliquer et tu indiques un paramètre ou un piVar de destination que tu mets en DataField d'un composant dataText

    sinon je n'ai jamais utilisé l'éditeur d'événements interne a rave mais j'intercepte pas mal d'événements rave dans un programme delphi sans problème

    jettes un coup d'oeil aux tips and tricks de nevrona, il y a des choses interessantes pour ce que tu veux faire

    http://www.nevrona.com/Default.aspx?tabid=53

  6. #6
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2003
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 207
    Par défaut
    Merci chtiot pour ton aide.

    Voici 2 images qui montrent le composant CalcText et le document Rave que j'essaye de faire fonctionner.







    Wilco

  7. #7
    Membre chevronné Avatar de chtiot
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 385
    Par défaut
    je pense qu'il faut proceder comme suit :

    mettre 1 calcTotal pour totaliser les debits (calcTd) et 1 autre calcTotal pour totaliser les crédits (calcTc)

    tu mets un destparam pour calcTd (parTd) et pour calcTc (parTc).

    tu remplaces tes calctext par des datatext qui pointent respectivement, par le DataField sur les param parTd et parTc

    tu mets 2 datatext pour le solde crédit et le solde débit

    dans l'événement onvalidaterow (il me semble que c'est ça), ilte suffit par le findravecomponent de récupérer les paramétres parTd et parTC et de faire le calcul de ton solde et de mettre à jour tes datatext solde débit et solde crédit.

  8. #8
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2003
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 207
    Par défaut
    Merci chtiot,

    En fait, ça marche avec mes CalcText et c'est bien l'évênement OnValidateRow qu'il faut utiliser (merci chtiot).

    Le code suivant fonctionne :

    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
     
    procedure TMAIN.ECC_ConnectValidateRow(Connection: TRvCustomConnection;
      var ValidRow: Boolean);
    begin
    RvPage := RAV.ProjMan.FindRaveComponent('Report1.Page1', nil) as TravePage;
     
    rvDEBIT_PCG := RAV.ProjMan.FindRaveComponent('DEBIT_PCG',RvPage) as TRaveText;
    rvCREDIT_PCG := RAV.ProjMan.FindRaveComponent('CREDIT_PCG',RvPage) as TRaveText;
     
    rvSOLDE_DEBIT_PCG := RAV.ProjMan.FindRaveComponent('SOLDE_DEBIT_PCG',RvPage) as TRaveText;
    rvSOLDE_CREDIT_PCG := RAV.ProjMan.FindRaveComponent('SOLDE_CREDIT_PCG',RvPage) as TRaveText;
     
     
    If (SpaceDel(rvDEBIT_PCG.Text) = '')
       then x := 0
       else x := StrToFloat(SpaceDel(rvDEBIT_PCG.Text));
     
    If (SpaceDel(rvCREDIT_PCG.Text) = '')
       then y := 0
       else y := StrToFloat(SpaceDel(rvCREDIT_PCG.Text));
     
    rvText := RAV.ProjMan.FindRaveComponent('PCG_SOLDE',RvPage) as TRaveText;
    rvSOLDE_DEBIT_PCG.Text := '';
    rvSOLDE_CREDIT_PCG.Text := '';
     
    If (x > y)
    then Begin
         rvText.Text := 'Solde DEBITEUR';
         rvText.Font.Color := clred;
     
         rvSOLDE_DEBIT_PCG.Text := FloatToStrF(x-y, ffNumber, 15, SYSDBS.QRY_PARNPRECISION.Value);
         end
     
    else If (x = y)
    then Begin
         rvText.Text := 'Compte soldé';
         rvText.Font.Color := clgreen;
     
         rvSOLDE_CREDIT_PCG.Text := '0.00';
         end
     
    else If (x < y)
    then Begin
         rvText.Text := 'Solde CREDITEUR';
         rvText.Font.Color := clgreen;
     
         rvSOLDE_CREDIT_PCG.Text := FloatToStrF(y-x, ffNumber, 15, SYSDBS.QRY_PARNPRECISION.Value);
         end;
     
     
    end;

    Merci à chtiot et au forum ...

  9. #9
    Membre chevronné Avatar de chtiot
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 385
    Par défaut
    you're welcome

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

Discussions similaires

  1. Valeurs Delphi dans Rave Report
    Par digital prophecy dans le forum Bases de données
    Réponses: 1
    Dernier message: 19/05/2008, 14h39
  2. Réponses: 3
    Dernier message: 02/07/2007, 18h25
  3. récupérer la valeur du 2ème champ dans un DBLookUpListBox
    Par jakouz dans le forum Bases de données
    Réponses: 3
    Dernier message: 20/07/2004, 16h45
  4. [Rave Report] problème de création dynamique
    Par Nivux dans le forum Rave
    Réponses: 2
    Dernier message: 24/05/2003, 00h07
  5. récupérer la valeur de sortie d'un thread
    Par jakouz dans le forum Langage
    Réponses: 3
    Dernier message: 31/07/2002, 11h28

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