在我的RDLC报告中,我显示了员工的工作时间。
我想总算一下每个员工的时间。我使用可空的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)
这个给了我几天,几小时,一分钟......所以很接近,但我只需要总数......:mm:
=TimeSpan.FromTicks(Sum(Fields!Hours.Value))
这可能吗?
答案 0 :(得分:8)
我会试试这些部分,因为你可以得到它们。
=(TimeSpan.FromTicks(Sum(Fields!Hours.Value))。Days * 24 + TimeSpan.FromTicks(Sum(Fields!Hours.Value))。Hours).ToString +“:”+ TimeSpan.FromTicks(萨姆(字段!Hours.Value))。Minutes.ToString( “D2”)
在这种情况下,分钟数将为:45,但字符串格式化必须允许以小时为单位显示2位数的单位数,因此如果小于10分钟,则可能是前导零。
答案 1 :(得分:0)
试试这个.. 对我有用。
=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)))\60)\60 ) < 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)))\60)\60 ).ToString +IIf(((SUM(Cint(Split(Fields!Call_Duration.Value,":").GetValue(1))) + Sum(Cint(split(Fields!Call_Duration.Value,":").GetValue(2)))\60) Mod 60) < 10,":0",":" ) + ((SUM(Cint(Split(Fields!Call_Duration.Value,":").GetValue(1))) + Sum(Cint(split(Fields!Call_Duration.Value,":").GetValue(2)))\60) 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