如何显示总时间值?

时间:2009-10-20 05:56:39

标签: crystal-reports

使用Crystal Report 8.5

在Crystal报表时间列中,值为String。我按人名显示记录顺序。

喜欢这个。

Personid Intime Outtime

001 08:00:00 17:00:00
001 14:00:00 22:00:00
002 07:00:00 10:00:00
002 04:00:00 21:00:00

...

从上面的报告中,我需要总共有一个银泰,总共有人员的外出时间

预期输出

Personid Intime Outtime

001   08:00:00 17:00:00
001   14:00:00 22:00:00
Total 22:00:00 39:00:00

002   07:00:00 10:00:30
002   04:00:00 21:00:30
Total 11:00:00 31:01:00

...

我将以明智的方式显示所有价值以及总数。

需要Crystal Report公式帮助。

2 个答案:

答案 0 :(得分:2)

将您的时间转换为秒,然后获得总数。在您的显示格式中,秒数为小时,分钟秒 对于Intime字段,在Crystal Report中,在详细信息部分中创建公式:

@IntimeSeconds  
ToNumber(Left({table.Intime}, 2) * 3600) + ToNumber(Mid({table.Intime}, 4, 2) * 60) + ToNumber(Mid({table.Intime}, 7, 2))  

您现在可以在组页脚中放置一个公式,以将总的Intime秒显示为hh:mm:ss

@ShowTotalIntime  
Numbervar TotalTime := Count({table.Intime}, {table.Group});
Numbervar IntimeHours := TotalTime\3600;  
NumberVar IntimeMinutes := (TotalTime%3600)\60;  
Numbervar IntimeSeconds := (TotalTime%60);  
ToText(IntimeHours, "00") + ":" + ToText(IntimeMinutes, "00") + ":" ToText(IntimeSeconds, "00");  

为Outtime做类似的事情。

答案 1 :(得分:0)

看看我的ElapsedTime()函数。 http://www.cogniza.com/blog/?p=31