reporting services - services - ¿La función iif calcula ambas rutas en SSRS o está en cortocircuito?
ssrs iif expression (3)
Tienes razón, no cortocircuito. Eso apesta.
Tendrás que hacer algo como esto:
= Iif(KgSold = 0, 0, Revenue) / Iif(KgSold = 0, 1, KgSold )
La función de cambio también debería funcionar.
Estoy tratando de evaluar un Precio por Kilo ($ / Kg) basado en las ventas de un producto. Esto funciona bien si el producto fue vendido efectivamente durante el período especificado. Sin embargo, si el producto no se vende, el Kg (el denominador) termina siendo 0 (cero) y se produce un error. - Divide por cero error.
Intenté esto
=iif(KgSold=0,0,Revenue/KgSold)
Parece que la función iif
está calculando los resultados verdadero y falso. ¿Cómo puedo evitar esto?
¿Debo usar la función de cambio en su lugar?
=switch(KgSold=0,0
KgSold<>0,Revenue/KgSold)
Esto sucede porque en VBScript todas las condiciones dentro de un IIF se evaluarán primero antes de que ocurra cualquier funcionalidad.
Agregue lo siguiente a su código:
Public Function SafeDiv(byval num as double, byval den as double) as object
If den = nothing then return nothing
If den = 0 then return nothing
return num / den
End Function
Luego llame
=Code.SafeDiv(Revenue,KgSold)
en el cuadro de texto epresión