[英]c# RDCL Report Sum TimeSpan Format
我正在Windows窗體上使用ReportViewer和RDCL報告。 我有一個來自sql的字段
select xxx, CONVERT(VARCHAR(5),MAX(e.EventTime) - MIN(e.EventTime),108) as total from xxx
並在RDCL報告中按一個字段分組。
我在組頁腳上有一個字段,用於組總字段表達:
=TimeSpan.FromTicks(Sum(TimeSpan.Parse(Fields!total.Value)))
如果小時數超過24,則顯示為4.10:30:00(d.hh:mm:ss)。我想將其顯示為106:30(hhh:mm)或106.30
我如何通過表達來做到這一點?
總秒數中,您可以在行詳細信息中使用此表達式:
=IIf(Fields!TotalSeconds.Value < 86400,
Format(DateAdd("s", Fields!TotalSeconds.Value, "00:00:00"), "HH:mm:ss"),
Floor(Fields!TotalSeconds.Value / 86400) * 24 + (DateAdd("s", Fields!TotalSeconds.Value, "00:00:00")).Hour & ":" & Format(DateAdd("s", Fields!TotalSeconds.Value, "00:00:00"), "mm:ss")
)
對於組總數:
=IIf(Sum(Fields!TotalSeconds.Value) < 86400,
Format(DateAdd("s", Sum(Fields!TotalSeconds.Value), "00:00:00"), "HH:mm:ss"),
Floor(Sum(Fields!TotalSeconds.Value) / 86400) * 24 + (DateAdd("s", Sum(Fields!TotalSeconds.Value), "00:00:00")).Hour & ":" & Format(DateAdd("s", Sum(Fields!TotalSeconds.Value), "00:00:00"), "mm:ss")
)
如果要將總組的格式設置為HH:mm
只需將格式樣式修改為mm
而不是mm:ss
。
我找到了解決方案
=Math.Floor(Sum(TimeSpan.Parse(Fields!total.Value))/(36000000000)).ToString() + ":"+ Math.Round((Sum(TimeSpan.Parse(Fields!total.Value))/(600000000)) mod 60).ToString()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.