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

Formules Discussion :

[CR8.5] Problème de division par zéro sur formule


Sujet :

Formules

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2003
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 17
    Points : 23
    Points
    23
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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]

  2. #2
    Membre émérite
    Avatar de L.nico
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2003
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 143
    Points : 2 679
    Points
    2 679
    Par défaut
    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 ...
    A lire avant de poster
    Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2003
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 17
    Points : 23
    Points
    23
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  4. #4
    Membre émérite
    Avatar de L.nico
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2003
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 143
    Points : 2 679
    Points
    2 679
    Par défaut
    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 ...
    A lire avant de poster
    Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton

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

Discussions similaires

  1. Problème division par zéro
    Par omaes dans le forum VB.NET
    Réponses: 2
    Dernier message: 29/10/2014, 17h52
  2. [Tableaux] Pb de division par zéro...
    Par blueice dans le forum Langage
    Réponses: 8
    Dernier message: 16/12/2005, 15h52
  3. problème de division par 100
    Par trent94 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/11/2005, 22h08
  4. [CR][VS.NET]Division par zéro
    Par San Soussy dans le forum SDK
    Réponses: 2
    Dernier message: 31/08/2005, 14h40
  5. probleme avec une division par zéro
    Par jcharleszoxi dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/03/2003, 18h14

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