簡體   English   中英

c#RDCL報告總和時間跨度格式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM