字符串和日期时间错误消息 - 在同一公式字段上使用时
string and date time error message - when using on the same formula-field
我是 CR 的新手,我试图让发票公式有时作为日期阅读,有时作为文本阅读。这取决于"terms code" 客户应该如何付款:只有 4 个代码,有时是空白。
我尝试使用
的不同语法
str() or totext
但我不知道正确的格式。请参阅下面的尝试:)
if isnull({PAYTERMS.TERMSCODE}) then {INVOICE.DATE}
else if {PAYTERMS.TERMSCODE}=1 then {INVOICE.DATE}+30
else if {PAYTERMS.TERMSCODE}=2 then {INVOICE.DATE}+45
else if {PAYTERMS.TERMSCODE}=3 then {INVOICE.DATE}
else if {PAYTERMS.TERMSCODE}=4 then "Upon Receipt"
else {INVOICE.DATE}
一直返回错误:
a date is required here
公式的结果必须是相同的数据类型,不能混用日期和字符串。
所以你必须将日期转换为字符串。
据我所知,Crystal 报告中没有 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"
我是 CR 的新手,我试图让发票公式有时作为日期阅读,有时作为文本阅读。这取决于"terms code" 客户应该如何付款:只有 4 个代码,有时是空白。
我尝试使用
的不同语法str() or totext
但我不知道正确的格式。请参阅下面的尝试:)
if isnull({PAYTERMS.TERMSCODE}) then {INVOICE.DATE}
else if {PAYTERMS.TERMSCODE}=1 then {INVOICE.DATE}+30
else if {PAYTERMS.TERMSCODE}=2 then {INVOICE.DATE}+45
else if {PAYTERMS.TERMSCODE}=3 then {INVOICE.DATE}
else if {PAYTERMS.TERMSCODE}=4 then "Upon Receipt"
else {INVOICE.DATE}
一直返回错误:
a date is required here
公式的结果必须是相同的数据类型,不能混用日期和字符串。
所以你必须将日期转换为字符串。
据我所知,Crystal 报告中没有 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"