Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Crystal Reports > Formules
Formules Forum sur l'utilisation des formules sous Crystal 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 10/06/2004, 10h08   #1
Candidat au titre de Membre du Club
 
Inscription : février 2003
Messages : 17
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 17
Points : 13
Points : 13
Par défaut [CR8.5] Problème de division par zéro sur formule

Bonjour à tous,

j'utilise crystal report 8.5.je rencontre actuellement un problème sur un état de statistiques.quand j'ouvre l'état,celui ci me met une erreur 515 de division par zéro sur une formule.cependant je ne comprend pas,car je fait tous les tests avant de réaliser mes opération.

j'espère que quelqu'un pourra m'aider.

merci beaucoup.

Voici ma formule :
Code :
1
2
3
4
5
 
IF( ({#TOTAUX_QTE_ACHETEES_MAGASIN} <> 0.00) AND ({#TOTAUX_VALEUR_ACHAT_MAGASIN} <> 0.00) AND ({#TOTAUX_QTE_VENDUES_MAGASIN} <> 0.00) ) THEN
    currencyVar Prix_Achat := {#TOTAUX_VALEUR_ACHAT_MAGASIN} / {#TOTAUX_QTE_ACHETEES_MAGASIN};
    currencyVar Montant := Prix_Achat * {#TOTAUX_QTE_VENDUES_MAGASIN};
    ({#TOTAUX_MARGE_MAGASIN} * 100) / Montant
PS: j'ai également essayer de mettre un ELSE correspondant à mon IF mais crystal n'en veut pas et dit qu'il y a une erreur comme quoi le texte restant ne fait pas partie de la formule. ceci est un détail,mais j'aimerai bien comprendre quand même.merci bcp[/quote]
franck.cvitrans est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2004, 10h16   #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
Tu devrais peut-être tester aussi Not IsNull
Si Champ Is Null then <> 0 et pourtant Erreur de Division car Null Considéré comme 0 pour
l'opération arithmétique ...
__________________
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 10/06/2004, 10h43   #3
Candidat au titre de Membre du Club
 
Inscription : février 2003
Messages : 17
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 17
Points : 13
Points : 13
Mon esprit mathématique est un peu perturbé là : si mes champs {#TOTAUX_QTE_ACHETEES_MAGASIN} , {#TOTAUX_VALEUR_ACHAT_MAGASIN} et {#TOTAUX_QTE_ACHETEES_MAGASIN} ne sont pas égaux à zéro comment peut-il y avoir une division par zéro ? peut-être est-ce un problème de crystal report ?

J'ai modifié ma formule ainsi :
Code :
1
2
3
4
5
 
IF (({#TOTAUX_QTE_ACHETEES_MAGASIN} <> 0.00) OR (Not IsNull({#TOTAUX_QTE_ACHETEES_MAGASIN})) OR ({#TOTAUX_VALEUR_ACHAT_MAGASIN} <> 0.00) OR (Not IsNull({#TOTAUX_VALEUR_ACHAT_MAGASIN})) OR ({#TOTAUX_QTE_VENDUES_MAGASIN} <> 0.00)) OR (Not IsNull({#TOTAUX_QTE_VENDUES_MAGASIN})) THEN
    currencyVar Prix_Achat := {#TOTAUX_VALEUR_ACHAT_MAGASIN} / {#TOTAUX_QTE_ACHETEES_MAGASIN};
    currencyVar Montant := Prix_Achat * {#TOTAUX_QTE_VENDUES_MAGASIN};
    ({#TOTAUX_MARGE_MAGASIN} * 100) / Montant
pourquoi ne puis-je pas mettre de ELSE après mon IF ?
je voudrai en fait retourner zéro si il y a division par zéro.

merci de vos réponses
franck.cvitrans est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2004, 13h41   #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
Je crois que je sais pourquoi ....
la fin de ton if c'est :
/ {#TOTAUX_QTE_ACHETEES_MAGASIN};

Par conséquent il Fait toujours ta division par montant qui est à priori peut-être égale à 0 puisque tu fais toujours ta division par montant qui est égale à PA * Qte Vendues Magasin.
Si PA = 0 ou Qte = 0 alors Montant = 0 et la dernière instruction cale sur Divison par 0 ....


Tu devrais mettre des parenthèses pour tout ce qui vient après le Then ou utiliser une syntaxe basic qui ne pose pas ce genre de problème ...
__________________
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
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h07.


 
 
 
 
Partenaires

Hébergement Web