Crystal Report从Data Flex转换为SQL,现在正在获取公式错误

时间:2013-06-27 12:56:16

标签: 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}, {CDCLIENT.SORT_NAME})

以上公式现在在字段=Date(1999-01-01)部分获取字符串是必需的错误。我似乎无法确定需要什么

2 个答案:

答案 0 :(得分:0)

要在Crystal报表中声明日期,您可以使用哈希:

Date (#1999-01-01#)

修改

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

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

答案 1 :(得分:0)

使用:

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})