reportviewer - sobre - porque dividir entre cero es error
ReportViewer División por cero (3)
Tiene que haber una manera más bonita que esta, pero esto debería funcionar:
=IIF(Fields!F1.Value <> 0, Fields!F2.Value /
IIF(Fields!F1.Value <> 0, Fields!F1.Value, 42), 0)
Tengo algunas fórmulas en mis informes, y para evitar la división por cero me gusta esto en el campo de expresión:
= IIF (Fields! F1.Value <> 0, Fields! F2.Value / Fields! F1.Value, 0)
Esto normalmente funciona bien, pero cuando tanto F1 como F2 son cero, obtengo "#Error" en el informe, y recibo esta advertencia: "La expresión de valor para el cuadro de texto ''textbox196'' contiene un error: Intento dividir por cero. "
¿Porqué es eso?
IIF () es solo una función, y al igual que con cualquier función, todos los argumentos se evalúan antes de llamar a la función, incluidos los Fields!F2.Value/Fields!F1.Value
. En otras palabras, intentará dividir por cero a pesar de la Fields!F1.Value <> 0
.
Sin embargo, puedes usar
if Fields!F1.Value <> 0
then
Fields!F2.Value/Fields!F1.Value
else 0
lo cual debería funcionar, ya que no evalúa la cláusula then si la sección "if" es falsa.