Отчет Crystal Ошибка формулы при пустом источнике данных

Этот вопрос не нов, но я застрял весь день. Кто-то публиковал ранее: Crystal Reports: ошибка в сумме в Поле формулы. У меня есть отчет, который вычисляет общий доход в формуле дохода от звонков:

 if isnull({table.totalAmount}) and isnull({table.unpaidAmount})then 0 else 
{table.totalAmount}-{table.unpaidAmount}

это работает, если источник данных не пуст, но если источник данных пуст, он генерирует исключение: Error in formula revenue: A number,current amount, date, time, or date-time is required here Любой совет о том, как решить эту проблему, был бы замечательным!


person Gou    schedule 24.11.2016    source источник


Ответы (2)


Crystal выдает исключение, скорее всего, это связано с тем, что тип данных для {table.totalAmount} и/или {table.unpaidAmount} является строкой, а не числом?

Вы можете преобразовать их в числа:

ToNumber({table.totalAmount}) 
ToNumber({table.unpaidAmount})

В качестве альтернативы вы можете запустить проверку, чтобы увидеть, являются ли данные числовыми или нет:

If IsNumeric({table.totalAmount}) and IsNumeric({table.unpaidAmount})
Then {table.totalAmount}-{table.unpaidAmount}
Else 0
person madeniran1000    schedule 26.11.2016

когда источник данных пуст, isnull не получает никакого значения, следовательно, ошибка. попробуйте так:

if ({table.totalAmount}="" and {table.unpaidAmount}="")
then 0 
else 
{table.totalAmount}-{table.unpaidAmount}
person Siva    schedule 24.11.2016