【发布时间】:2012-12-06 15:43:11
【问题描述】:
我有 2 个小数字段:GrossSalary 和 Deductions。在报表中,我创建了一个名为 NetSalary 的公式字段,即:
If Not IsNull({SalaryDetails.GrossAmount}) Then
{SalaryDetails.GrossAmount} - {SalaryDetails.Deduction}
当数据可用时,报告会正确运行,但如果不是,我会收到以下错误
A number, currency amount,date,time, or date-time is required here.
Details:errorKind
Error in File tempxxxxxxxxx.rpt:
Error in formula NetAmount:
'If Not IsNull({SalaryDetails.GrossAmount}) Then
'
A number,currency amount,date,time, or date-time is required here.
Details:errorKind
我该如何解决这个问题?
【问题讨论】:
-
这些值是 NULL 还是空字符串? If Not IsNull({SalaryDetails.GrossAmount}) AND {SalaryDetails.GrossAmount} "" Then ...我还会检查您的数据库以确保没有任何字母字符,因为这也会导致该消息。跨度>
-
我还包括空支票。但是如果我直接使用我会出错。所以我使用了 If Not IsNull({SalaryDetails.GrossAmount}) AND CSTR({SalaryDetails.GrossAmount}) "" Then.. 但同样的问题
-
您可以尝试在十进制字段周围使用 CDBL() 吗?你确定数据库中没有字母字符吗?
-
@Andrew 是正确的,Crystal 认为 {SalaryDetails.GrossAmount} 或 {SalaryDetails.Deduction} 都不是数字。如果该字段是某种类型的字符串字段(如 VARCHAR),即使它只包含数字,也会发生这种情况。对一个字段尝试 CDBL() 技巧并检查错误,然后尝试另一个。 (如果您仍然收到错误,请尝试这两个字段。)
-
谢谢朋友。我在这两个领域都添加了 CDBL,现在已经成功了。请告诉我这个字母字符是什么。实际上报告来源是LINQ查询,当输入参数没有数据时出现问题