1

TIMEを加算/合計して、フッターにTIME形式のHH:MMを設定しようとしています。フィールドは分単位でのみ表示される数値フィールドであり(例:60.00)、HHMMに変換する数式を作成しました(01:00 ) に:

whileprintingrecords;
numberVar hrs;
numberVar min;
stringVar hhmm;
hrs := Remainder(Truncate({field.duration}/60),60);
min := Remainder({field.duration},60);
hhmm := totext(hrs,"00") + ":" + totext(min,"00"); 
hhmm

フッターに追加する必要がありますが、HH:MM形式でご協力いただければ幸いです。

4

3 に答える 3

2

自分の質問に答えてくれたと思います。各レコードの期間に対してその式を実行する代わりに、期間の合計に対して実行します。

local numbervar sum_mins := sum([field.duration}); //sum up each record's duration in mins
local numbervar hrs;
local numbervar mins;
hrs := truncate(sum_mins/60); //get whole hours
mins := remainder(sum_mins,60); //get remaining minutes
totext(hrs,'00') + ':' + totext(mins,'00')

次に、この数式をレポートのフッターに配置します。

于 2012-12-10T17:20:10.530 に答える
0

「FieldToInt」の詳細と呼ばれる数式を作成します

int(fieldname);

次に、分「FieldToDec」の残りの小数の別の数式を作成します

({fieldname} - {fieldtoint}) * 100

最後にグループフッターにこの式を追加します

numbervar hh;
numbervar mm;
numbervar a;
numbervar b;
numbervar c;

hh := sum({FieldToInt},{group}); // sum of hh (in hh.mm)
mm := sum({FieldTodec},{group}); // sum of mm (in hh.mm)

//formula to convert total mm to hh.mm
 a := truncate(mm / 60);
 b := a * 60;
 c := (mm - b) / 100;

//This will be the final total hrs output
hh + (a + c); 
于 2015-03-19T02:24:04.057 に答える
0

2つの式を作る

  1. 次の数式(@time)を作成して、すべての文字列フィールドを時間に変換してから秒に変換します。

    timevar t:= time({time_field});
    (hour(t)*3600) + (minute(t)*60) + second(t);
    
  2. この式を作成してすべての秒を追加し、それらをhh:mm:ss:に変換し直します。

    numbervar fin_t := sum({@time},{groupName}); //@time is the formula you create in the 1st step
    NumberVar Hours   := Truncate (fin_t/3600);
    NumberVar Minutes := Truncate (Remainder (fin_t,3600)/60);
    NumberVar Seconds := Remainder (fin_t,60) ;
    

    レポートフッターに配置します。

    Totext (Hours, "00") + ':'+ Totext (Minutes, "00") + ':' + Totext(Seconds, "00");
    
于 2016-05-07T09:21:20.090 に答える