从Crystal Report 8.5 升级到11.5时很多报表出现错误信息: 此处需要有一个数字(A number is required here) , 出错是由公式编辑器发出,公式如下:
{Report1.Qty} * {Report1.Amount}
以上公式在8.5时没有出现错误信息,但在11.5时就会出现,错误原因是字段不是数字字段,但查看字段后肯定是数字字段,但错误还在,然后用以下公式,但错误信息照样出现,就算报表没有数据照样会报错,所以就算是公式不合法,写法不是这样。
if isnull({TimeWorkedReportView.BillingRate}) or isnull({TimeWorkedReportView.BillableHours}) then $0
else {TimeWorkedReportView.BillingRate}) * ({TimeWorkedReportView.BillableHours})
经过多次试验和网络上找寻原来就加个转换函数cdbl就行了, 公式如下:
cbdl({Report1.Qty}) * cbdl({Report1.Amount})
但以下的公式是更好的解决方法:
cbdl(iif(isnull({Report1.Qty}),0,{Report1.Qty})) * cbdl(iif(isnull({Report1.Amount}),0,{Report1.Amount}))