RDLC 报告中的求和时间

Summing time in RDLC report

在我的 RDLC 报告中,我显示了员工的工作时间。

我想总结每个员工的时间。我正在使用可为 null 的 timeSpan 类型返回记录集中的工作时间,并在报告中将它们格式化为 hh:mm,如下所示:

7:30   
4:45  
5:30  
7:30  
7:30

围绕同一问题提出了许多其他问题 such as this , and this,但似乎没有一个可以接受的答案。

question几乎就是我想要的。除了显示日、时、分、秒。
但是我的用户只想要总小时数和分钟数,没有天数,即在这种情况下我想看到 32 小时 45 分钟。

7:30   
4:45  
5:30  
7:30  
7:30

---------
Total:    32:45

我尝试了以下公式,但出现#error:

=TimeSpan.FromMinutes(Sum(Fields!Hours.Value))

并且:

=Sum(Fields!Hours.Value)

这个给了我天数、小时数、分钟数...所以很接近,但我只需要总计 hh:mm:

=TimeSpan.FromTicks(Sum(Fields!Hours.Value))

这可能吗?

我会尝试你能拿到的零件。

=(TimeSpan.FromTicks(总和(字段!Hours.Value)).天 * 24 + TimeSpan.FromTicks(总和(字段!Hours.Value)).小时)。到字符串 +":" + TimeSpan.FromTicks(求和(字段!Hours.Value)).Minutes.ToString("d2")

在这种情况下,分钟将是您的 :45,但字符串格式必须允许以小时为单位的单个数字显示 2 位数字,因此如果少于 10 分钟则可能有前导零。

试试这个..对我有用。

=IIf((SUM(Cint(Split(Fields!Call_Duration.value,":").GetValue(0))) + (SUM(Cint(Split(Fields!Call_Duration.Value,":").GetValue(1)))+ Sum(Cint(split(Fields!Call_Duration.Value,":").GetValue(2)))) ) < 10,"0","" ) +(SUM(Cint(Split(Fields!Call_Duration.value,":").GetValue(0))) + (SUM(Cint(Split(Fields!Call_Duration.Value,":").GetValue(1)))+ Sum(Cint(split(Fields!Call_Duration.Value,":").GetValue(2)))) ).ToString +IIf(((SUM(Cint(Split(Fields!Call_Duration.Value,":").GetValue(1))) + Sum(Cint(split(Fields!Call_Duration.Value,":").GetValue(2)))) Mod 60) < 10,":0",":" ) + ((SUM(Cint(Split(Fields!Call_Duration.Value,":").GetValue(1))) + Sum(Cint(split(Fields!Call_Duration.Value,":").GetValue(2)))) Mod 60).ToString +IIf((Sum(Cint(split(Fields!Call_Duration.Value,":").GetValue(2))) Mod 60) < 10,":0",":" ) + (Sum(Cint(split(Fields!Call_Duration.Value,":").GetValue(2))) Mod 60).ToString