Похоже, что это не проблема с IIF, но типы данных не соответствуют друг другу. У меня есть несколько предложений, чтобы попробовать. Во-первых, вы можете попытаться умножить истинное значение на 1,0, так как я предполагаю, что типы данных являются десятичными или двойными. Другой вариант - использовать что-то вроде CInt
, чтобы преобразовать значение в правильный тип данных. CInt
, скорее всего, не подходит для десятичных чисел, поскольку округляет любые десятичные значения, но идея та же. Поскольку ваше выражение не использует никаких агрегатов и использует только обычные операторы, оно должно относиться к чему-то другому, чем IIF
.
Вот полезная ссылка , чтобы разбить типы данных и методы преобразования. Выберите наиболее подходящее преобразование и примените его к 1
.
РЕДАКТИРОВАТЬ: Выражение должно быть следующим.
=iif(Fields!Factor.Value = 0.00,
(Fields!SalesAmount.Value+Fields!TaxAmt.Value)*CDbl(1),
(Fields!SalesAmount.Value+Fields!TaxAmt.Value)*Fields!Factor.Value)