Вы должны изменить числитель на IIf
выражение, которое будет возвращать 0, если текущее значение является отрицательным, то есть изменить
Fields!MonthlyTarget.Value-Fields!MonthToDateUnits.Value-Fields!DUSales.Value
к чему-то вроде:
IIf(Fields!MonthlyTarget.Value-Fields!MonthToDateUnits.Value-Fields!DUSales.Value > 0
, Fields!MonthlyTarget.Value-Fields!MonthToDateUnits.Value-Fields!DUSales.Value
, 0)
В зависимости от основных данных типов, вам может понадобиться бросок, чтобы предотвратить агрегацию различных типов данных в выражении и, следовательно, #Error
, отображаемых в отчете, то есть
IIf(Fields!MonthlyTarget.Value-Fields!MonthToDateUnits.Value-Fields!DUSales.Value > 0
, Fields!MonthlyTarget.Value-Fields!MonthToDateUnits.Value-Fields!DUSales.Value
, CDbl(0))
или
IIf(Fields!MonthlyTarget.Value-Fields!MonthToDateUnits.Value-Fields!DUSales.Value > 0
, Fields!MonthlyTarget.Value-Fields!MonthToDateUnits.Value-Fields!DUSales.Value
, CDec(0))
Таким образом, все выражение будет как:
SUM(((IIf(Fields!MonthlyTarget.Value-Fields!MonthToDateUnits.Value-Fields!DUSales.Value > 0
, Fields!MonthlyTarget.Value-Fields!MonthToDateUnits.Value-Fields!DUSales.Value
, 0))/(Fields!RemaningDays.Value+1)))