c#RDCL报告Sum TimeSpan格式

时间:2017-05-15 10:40:43

标签: c# winforms report reportviewer timespan

我在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

我怎样才能从表达中做到这一点?

2 个答案:

答案 0 :(得分:0)

使用总秒数,您可以在行详细信息中使用此表达式:

=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

答案 1 :(得分:0)

我找到了解决方案

<link href="styles.876a543b210c.bundle.css" rel="stylesheet"/>