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

制作两个公式

  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 回答