Просто преобразуйте поле в числовое значение, используя
VAL(Fields!RSP.Value)
Кроме того, вы можете рассмотреть возможность использования SWITCH вместо IIF. SWITCH останавливается на первом выражении, которое оценивается как True, тогда как IIF будет оценивать все выражения независимо от того, будут они использоваться или нет.
В вашем случае, с одним IIF, SWITCH не имеет значения, но в тех случаях, когда используются вложенные IIF, или в ситуациях, когда вы можете получить ошибку деления на ноль, SWITCH часто легче читать / отлаживать. Так что-то вроде этого, где у нас есть гипотетическая ситуация, которую мы хотим проверить на деление на ноль и возврат на ноль, или если вещь, на которую мы делим, отрицательна, мы хотим вернуть -1, в противном случае выполните вычисление ...
=IIF(Fields!MyDivisor.Value = 0, 0, IIF(Fields!MyDivisor.Value <0, -1, Fields!MyNumber.Value/ Fields!MyDivisor.Value))
станет
=SWITCH (
Fields!MyDivisor.Value =0, 0,
Fields!MyDivisor.Value <0, -1,
True, Fields!MyNumber.Value/ Fields!MyDivisor.Value
)
каждая пара выражение / результат оценивается по порядку, пока не достигнет первого выражения True, поэтому, если MyDivisor был равен нулю, он вернул бы 0 и остановился, если он был отрицательным, он вернул бы -1 и остановился. Последний True
действует как else (так как True всегда возвращает True!), Поэтому он будет выполнять вычисления только в том случае, если все другие выражения вернут false.