SSRS обрабатывает #Error, когда reportitems textbox = "N / A" - PullRequest
0 голосов
/ 26 сентября 2018

SSRS обрабатывать #Error, когда reportitems textbox = "N / A"

Когда Textbox88 = N / AI получает #Error в% ячейке / столбце.

N / A от iff (isnmeric (Выражение для поиска заканчивается на: = FALSE, "N / A"

Как изменить приведенное ниже выражение для обработки "N / A" вдругое поле?

Результатом может быть просто еще одно «N / A» в столбце процента.

Текущее выражение не обрабатывается # Ошибка ..

=(ReportItems!Textbox55.Value - ReportItems!Textbox88.Value) / ReportItems!Textbox88.Value

Переключатель? IIF?

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

закончилось использованием пользовательского кода: заменил = FALSE, "N / A" на = FALSE, 0

Открытая функция Divide (деление ByVal как двойное, делитель ByVal как двойное) как двойное, если IsNothing (делитель) Или делитель = 0 или IsNothing (делимое) Или делимое = 0, затем возвращаемое 0 Остальное Возвращаемое делимое / делитель Конец, если конечная функция

выражение:

= Code.Divide ((ReportItems! Textbox55.Значение - ReportItems! Textbox88.Value), ReportItems! Textbox88.Value)

0 голосов
/ 26 сентября 2018

#Error - это ошибка компилятора, которая обычно вызывается конфликтующими типами данных.В приведенном выше примере может показаться, что вы пытаетесь использовать строку «N / A» в математическом уравнении.

Во-первых, я рекомендую всем, что вы приведете данные к тому, что вы хотите, а не к тому, что вы ожидаете.Вы можете сделать это, используя CSTR () - string, CINT () - integer и CDEC () - decimal, functions.

Например:

=(CINT(ReportItems!Textbox55.Value) - CINT(ReportItems!Textbox88.Value)) / CINT(ReportItems!Textbox88.Value)

Это может решить вашу проблему,заставляя тип данных текстового поля быть целым числом.Однако вы все равно можете получить #Error, потому что функция вернет 0 для строки без чисел, и вы получите ошибку деления на ноль.

Поэтому мы можем проверить ошибку с помощью IIF:

=IIF(ReportItems!Textbox55.Value = "N/A" or ReportItems!Textbox88.Value = "N/A", "N/A", (CINT(ReportItems!Textbox55.Value) - CINT(ReportItems!Textbox88.Value)) / CINT(ReportItems!Textbox88.Value))
...