diviser par zero / null solution de contournement dans le rapport SSRS 2008
J'ai un rapport avec un champ dont la valeur est l'expression:
Fields!TotalPrice.Value/Fields!TotalSlots.Value
Bien que parfois TotalSlots était vide et donc j'ai été faire une division par zéro erreur d'exécution. J'ai donc modifié l'expression:
=IIF(Fields!TotalSlots.Value > 0, Fields!TotalPrice.Value/Fields!TotalSlots.Value,"unknown")
mais je vois encore une erreur de division par zéro. Comment puis-je contourner ce diviseur de zéro problème.
source d'informationauteur jsmith | 2012-05-03
Vous devez vous connecter pour publier un commentaire.
Le VB IIF évalue tous les argumentsil provoquera une erreur si aucun argument renvoie une erreur:
Votre formule peut être écrite comme suit:
Puis même quand TotalSlots est nulle, la formule ne rencontre pas de problème de division.
Jamie F réponse est bonne. Comme une astuce, vous pouvez ajouter une fonction à votre code de rapport à faire de la division un peu plus facile à mettre en œuvre dans plusieurs cellules, par exemple
Vous pouvez ensuite appeler ce dans une cellule de la sorte:
Je ne pense pas que votre erreur de calcul. Tout d'abord, SSRS traite automatiquement à cette situation. Voir mon troisième colonne. Et la suite montre votre expression:
Votre problème est probablement d'ailleurs
Cela ne semble se produit lorsque la division est l'un des résultats de l'IIF, pas si vous venez d'écrire une formule pour diviser l'un par l'autre, par exemple
Avant il a évalué chose, il a déjà essayé de calculer à la fois les résultats, ce qui provoque une erreur. Vous ne pouvez pas utiliser IIF de cette façon à protéger à partir de zéro, vous devez mettre de l'IIF sur la ligne inférieure de la division, par exemple
Ce n'est pas satisfaisante, puisque nous avons introcudes un étrange petit nombre différent de zéro comme résultat, mais il peut être ok, si vous voulez un sans erreur.
Techniquement, le n ° d'erreur est la réponse correcte.