2015-03-23 3 views
0

Я боролся с проблемой формата времени в SSRS. Что я до сих пор, так это то, что секунды перечислены с 00:00:15, но минут вроде 15:25 вместо 00:15:25. Я играл с ним на некоторое время теперь, но как-то он не будет отображаться, независимо от того, где я поставил "00:" &SSRS TimeFormat до 00:00:01

Это мой код

=IIF(Sum(Fields!ActualTime.Value)/Fields!EventCount.Value < 1,"", IIF((Sum(Fields!ActualTime.Value)/Fields!EventCount.Value)/60 < 1, "00:00:" & (Sum(Fields!ActualTime.Value)/Fields!EventCount.Value), IIF((Sum(Fields!ActualTime.Value)/Fields!EventCount.Value)/3600 >= 1, ((Sum(Fields!ActualTime.Value)/Fields!EventCount.Value) - (Sum(Fields!ActualTime.Value)/Fields!EventCount.Value) mod 3600)/3600 & ":","") & IIF((Sum(Fields!ActualTime.Value)/Fields!EventCount.Value) mod 3600 >= 1, ((Sum(Fields!ActualTime.Value)/Fields!EventCount.Value) mod 3600 - (Sum(Fields!ActualTime.Value)/Fields!EventCount.Value) mod 3600 mod 60)/60 & ":","") & (Sum(Fields!ActualTime.Value)/Fields!EventCount.Value) mod 3600 mod 60))

Также 1 секунда, минута или час указан без ведущего 0. Примерно так: 01:01:01

Просьба сообщить. Заранее спасибо.

ответ

0

Я не мог заставить это работать. Поэтому после поиска в Интернете в течение нескольких дней я нашел функцию here on stackoverflow, которая преобразует секунды в hh: mm: ss. Поскольку там, где 16 полей, которые нуждались в этом расчете, мне было проще использовать эту функцию. Спасибо за ответ в любом случае.

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" & INT((intTotalSeconds Mod 3600) Mod 60), 2) 
ConvertSecondsToHourMinSec = hours & ":" & mins & ":" & secs 
End Function 

При проверке текстового поля для < 1 не показать ничего и запустить пользовательскую функцию в противном случае.

=IIF(Sum(Fields!DownTime.Value)/Fields!EventCount.Value < 1,"",Code.ConvertSecondsToHourMinSec(Sum(Fields!DownTime.Value)/Fields!EventCount.Value)) 
0

Вы можете установить формат времени через выражение для текстовых полей. Нажмите на текстовое поле и нажмите f4. Перейдите в формат и нажмите на раскрывающийся список, а затем нажмите выражение.

В выражении вы можете написать что-то вроде этого.

=switch("More than one hour","HH:mm:ss", 
 
\t \t "less than one hour and more than a minute","MM:ss", 
 
\t \t "Less than one minute","SS",)

U должны поставить ур условия в той части, где я упомянул времена («более чем один год и т.д.»). Дайте мне знать, если у вас все еще проблемы с проблемой.

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

  • Нет связанных вопросов^_^