Самый простой способ избежать деления на ноль ошибки здесь не создать его в первую очередь! Если вы замените 0 как второе возвращаемое значение в выражении div iIV с 1, проблема исчезнет.
Это сказало, что я думаю, что все ваше выражение может сделать с упрощением. Если я прочитал это правильно, вы хотите, чтобы определить соотношение в пределах области 1 UnitArea, но только тогда, когда значение флага 1. Выражение может быть написано так:
=Format(
Iif(
Fields!flag.Value = 1,
CInt(Fields!area1.Value)/CInt(Fields!UnitArea.Value),
Nothing
),
"Percent"
)
Обратите внимание, что я упал множитель и вместо этого используется функцию Format, чтобы вернуть результат деления в процентах (вы также можете просто просто удалить функцию Format полностью и обработать formatting в дизайнере).
Вам не нужно размещать выражение с отступом, как я есть, но построитель выражений игнорирует пробелы, и это облегчает чтение более крупными выражениями, поэтому я считаю, что это хорошая привычка.
Попробуйте использовать пользовательский код, размещенный [здесь] (http://williameduardo.com/es/development/ssrs/ssrs-divide-by-zero-error/). Затем вам просто нужно вызвать функцию Quotation в вашем таблике следующим образом: '= FORMAT (Code.Quotation (Sum (IIF (Fields! Flag.Value = 1, CINT (Fields! Area1.Value), 0)), Сумма (IIF (Fields! flag.Value = 1, CINT (Fields! UnitArea.Value), 0))), "P0") ' –