2016-09-12 3 views
0

Следующий код показывает результат, как Нан%, если значения равны нулю:Handle деление на ноль исключением в этом SSRS RDLC выражение:

=FORMAT(((Sum(IIF(Fields!flag.Value=1,CINT(Fields!area1.Value),0))) 
/(Sum(IIF(Fields!flag.Value=1,CINT(Fields!UnitArea.Value),0))) *100),"N") + "%" 
+0

Попробуйте использовать пользовательский код, размещенный [здесь] (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") ' –

ответ

0

Самый простой способ избежать деления на ноль ошибки здесь не создать его в первую очередь! Если вы замените 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 в дизайнере).

Вам не нужно размещать выражение с отступом, как я есть, но построитель выражений игнорирует пробелы, и это облегчает чтение более крупными выражениями, поэтому я считаю, что это хорошая привычка.

Смежные вопросы