Microsoft SSRS : Erreur division par zéro

Microsoft SSRS rencontre des difficultés  devant une expression pouvant entraîner une erreur de division par zéro.

Si vous avez déjà essayé d’utiliser une expression d’instruction IIF pour corriger une erreur reçue en divisant par zéro, vous avez probablement reçu le message d’erreur de division par zéro.

 

Une expression comme celle-ci : sum(Fields!Champ1.Value) / sum(Fields!Champ2.Value)   renvoie une erreur lorsque sum(Fields!Champ2.Value)=0

 

Pour résoudre cette erreur, vous essayez d’ajouter une condition sur sum(Fields!Champ2.Value) en utilisant cette expression:

= iif (sum(Fields!Champ2.Value)) = 0, 0, sum(Fields!Champ1.Value)/sum(Fields!Champ2.Value))

 

Hélas, cela ne fonctionnera pas. Vous avez toujours une erreur, comme le montre l’image ci-dessous :

blog ai3 erreur_division_par_0-300x136 Microsoft SSRS : Erreur division par zéro

 

Même si Microsoft SSRS peut évaluer votre expression comme étant vraie, il tentera toujours de résoudre la partie fausse de votre expression, ce qui vous donne l’erreur de division par zéro.

 

Pour contourner ce problème de Microsoft SSRS, essayez ceci :

 

1ère solution :

= iif (sum(Fields!Champ2.Value) = 0,0, (sum(Fields!Champ1.Value)) / iif (sum(Fields!Champ2.Value) = 0,1, sum(Fields!Champ2.Value))

 

Cette solution devrait résoudre les problèmes de division par zéro.

 

Si vous rencontrer toujours des problèmes, utiliser cette

 

2e solution :

  • Ajouter une fonction de code personnalisé pour la division dans le rapport SSRS :

Ouvrez votre rapport SSRS, faites un clic droit dans la zone en dehors du rapport.

 

blog ai3 SSRS_insertion_code_perso-300x190 Microsoft SSRS : Erreur division par zéro

(Vous devez avoir ceci)

blog ai3 SSRS_insertion_code_perso2 Microsoft SSRS : Erreur division par zéro

Cliquer sur Propriétés du rapport,

blog ai3 SSRS_insertion_code_perso3 Microsoft SSRS : Erreur division par zéro

Cliquer sur l’onglet « Code » :

blog ai3 SSRS_insertion_code_perso4 Microsoft SSRS : Erreur division par zéro

Dans la zone de texte « Code personnalisé », tapez ceci :

 

Public Function Divide(ByVal first As Double, ByVal second As Double) As Double

If second=0 Then

Return 0

Else

Return first/second

End If

End Function

 

Cliquer sur le bouton « OK »

Ensuite, allez sur votre rapport.

Dans votre expression de division, tapez :

=iif (IsNothing (sum (Fields! Champ2.Value)), 0, Code.Divide(sum (Fields! Champ1.Value), sum (Fields! Champ2.Value)))

blog ai3 SSRS_insertion_code_perso5-300x141 Microsoft SSRS : Erreur division par zéro

Et, cliquer sur OK. 

? Plus de souci avec les problèmes de

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.