我是水晶新手所以请原谅我这是一个愚蠢的问题。我在Sage ERP中有一个数据库字段是时间,存储为GMT时间,字段类型是数字。因此,例如,提交的数据将是8461110(08:46)或13021054(13:02)。现在在水晶我需要将此字段转换为时间因为我需要选择2次之间的数据。我昨天一直在努力解决这个问题,但没有运气。
我使用以下代码创建了一个公式字段,但我得到的结果是00:00:00
Local NumberVar TheHour;
Local NumberVar TheMin;
If Len(ToText({ICHIST.AUDTTIME})) = 8 Then
TheHour = ToNumber(Left(ToText({ICHIST.AUDTTIME}),2))
else
TheHour = ToNumber(Left(ToText({ICHIST.AUDTTIME}),1));
If Len(ToText({ICHIST.AUDTTIME})) = 8 Then
TheMin = ToNumber(Mid(ToText({ICHIST.AUDTTIME}),3,2))
else
TheMin = ToNumber(Mid(ToText({ICHIST.AUDTTIME}),2,2));
Time(TheHour,TheMin,00);
我做错了什么,为什么结果是00:00:00?
答案 0 :(得分:0)
问题是你错过了这个:
。在crysal报告中,只要您想为变量语法赋值,就会:=
。所以你的公式将是
Local NumberVar TheHour;
Local NumberVar TheMin;
If Len(ToText({ICHIST.AUDTTIME})) = 8 Then
TheHour := ToNumber(Left(ToText({ICHIST.AUDTTIME}),2))
else
TheHour := ToNumber(Left(ToText({ICHIST.AUDTTIME}),1));
If Len(ToText({ICHIST.AUDTTIME})) = 8 Then
TheMin := ToNumber(Mid(ToText({ICHIST.AUDTTIME}),3,2))
else
TheMin := ToNumber(Mid(ToText({ICHIST.AUDTTIME}),2,2));
Time(TheHour,TheMin,00);