Результат формулы должен иметь тот же тип данных, вы не можете смешивать даты и строки.
Таким образом, вы должны преобразовать даты в строку.
Насколько я знаю, в Crystal Reports нет функции str()
. Я думаю, вы имеете в виду cstr()
.
Не имеет значения, используете ли вы cstr()
или totext()
, потому что totext()
это просто псевдоним для cstr()
.
Формула должна выглядеть следующим образом:
if isnull({PAYTERMS.TERMSCODE}) then cstr({INVOICE.DATE})
else if {PAYTERMS.TERMSCODE}=1 then cstr({INVOICE.DATE}+30)
else if {PAYTERMS.TERMSCODE}=2 then cstr({INVOICE.DATE}+45)
else if {PAYTERMS.TERMSCODE}=3 then cstr({INVOICE.DATE})
else if {PAYTERMS.TERMSCODE}=4 then "Upon Receipt"
else cstr({INVOICE.DATE})
Кроме того, вы можете установить второй аргумент cstr()
, чтобы определить формат вывода даты:
cstr({INVOICE.DATE}, "MM/dd/yyyy") // Output will be like "03/26/2019"