switch ssrs services expresiones reporting-services reportingservices-2005 iif-function

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