2014-11-03 5 views
0

У меня есть столбец с целыми числами: TotalSec с секундами. Он может быть 0, отрицательным или положительным.SSRS Формат секунд как время (отрицательные секунды)

Мне нужно отформатировать эти секунды в отчете. Но не получится что-то работать на отрицательные секунды.

Моя логика: При 0 = нет, Для формата Positive как чч: мм: сс Для Negative - ABS значение, то формат, как -hh: мм: сс

=IIF(SUM(Fields!TotalSec.Value)=0, Nothing, IiF(SUM(Fields!TotalSec.Value)>0, 
Format(DateAdd("s",SUM(Fields!TotalSec.Value), "00:00:00"), "HH:mm:ss"), "-" & Format(DateAdd("s",ABS(SUM(Fields!TotalSec.Value)), "00:00:00"), "HH:mm:ss"))) 

я получаю # Ошибка для отрицательных чисел. С предупреждением:

Warning 2 [rsRuntimeErrorInExpression] The Value expression for the textrun ‘TotalSec.Paragraphs[0].TextRuns[0]’ contains an error: The added or subtracted value results in an un-representable DateTime. Parameter name: value 
+0

Не можете ли вы заставить его работать без ABS и -? –

+0

За отрицательные секунды? Я не могу. Я получаю тот же #Error, когда я пытаюсь применить = Отформатировать (DateAdd («s», SUM (Fields! Sec_Diff.Value) »,« 00:00:00 »),« HH: mm: ss ») до отрицательных чисел , Это, если бы я хотел сделать это ABS, а затем просто добавить (-) спереди – user2260630

ответ

0

Он работал так:

=IIF(SUM(Fields!TotalSec.Value)=0,Nothing,IIF(SUM(Fields!TotalSec.Value)< 0,"-"&Format(DateAdd("s",ABS(SUM(Fields!TotalSec.Value)), "00:00:00"), "HH:mm:ss"),Format(DateAdd("s",ABS(SUM(Fields!TotalSec.Value)), "00:00:00"), "HH:mm:ss"))) 
0

я вымыл предыдущий ответ:

=IIf(Fields!elapsed.Value < 0, "-", "+") 
& 
Format(
    DateAdd(
     "s", 
     Abs(Fields!elapsed.Value), 
     "00:00:00" 
    ), 
    "HH:mm:ss" ' can be m:ss 
) 

"+" должен сохранить результаты выстроены, и может быть заменяется на "" при желании.

Смежные вопросы