2014-11-03 87 views
0

我有一個整數列:TotalSec有秒。它可以是0,負值或正值。我不得不在報告中格式化這些秒鐘。但不能得到一些工作負面秒。SSRS格式秒作爲時間(負秒)

我的邏輯: 爲0 =無, 正格式HH:mm:ss的 負 - ABS的值,那麼格式-HH:mm:ss的

=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和 - ? – 2014-11-03 13:25:31

+0

對於負秒?我不能。當我嘗試將= Format(DateAdd(「s」,SUM(Fields!Sec_Diff.Value),「00:00:00」),「HH:mm:ss」)應用於負數時,我得到相同的#Error 。如果我爲什麼想要使它成爲ABS,然後在前面添加一個( - ) – user2260630 2014-11-03 13:50:37

回答

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 
) 

"+"是保持一字排開的結果,可如果需要,用""代替。