Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Rave
Rave Forum d'entraide sur Rave Reports
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/12/2011, 16h28   #1
Membre du Club
 
Inscription : avril 2008
Messages : 129
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 129
Points : 41
Points : 41
Envoyer un message via Yahoo à damene
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

Citation:
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.
damene est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 08h46   #2
Modérateur
 
Avatar de SergioMaster
 
Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 3 624
Détails du profil
Informations personnelles :
Nom : Serge Girard
Âge : 55
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : janvier 2007
Messages : 3 624
Points : 4 529
Points : 4 529
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 :
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 :
Citation:
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 :
'page n°'&report.currentpage
__________________
La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
SergioMaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 10h34   #3
Membre du Club
 
Inscription : avril 2008
Messages : 129
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 129
Points : 41
Points : 41
Envoyer un message via Yahoo à damene
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
damene est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 13h15   #4
Membre du Club
 
Inscription : avril 2008
Messages : 129
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 129
Points : 41
Points : 41
Envoyer un message via Yahoo à damene
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 :
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 :
'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
Citation:
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.
damene est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h30.


 
 
 
 
Partenaires

Hébergement Web