Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Crystal Reports
Crystal Reports Forum d'entraide sur Crystal Reports. Avant de poster --> FAQ Crystal, Tutoriels Crystal
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 06/09/2004, 15h56   #1
Invité de passage
 
Inscription : septembre 2004
Messages : 19
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 19
Points : 4
Points : 4
Par défaut [Crystal Report] Pb de somme

Bonjour,

J'utilise Crystal Report en version 8.5 et j'ai un probleme que je retrouve régulierement: j'ai des doublons dans les sommes lorsque j'ai un enregistrement d'une table qui correspond à 2 (ou plus) enregistrements d'une autre table.
ex: j'ai une ligne de commande pour laquelle j'ai plusieurs livraison, si je somme ma quantité en commande, elle est multipliée par le nb de livraison faite sur cette commande.
Quelqu'un a-t-il une solution ?
julien69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2004, 16h04   #2
Modérateur
 
Avatar de L.nico
 
Homme Nicolas LAURET
Chef de projet en SSII
Inscription : novembre 2003
Messages : 1 024
Détails du profil
Informations personnelles :
Nom : Homme Nicolas LAURET
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2003
Messages : 1 024
Points : 1 744
Points : 1 744

Pour ton problème tu dois faire un cumul manuel avec des formules et des variables.
__________________
Modérateur Business Intelligence / Windev

A lire avant de poster
Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton
L.nico est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2004, 16h06   #3
Invité de passage
 
Inscription : septembre 2004
Messages : 19
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 19
Points : 4
Points : 4
J'ai deja essayé mais ça m'a pas toujours fonctionné.
julien69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2004, 16h11   #4
Modérateur
 
Avatar de L.nico
 
Homme Nicolas LAURET
Chef de projet en SSII
Inscription : novembre 2003
Messages : 1 024
Détails du profil
Informations personnelles :
Nom : Homme Nicolas LAURET
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2003
Messages : 1 024
Points : 1 744
Points : 1 744
et pourtant ça marche ....
Peux-tu citer les formules que tu utilises pour faire ton calcul manuel

Code + Où elles sont placées

Peut-être qu'après on y verra plus clair
__________________
Modérateur Business Intelligence / Windev

A lire avant de poster
Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton
L.nico est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2004, 16h40   #5
Invité de passage
 
Inscription : septembre 2004
Messages : 19
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 19
Points : 4
Points : 4
Code :
1
2
numberVar dur_reel_calc;
dur_reel_calc:= IF isnull({OFOperation.DUR_REEL}) then dur_reel_calc + 0 Else {OFOperation.DUR_REEL} + dur_reel_calc;
Cette variable se trouve dans l'entete de mon groupe, si j'affiche cette meme variable en pied de groupe, elle est x2...
julien69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2004, 17h04   #6
Modérateur
 
Avatar de L.nico
 
Homme Nicolas LAURET
Chef de projet en SSII
Inscription : novembre 2003
Messages : 1 024
Détails du profil
Informations personnelles :
Nom : Homme Nicolas LAURET
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2003
Messages : 1 024
Points : 1 744
Points : 1 744
Tout d'abord il faut que tu utilises les balises Codes lorsque tu enonces du Code !
...
Je vais résumer pour voir si j'ai tout saisi.
Tu as fait un sum sur les Qté commandées et sur les qté livrées,
forcément par ta jointure la somme des quantités commandées est multipliée autant de fois
que le nombre de livraisons par commande ....
...
As-tu fait un groupe sur commande ??
Je ne comprends pas trop pourquoi tu veux faire un sum des quantités de la commande
puisqu'il te suffit d'afficher le champ en fin de groupe commande ??
Ou en ligne detail avec l'option suppression si en double ...

Un sum n'a d'intérêt que si tu veux avoir le total des quantités de toutes les commandes en fin d'etat.
Alors il devient necessaire de faire un cumul manuel, sinon je vois pas ...

J'ai besoin d'eclaircissements, d'un peu de lumière
__________________
Modérateur Business Intelligence / Windev

A lire avant de poster
Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton
L.nico est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2004, 17h29   #7
Invité de passage
 
Inscription : septembre 2004
Messages : 19
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 19
Points : 4
Points : 4
C'est bien ça....
Mais en fait c'est un problème que j'ai souvant, j'ai donné l'exemple d'une commande et de ces livraisons pour que ça parle à tout le monde mais ce n'est pas le code que je t'ai envoyé.... je sais c'est pas tres clair.
On recommence depuis le debut. Là je suis sur un etat de charge machine, j'ai 3 groupes:

Group1 : Centre de charge (regroupement de plusieurs machines)
Group2 : Machine
Group3: Opération

J'ai une charge initiale sur chaque opération, cette charge je la sum sur mes group1 et 2. Jusque la ça va.
Sur mes opérations j'ai des saisies de tps (plusieurs saisies possible par opérations). Je calcul à chaque opération la charge restante... là où ça se corse c'est quand je veux faire mes sum sur mes group1 et 2.

J'espere avoir ete plus clair...
Je pense que la solution passe en effet par une variable mais je n'arrive pas à le faire correctement.

J'utilisais auparavant Infomaker et il y avait une option "distinct" dans la fonction sum. C'etait bien pratique.
Merci pour ton aide.
julien69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2004, 18h03   #8
Modérateur
 
Avatar de L.nico
 
Homme Nicolas LAURET
Chef de projet en SSII
Inscription : novembre 2003
Messages : 1 024
Détails du profil
Informations personnelles :
Nom : Homme Nicolas LAURET
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2003
Messages : 1 024
Points : 1 744
Points : 1 744
Je vais te donner un exemple de Cumul Manuel en syntaxe crystal pour calculer ta charge totale par machine :
En début de groupe machine:
Formule InitMachine
Code :
1
2
3
WhilePrintingRecords;
Global NumberVar Charge;
Charge:={ChargeInitiale}
En fin de groupe Opération
Formule Cumul:
Code :
1
2
3
WhilePrintingRecords;
Global NumberVar Charge;
Charge:=Charge + {Operation.Charge}
En fin de groupe Machine
Formule AfficheChargeMachine
Code :
1
2
WhilePrintingRecords;
Global NumberVar Charge;
J'espère que tu seras plus éclairé quand à la manière de procéder ...
__________________
Modérateur Business Intelligence / Windev

A lire avant de poster
Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton
L.nico est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2004, 08h11   #9
cdu
Membre actif
 
Inscription : août 2004
Messages : 196
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 196
Points : 179
Points : 179
slt,
pourquoi tu mets ta variable en global ? il me semble que local ( par défaut ) est suffisant.
cdu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2004, 09h06   #10
Modérateur
 
Avatar de L.nico
 
Homme Nicolas LAURET
Chef de projet en SSII
Inscription : novembre 2003
Messages : 1 024
Détails du profil
Informations personnelles :
Nom : Homme Nicolas LAURET
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2003
Messages : 1 024
Points : 1 744
Points : 1 744
je la met en global pour qu'elle puisse être utilisée dans tout l'etat et qu'elle garde la valeur acquise séquentiellement durant le déroulement de l'edition ...
En local dans chaque formule elle est réinitialisée à 0 et ce n'est pas ce que je veux...
__________________
Modérateur Business Intelligence / Windev

A lire avant de poster
Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton
L.nico est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2004, 10h57   #11
Invité de passage
 
Inscription : septembre 2004
Messages : 19
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 19
Points : 4
Points : 4
En fait je voudrais que ma variable1 se remette à zero apres chaque total machine et ma variable2 apres chaque total centre de charge.
En Global elle ne se remet jamais à 0 et en local trop....
Une idée ?
julien69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2004, 11h06   #12
Modérateur
 
Avatar de L.nico
 
Homme Nicolas LAURET
Chef de projet en SSII
Inscription : novembre 2003
Messages : 1 024
Détails du profil
Informations personnelles :
Nom : Homme Nicolas LAURET
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2003
Messages : 1 024
Points : 1 744
Points : 1 744
sans problèmes .....
la variable en global se remet à 0 si toi tu le lui dis.
Je vais changer mon exemple :

* Partie Réinitialisation

En debut de groupe Charge
Formule InitCharge
Code:
Code :
1
2
3
WhilePrintingRecords; 
Global NumberVar ChargeTotale; 
ChargeTotale:=0
En debut de groupe machine
Formule InitMachine
Code:
Code :
1
2
3
WhilePrintingRecords; 
Global NumberVar ChargeMachine; 
ChargeMachine:=0
* Partie Cumul

En fin de groupe Opération
Formule Cumul:
Code:
Code :
1
2
3
4
5
6
WhilePrintingRecords; 
Global NumberVar ChargeMachine; 
Global NumberVar ChargeTotale;
ChargeMachine:=ChargeMachine + {Operation.Charge};
ChargeTotale:=ChargeTotale + {Operation.Charge};
""
* Partie Affichage

En fin de groupe Machine
Formule AfficheChargeMachine
Code:
Code :
1
2
WhilePrintingRecords; 
Global NumberVar ChargeMachine;
En fin de groupe Centre de Charge
Formule AfficheChargeTotale
Code:
Code :
1
2
WhilePrintingRecords; 
Global NumberVar ChargeTotale;
Est-ce que c'est plus clair pour toi ?? :
__________________
Modérateur Business Intelligence / Windev

A lire avant de poster
Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton
L.nico est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2004, 11h10   #13
cdu
Membre actif
 
Inscription : août 2004
Messages : 196
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 196
Points : 179
Points : 179
tu peux tenter ça en formule d'affichage
Code :
1
2
3
4
5
6
 Global NumberVar Charge;
LOCAL numberVar TmpCharge;
WhilePrintingRecords; 
TmpCharge:=Charge;
Charge:=0;
TmpCharge;
cdu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2004, 15h55   #14
Invité de passage
 
Inscription : septembre 2004
Messages : 19
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 19
Points : 4
Points : 4
Merci L.nico pour ton aide.
ça fonctionne.
A+
julien69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2004, 14h30   #15
Modérateur
 
Avatar de L.nico
 
Homme Nicolas LAURET
Chef de projet en SSII
Inscription : novembre 2003
Messages : 1 024
Détails du profil
Informations personnelles :
Nom : Homme Nicolas LAURET
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2003
Messages : 1 024
Points : 1 744
Points : 1 744
Juste une information encore ...
On peut en crystal 10 eviter de saisir tout ce code et utiliser un champ total cumulé qui marche (j'ai vérifié)
Voir aide en ligne sur :

Création des totaux cumulés dans une relation un-à-plusieurs

Finit les formules à rallonge pour traiter un cas simple..
Mais c'est en Crystal Report 10
__________________
Modérateur Business Intelligence / Windev

A lire avant de poster
Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton
L.nico est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2007, 11h24   #16
Invité de passage
 
Inscription : août 2007
Messages : 1
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 1
Points : 1
Points : 1
Bonjour, j'ai la même problématique avec cette somme cumulée mais au lieu d'avoir le total en pied de page, j'aimerais l'avoir en entête là où il y a l'initialisation des variables.

Merci

Max
Maxvntp 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 23h30.


 
 
 
 
Partenaires

Hébergement Web