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

Rave Discussion :

Somme de deux colonnes sur une troisième colonne


Sujet :

Rave

  1. #1
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 167
    Points : 89
    Points
    89
    Par défaut Somme de deux colonnes sur une troisième colonne
    Bonjour tout le monde et bonjour Rambo.

    J'ai un état à trois colonnes.
    Colonne 1 champ1
    Colonne 2 champ2
    Colonne 2 Somme des champs Champ1+Champ2.

    Je n'arrive pas faite la somme des deux champs.

    j'ai mis dans le datatex du champ3 en parametre (Champ1+champ2), mais ceux sont ces deux champs que j'ai à l'impression et non leur somme.

    la discussion du 04/07/2005 (page 7) se rapproche de mon cas

    Bon, j'ai fait autrement mais ça me semble moins bien, même si au moins ça marche...
    J'ai mis un CalcOp ds la DataBand qui a en DestParam "Total", en DataField1 "Param.Total" (lui-même en somme...) et en DataField2 "prixProduit". Là ça marche, je vais laisser ainsi mais bon, l'autre façon de faire me semblait plus logique
    mais je ne comprends pas ce qui a été fait.

    merci pour votre concours.

  2. #2
    Rédacteur/Modérateur

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

    Première suggestion : avoir un champ calculé directement dans le dataSet Delphi (toujours aller à la source) . C'est généralement ce que je fait dans ces cas là .

    Code SQL du Dataset : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    //par exemple  
    SELECT CHAMP1,CHAMP2 FROM TABLE
    //sera remplacé avantageusement par 
    SELECT CHAMP1,CHAMP2,CHAMP1+CHAMP2 AS SOMME FROM TABLE

    En faisant confiance à Rave , voici les étapes
    -ajouter un paramètre à l'état (par exemple Somme) pour cela , dans le designer Rave : Cliquer sur l'état, dans les propriété cliquer sur Parameters et dans la stringlist ajouter Somme

    -passer à la page
    -Au niveau de la bande devant recevoir la Somme ajouter un Calcop
    DestParam=Somme
    Operator = coAdd
    Src1dataField=Champ1
    src1dataview=Dataview1
    Src2dataField=Champ2
    src2dataview=Dataview1

    - dans le dataText
    dataField = param.Somme
    dataView =

    Le tour est joué .
    Attention à la distinction subtile entre Pivar (post initialize variables) et Param , elle peut être intéressante (mais je suis hors sujet)


    Dernier point :
    j'ai mis dans le datatex du champ3 en parametre (Champ1+champ2), mais ceux sont ces deux champs que j'ai à l'impression
    Normal ce '+' n'est pas un opérateur de calcul mais de concaténation de chaine (le + ne met aucun espace entre les 2 , le & ajoute un espace . Très pratique pour des trucs genre
    Code Datatext : Sélectionner tout - Visualiser dans une fenêtre à part
    'page n°'&report.currentpage
    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 régulier
    Inscrit en
    Avril 2008
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 167
    Points : 89
    Points
    89
    Par défaut
    Bonjour SergioMaster
    Je te remercie de ta célérité.
    Je vais essayer de faire ce que tu me proposes. Je n'ai jamais travaillé en SQL. J'utilise Delphi 7 et des tables Paradox.
    Merci

  4. #4
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 167
    Points : 89
    Points
    89
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Bonjour,

    Première suggestion : avoir un champ calculé directement dans le dataSet Delphi (toujours aller à la source) . C'est généralement ce que je fait dans ces cas là .

    Code SQL du Dataset : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    //par exemple  
    SELECT CHAMP1,CHAMP2 FROM TABLE
    //sera remplacé avantageusement par 
    SELECT CHAMP1,CHAMP2,CHAMP1+CHAMP2 AS SOMME FROM TABLE

    En faisant confiance à Rave , voici les étapes
    -ajouter un paramètre à l'état (par exemple Somme) pour cela , dans le designer Rave : Cliquer sur l'état, dans les propriété cliquer sur Parameters et dans la stringlist ajouter Somme

    -passer à la page
    -Au niveau de la bande devant recevoir la Somme ajouter un Calcop
    DestParam=Somme
    Operator = coAdd
    Src1dataField=Champ1
    src1dataview=Dataview1
    Src2dataField=Champ2
    src2dataview=Dataview1

    - dans le dataText
    dataField = param.Somme
    dataView =

    Le tour est joué .
    Attention à la distinction subtile entre Pivar (post initialize variables) et Param , elle peut être intéressante (mais je suis hors sujet)


    Dernier point :

    Normal ce '+' n'est pas un opérateur de calcul mais de concaténation de chaine (le + ne met aucun espace entre les 2 , le & ajoute un espace . Très pratique pour des trucs genre
    Code Datatext : Sélectionner tout - Visualiser dans une fenêtre à part
    'page n°'&report.currentpage
    Re bonjour SergioMaster
    En suivant ta démarche (claire, nette et précise) ça a marchait à merveille.
    Au niveau du total de l'état.

    comme le préconisé Patrick25300 dans sa discussion du 11/7/2007
    Ajouter le composant « CalcTotal » et paramétrer les propriétés « CalcType » à ‘ctSum’ « CalcVar » y mettre ‘CalcOp1’ dans « Controller » y mettre ‘CalcController1’ dans « Destparam » y mettre ‘Somme ' la variable créée.

    Cela marche correctement.

    Merci SergioMaster et merci Patrick25300 .

    Merci.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/11/2012, 20h51
  2. Total d'une colonne sur une nouvelle colonne
    Par Lobay dans le forum SSRS
    Réponses: 0
    Dernier message: 12/07/2011, 10h28
  3. Réponses: 2
    Dernier message: 05/04/2008, 17h33
  4. Réponses: 4
    Dernier message: 02/08/2007, 13h37
  5. Afficher plusieur colonnes sur une seule colonne ?
    Par Interruption13h dans le forum Langage SQL
    Réponses: 4
    Dernier message: 04/02/2007, 16h57

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