我有两个可编辑的时间/日期字段TimeIn
和TimeOut
,还有一个针对显示字段hoursWorked
进行了计算,它的作用是获得TimeIn
和TimeOut
并以小时:分钟显示,例如(02:30)。我决定为显示字段TimeIn_1
设置另一个可编辑的时间/日期字段TimeOut_1
和hoursWorked
字段,并为显示字段totalHours
计算另一个字段,显示总数/总和小时hoursWorked
和hoursWorked_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)
但没有任何反应。你能救我吗?
答案 0 :(得分:1)
我不相信hoursWorked = null的第一次测试是正确的。我想你需要@IsNull(hoursWorked)。那说我认为结果仍然是假的,公式会继续。
在没有@TextToTime的情况下看看输出产生的结果可能是值得的。
答案 1 :(得分:1)
我假设您使用与此公式相同的方式计算了字段hoursWorked
和hoursWorked_1
。如果是这种情况,则无论您如何在表单中定义字段,字段hoursWorked
和hoursWorked_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)
只有前三行与您的公式不同。