2012-02-08 2 views
0

Я возвращаю int из своей базы данных, которая обозначает время в минутах.VS2010 Дизайнер отчетов: форматирование int as (x) d, (y) h, (z) m в RDLC

т. Е. Если значение столбца равно 10, это означает 10 минут. Если это 199, значит, 3 часа и 19 минут.

Затем я группирую свои результаты и вычисляю SUM (Fields! TotalTime.Value).

Как форматировать этот Int в следующем формате: (х) д, (у) ч, (г) м, где

d = days 
h = hours 
m = minutes 

, используя встроенные функции? Или я могу как-то написать свою собственную функцию, например, WPF Converter? Поскольку я группирую отчет, я не могу вернуть уже отформатированное значение из базы данных.

ответ

0

Фактически можно сделать собственный конвертер.

Когда в конструкторе отчетов щелкните правой кнопкой мыши отчет и щелкните свойства отчета. На вкладке «Код» вы можете указать код, который конкретно используется в отчете. Создайте свою функцию конвертера. В моем случае:

Public Function GenerateTimeString(ByVal minutes As Integer) As String 

    Dim returnString As String = "" 

    If minutes = 0 Then 
     returnString = "0m" 
    Else 
     Dim ts As TimeSpan = TimeSpan.FromMinutes(minutes) 

     If ts.Days <> 0 Then 
      returnString = returnString & ts.Days & "d," 
     End If 

     returnString = returnString & ts.Hours & "d," & ts.Minutes & "m" 
    End If 

    Return returnString 

End Function 

Затем вызовите его в столбцах с:

=Code.GenerateTimeString(Sum(Fields!TotalTime.Value)) 
Смежные вопросы