2012-02-08 10 views
0

時間を分単位で示すintをデータベースから返します。VS2010 Report Designer:RDLCでintを(x)d、(y)h、(z)mにフォーマットする

つまり、列の値が10の場合は10分を意味します。 199の場合は、3時間19分です。

次に、結果をグループ化し、SUM(Fields!TotalTime.Value)を計算します。 (x)D(Y)H、(Z)M、

d = days 
h = hours 
m = minutes 

組み込み関数を使用して:

どうすれば次の形式で、このINTをフォーマットすることができますか?または、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)) 
関連する問題