2012-12-10 44 views
1

我想添加/總和時間和有它在時間格式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 任何幫助是極大的讚賞。

回答

1

我覺得你有種回答了自己的問題。而不是每個記錄的持續時間做這個公式只是爲了持續時間的總和。

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') 

然後將此公式放在報告的頁腳中。

+0

感謝瑞安,我曾嘗試你的公式,但得到一個錯誤的分鐘:=餘(Sum_mins/60);錯誤是「沒有足夠的參數給這個函數」 – Dagz200

+0

想通了瑞安。 local numbervar sum_mins:= sum([field.duration}); //總結每一個記錄在分鐘 當地numbervar小時的持續時間; local numbervar mins; hrs:= truncate(sum_mins/60); //取得整個小時 分鐘:=餘數(sum_mins,60); //獲取剩餘分鐘 totext(小時,'00 ')+ ':' + totext(分鐘,'00') – Dagz200

+0

@ Dagz200正確的語法是'餘(sum_mins,60)'。斜線應該是逗號。有關餘項()函數,請參閱CR的參考資料。 – Ryan

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); 
0

做兩個公式

  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) ; 
    

    將它放在Report Footer上。

    Totext (Hours, "00") + ':'+ Totext (Minutes, "00") + ':' + Totext(Seconds, "00");