0

我有两个可编辑的时间/日期字段,TimeInTimeOut,和一个计算显示字段hoursWorked,它的作用是获取和之间的差异,TimeInTimeOut以小时:分钟显示,例如(02:30 小时)。我决定有另一个可编辑的时间/日期字段TimeIn_1TimeOut_1字段并为显示字段hoursWorked计算,另一个为显示字段计算,它显示和的总小时数/totalHours总和 。我试过这段代码:hoursWorkedhoursWorked_1

thours:=@If(hoursWorked=null | hoursWorked_1=null; @Return(""); "" );
seconds := hoursWorked+hoursWorked_1;
hours := @Integer(seconds/3600);
minutes := @Integer(@Modulo(seconds;3600)/60);
output := @Right("00" + @Text(hours); 2) + ":" + @Right("00" + @Text(minutes); 2);
@TextToTime(output)

但什么也没发生。你能帮助我吗?

4

2 回答 2

1

我假设您计算了您的字段hoursWorked,并且hoursWorked_1与显示的此公式中的方式相同。如果是这种情况,无论您如何在表单中定义字段,这些字段都来自文档中的“日期/时间”类型hoursWorkedhoursWorked_1

这就是为什么你的公式应该是这样的:

thours:=@If(@IsNull(hoursWorked) | @IsNull(hoursWorked_1); @Return(""); "" );
nullTime := @ToTime("00:00");
seconds := (@ToTime(hoursWorked) - nullTime)+ (@ToTime(hoursWorked_1) - nullTime);
hours := @Integer(seconds/3600);
minutes := @Integer(@Modulo(seconds;3600)/60);
output := @Right("00" + @Text(hours); 2) + ":" + @Right("00" + @Text(minutes); 2);
@TextToTime(output)

只有前三行与您的公式不同。

于 2013-06-23T15:31:18.747 回答
1

我不相信 hoursWorked=null 的第一次测试是正确的。我认为你需要@IsNull(hoursWorked)。也就是说,我认为结果仍然是错误的,公式将继续下去。

看看没有@TextToTime 会产生什么输出可能是值得的。

于 2013-06-23T14:52:55.310 回答