2017-08-11 66 views
-2

我想提取Utime 2类型。一个用于输出PM的第二个输出。我学会了如何创建自己的对象,但我无法从[Utime]对象中提取。我可以在这里使用FRAC()吗?获取AM部分。快速报告提取Utime 2.5

这是我目前的输出。

enter image description here

我当前的快速报告的代码。

enter image description here

我怎么会从这个对象中提取?

+1

_“我想提取UTIME 2类,一类为AM输出中第二对PM输出。” _什么是UTIME什么什么样的2种类型? _“我学会了如何创建自己的对象,但是我无法从[Utime]对象中提取。我可以在这里使用FRAC()吗?获取AM部分。”很好,但我们不知道这个对象,如果你提到'FRAC()',它几乎听起来像一个对象,但一些数值(可能是日期时间类型)。无论如何您都无法将持有PM时间的值转换为AM。 – Victoria

+0

我只是猜测[Utime]是一个数组,因为它存储所有日志进出用户。是否有一种方法来确定它的数组? –

+0

我想是这样的:'AmTime:= Utime [0];',但是假设'Utime'是一个与AmTime'相同的数据类型元素数组。 – Victoria

回答

0

是的,你可以使用压裂功能。德尔福的TDateTime类型类型是双,所以压裂功能将作为双重价值回归TDateTime类型的时间部分

begin 
    if frac([Utime]) < 0.5 then AmTime := [Utime] else PmTime := [Utime]; 
end 
+0

我试过这个,并给了我'变种不能转换类型字符串的变体类型双' –

+0

看来Utime是字符串,所以,你应该使用StrToTime函数将字符串转换为时间或分析Utime字符串的前两个字符串(使用复制函数) – gpi

+0

'begin AmTime:= 0; PmTime:= 0; (StrToTime([Utime]))<0.5,则 开始 AmTime:= [time]; PmTime:= 0; 结束; 结束'这样的事情? –