Crystal Reports dateadd函数错误的间隔

时间:2016-08-18 11:14:12

标签: crystal-reports dateadd

我有一个日期字段,我的库存商品已在该字段上购买。然后我有几个月的寿命字段,例如240.现在我想计算项目的生命日期结束,但我收到错误:

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

我收到以下错误:"日期必须介于第1年和第9999年之间"

我将变量更改为:numbervar myVariable := {TABLE.LIFESPAN}; 它没有任何错误。此外,如果我将dateadd公式更改为dateadd("d", 7200,{@date}),则可以正常工作。

TABLE.LIFESPAN字段的格式为十进制(9,2)但没有值具有小数,例如它将为240.00

我也试过

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

我怀疑它与小数有关。

非常感谢帮助。

1 个答案:

答案 0 :(得分:1)

一旦你的({TABLE.LIFESPAN} * 40)导致年份大于9999,你就会收到这个值。所以,如果{@date}是今天的日期,那么{TABLE.LIFESPAN}不能高于73955或所以。我会为({TABLE.LIFESPAN} * 40)创建一个公式并将其放在画布上,看看所有记录上的值是什么,看看你的某个地方是否有异常高的数字。