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