2012-02-08 39 views
0

我從我的數據庫中返回一個int值,表示以分鐘爲單位的時間。VS2010報表設計器:在RDLC中格式化爲(x)d,(y)h,(z)m

即,如果列的值是10,則表示10分鐘。 如果是199,則意味着3小時19分鐘。

然後我分組我的結果,並計算SUM(Fields!TotalTime.Value)。

如何可以格式化這個INT以下列格式:使用內置函數(X)d,(Y)H,(Z)m,其中

d = days 
h = hours 
m = minutes 

?或者,我可以以某種方式寫我自己的功能,如WPF轉換器?因爲我在報告中進行了分組,所以我無法從數據庫中返回已格式化的值。

回答

0

它實際上可以做一個自定義轉換器。

在報表設計器中,右鍵單擊報表,然後單擊報表屬性。在「代碼」選項卡下,您可以指定特別在報告中使用的代碼。在那裏創建你的轉換功能。在我的情況:

=Code.GenerateTimeString(Sum(Fields!TotalTime.Value)) 

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 

然後,把它在列

相關問題