c# RDLC Report Sum TimeSpan 格式
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()
我在 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()