2016-08-18 19 views
0

私の在庫項目を購入した日付フィールドがあります。Crystal Reportsのdateadd関数でエラーが発生しました。

numbervar myVariable := ({TABLE.LIFESPAN} * 30); 
dateadd("d", myVariable,{@date}) 

私は次のエラーを取得する:「日付は、年間でなければなりません。そして、私は、例えば240は、今私は、アイテムの寿命日の終わりを計算しようとしていますが、私はエラーを取得ヶ月で寿命フィールドを持っています1と9999 "

変数をnumbervar myVariable := {TABLE.LIFESPAN}; に変更するとエラーなしで動作します。また、dateaddの式をdateadd("d", 7200,{@date})に変更しても動作します。

それは私も、私はそれを疑う

numbervar myVariable := Round({TABLE.LIFESPAN} * 30); 

を試してみました240.00

になります例えば、フィールドTABLE.LIFESPANは、小数点(9,2)であるが、値のどれもが、小数を持っていないのフォーマット小数点と何か関係があります。

大歓迎です。

+0

私は間違いなく同じ原理で40を使用 '{TABLE.LIFESPAN} * 30' – Siva

答えて

1

({TABLE.LIFESPAN} * 40)は、年が9999より大きくなるとこの値を受け取ります。したがって、{@date}が今日の日付であった場合、{TABLE.LIFESPAN}は73955とか、ぐらい。私は({TABLE.LIFESPAN} * 40)の式を作成し、それをキャンバスにドロップして、その値がすべてのレコードにあるかどうかを確認し、どこかに異常に高い数値があるかどうかを確認します。

+0

の値ものです。あなたの上限は73955より高くなります – CoSpringsGuy

関連する問題