Crystal reports Crystal Report从Data Flex转换为SQL,现在出现公式错误

Crystal reports Crystal Report从Data Flex转换为SQL,现在出现公式错误,crystal-reports,crystal-reports-2011,Crystal Reports,Crystal Reports 2011,这是我的公式: if Maximum({@tx plan date}, {CDCLIENT.SORT_NAME})=Date (1999-01-01) then currentdate-Maximum ({CDASSFRM.DATE_EFFECTIVE}, {CDCLIENT.SORT_NAME}) else Maximum ({@tx plan date}, {CDCLIENT.SORT_NAME})-Maximum ({CDASSFRM.DATE_EFFECTIVE}, {CD

这是我的公式:

if Maximum({@tx plan date}, {CDCLIENT.SORT_NAME})=Date (1999-01-01) then 
  currentdate-Maximum ({CDASSFRM.DATE_EFFECTIVE}, {CDCLIENT.SORT_NAME}) 
else 
  Maximum ({@tx plan date}, {CDCLIENT.SORT_NAME})-Maximum ({CDASSFRM.DATE_EFFECTIVE}, {CDCLIENT.SORT_NAME})

上面的公式现在在字段
=Date(1999-01-01)
部分上得到一个字符串is required error。我似乎不知道在Crystal reports中声明日期需要什么,您可以使用哈希:

Date (#1999-01-01#)
编辑

当您试图与字符串进行比较时,您需要将字符串转换为日期,或者反之亦然(可能需要测试和使用日期格式):

使用以下任一选项:

if Maximum({@tx plan date}, {CDCLIENT.SORT_NAME})=Date(1999,01,01) then 
  currentdate-Maximum ({CDASSFRM.DATE_EFFECTIVE}, {CDCLIENT.SORT_NAME}) 
else 
  Maximum ({@tx plan date}, {CDCLIENT.SORT_NAME})-Maximum ({CDASSFRM.DATE_EFFECTIVE}, {CDCLIENT.SORT_NAME})
或:


您是否尝试过用撇号(
)或引号(
)来包装
1999-01-01
)?是的,响应与字符串相同required@user2528135,您使用的是哪个版本的crystal reports?还有,
{@tx plan date}的数据类型
肯定是日期?Crystal Report 2011版。{@tx plan date]是一个字符串field@user2528135,添加了更多细节
if Maximum({@tx plan date}, {CDCLIENT.SORT_NAME})=Date(1999,01,01) then 
  currentdate-Maximum ({CDASSFRM.DATE_EFFECTIVE}, {CDCLIENT.SORT_NAME}) 
else 
  Maximum ({@tx plan date}, {CDCLIENT.SORT_NAME})-Maximum ({CDASSFRM.DATE_EFFECTIVE}, {CDCLIENT.SORT_NAME})
if Maximum({@tx plan date}, {CDCLIENT.SORT_NAME})=DateValue("1999-01-01") then 
  currentdate-Maximum ({CDASSFRM.DATE_EFFECTIVE}, {CDCLIENT.SORT_NAME}) 
else 
  Maximum ({@tx plan date}, {CDCLIENT.SORT_NAME})-Maximum ({CDASSFRM.DATE_EFFECTIVE}, {CDCLIENT.SORT_NAME})