1

我有 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

我怎样才能解决这个问题?

4

2 回答 2

1

如果 Crystal Reports 认为它​​正在使用不是数字的值,它将引发此错误。Crystal 有许多转换功能,如(CDBL、CSTR 等)以及您可以使用的数据检查功能(IsNull、IsNumeric 等)。

在您的特定情况下,将值转换为 DBL (CDBL({field}) 可以在 Crystal 检查空值或空白后解决您的问题。

于 2012-12-07T15:15:03.430 回答
0

CDBL 或 IsNumeric 函数可以正常工作,例如:

{@Total} / 100 * CDBL({tblinvdetail.disc})。在这个公式中,disc 是 tblinvdetail 表的折扣列。我们假设 disc 列也接受空值。为避免此错误,CDBL 或 IsNumeric 函数将 null 转换为 0 值。您应该谨慎地在 Crystal Report 的任何公式中始终应用 cdbl 或 IsNumeric 函数以避免此类错误。如果输出的值没有浮点,则使用 IsNumeric 函数,否则使用 CDBL 函数。您还可以使用 IsNull 函数来确定空值,例如:

如果 IsNull({tblinvdetail.disc}) 那么 "0" 否则 {@Total} / 100 * {tblinvdetail.disc}

==================================================== =================== Munawar Shah AFridi (MCSD.net)

于 2016-05-24T13:56:55.553 回答