Если вам нужно работать дольше, чем 24 часа (решение Криса Латты в этих случаях обернется), тогда есть пара решений.
Простая формула
Если вы хотите просто использовать формулу для поля, такую как следующее из этой темы (которая также ссылается на этот вопрос)!
=int(sum(Fields!Sec_Online.Value)/3600) & ":" & int((sum(Fields!Sec_Online.Value) Mod 3600)/60) & ":" & (sum(Fields!Sec_Online.Value) Mod 3600) Mod 60
Если вам нужнодобавив к своему значению 2 символа, вы можете обернуть RIGHT("0" & {X}, 2)
вокруг каждого подраздела, где {x}
обозначает одно из отдельных вычислений в приведенной выше формуле.
Код позади
Другой подход, также предложенный в этой теме, заключается в использовании TimeSpan.FromSeconds
( doc ), и есть реализация этого в этом блоге , использующем специальный код позадив отчете.
Я закончил тем, что использовал подход с пользовательским кодом (поскольку у меня было много полей, разделяющих это), и объединил его с чем-то более похожим на первый метод, так как я не хотел, чтобы дни начали появлятьсяпросто хотел часы, чтобы считать большойпосле 23.
я добавил в отчет немного пользовательского кода , который добавляет все значения по крайней мере к 2 символам и позволяет часам считать часы> 23.
Public Function ConvertSecondsToHourMinSec(ByVal intTotalSeconds) As String
Dim hours As String =INT(intTotalSeconds/3600)
If Len(hours) < 2 Then
hours = RIGHT(("0" & hours), 2)
End If
Dim mins As String = RIGHT("0" & INT((intTotalSeconds MOD 3600)/60), 2)
Dim secs AS String = RIGHT("0" & ((intTotalSeconds MOD 3600) MOD 60), 2)
ConvertSecondsToHourMinSec = hours & ":" & mins & ":" & secs
End Function
и затем вызывал это из каждой ячейки в следующих вопросах:
=code.ConvertSecondsToHourMinSec(Fields!MyField.Value)
Надеюсь, это поможет кому-то еще!