0

Я пытаюсь отображать секунды как минуты. Иногда значение, которое я получаю, отрицательное. Это вызывает проблемы. Я хотел проверить, является ли значение отрицательным, чтобы присвоить значение по умолчанию. Но я не могу получить, если команда «И» и «Формат» работают вместе.SSRS, как использовать команды if и format для отрицательных значений

Это то, что я сделал, чтобы отобразить значения без преобразования в минутах:

=Fields!RateLossSeconds.Value 

enter image description here

Это то, что я сделал, чтобы преобразовать секунды в минуты:

=Format(DateAdd("s", Fields!RateLossSeconds.Value, "00:00"), "mm:ss") 

enter image description here

Th является кодом, который я использовал для добавления условия:

=IIF(Fields!RateLossSeconds.Value < 0, 0, Format(DateAdd("s", Fields!RateLossSeconds.Value, "00:00"), "mm:ss")) 

Как вы можете видеть, инструкция if не работает должным образом.

enter image description here

ответ

1

The #ERROR возникает из-за SSRS оценить всю IIF() выражение перед IIF логики потока, так что даже если вы регулируете отрицательные значения проверяет обе ветви на наличие ошибок.

Попробуйте использовать это выражение:

=IIF(
    Fields!RateLossSeconds.Value < 0, 0, 
    Format(
    DateAdd("s",IIF(Fields!RateLossSeconds.Value<0,0,Fields!RateLossSeconds.Value),"00:00"), 
    "mm:ss" 
) 
) 

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

Сообщите мне, если это поможет.

+0

большое спасибо. он работал отлично. – emre