2016-04-01 5 views
0

私はクリスタルに新しいので、これは愚かな質問である場合は私にごめんなさい。私はSage ERPにデータベースフィールドを持っています。それはGMT時間として保存された時間です。フィールドタイプは数字です。したがって、たとえば、提出されたデータは8461110(08:46)または13021054(13:02)になります。今ではクリスタルで私は2回の間にデータを選択する必要があるので、このフィールドを時間に変換する必要があります。私はこの昨日、ずっとずっと苦労しましたが、運がありません。クリスタルで時間を数える10

私は次のコードで式フィールドを作成しましたが、私が得る結果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

問題がありますか?:です。文法レポートでは、可変構文に値を割り当てるときはいつでも:=になります。だからあなたの公式は

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

ありがとう! – Wilest

関連する問題