0

編集可能な時刻/日付フィールドが 2 つTimeInありTimeOut、表示フィールド用に計算されたフィールドが 1 つありますhoursWorked。これは、 と の差を取得しTimeInTimeOut時間:分 (02:30 hrs) で表示します。別の編集可能な時刻/日付フィールドTimeIn_1TimeOut_1フィールドを作成し、表示フィールド用に計算し、表示フィールドhoursWorked用に別の計算フィールドを作成することtotalHourshoursWorkedhoursWorked_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)

数式と異なるのは最初の 3 行だけです。

于 2013-06-23T15:31:18.747 に答える
1

HoursWorked=null の最初のテストが正しいとは思えません。@IsNull(hoursWorked) が必要だと思います。そうは言っても、結果はまだ偽であり、式は続くと思います。

@TextToTime なしでどのような出力が生成されるかを確認する価値があるかもしれません。

于 2013-06-23T14:52:55.310 に答える