CodeEager Ответов: 2

Как преобразовать количество дней в часы из timespan в отчете ssrs?


У меня есть один полевой час

значение часов будет timespan, что означает День.Час:Минута:Секунда

Я хочу только часы из поля "часы", но также и день.

Например.
если значение часов равно 1.12:10:00
выход должен быть 24+12=36 часы

Что я уже пробовал:

Я уже пробовал
=(Day(Fields!hours.value)*24)+(Fields!hours.Value)


но это не работает
Есть ли какое-то решение?

BillWoodruff

Как это не работает ? Ошибка ? Результат, который не имеет "никакого смысла" ?

Мне кажется, что ваш код умножает часы на #24

2 Ответов

Рейтинг:
17

Dr.Walt Fair, PE

Как заметил Билл Вудрафф, вы умножаете часы на 24, а затем добавляете к ним часы, фактически получая час, умноженный на 25. Вам нужно извлечь дни, умноженные на 24, а затем добавить к ним часы.


Рейтинг:
11

Maciej Los

Если hours поле содержит значение TimeSpan, после чего вы можете использовать промежуток.TotalHours Property (System) | Microsoft Docs[^]

Как использовать TimeSpan в SSRS. Вы должны добавить ниже функцию:

Public Function GetTotalHours(ts As TimeSpan) As Integer
	Return ts.TotalHours
End Function


Как же так?
Добавление кода в отчет (SSRS) - службы SQL Server Reporting Services (SSRS) | Microsoft Docs[^]

Затем добавьте такую формулу:
=IIF(IsNothing(Fields!hours.Value), Nothing, Code.GetTotalHours(Fields!hours.Value))