0

我有一份报告显示前一天的一些统计数据。通常这是前一天 (dateadd("d", -1, CurrentDate)) 但如果是星期一 (dayOfWeek=2),我需要它使用前三天 (dateadd("d", -3, CurrentDate ))。我知道如何做到这一点,但我需要这些值作为参数的默认值,并且能够让用户能够更改此日期。据我所知,您不能将参数的默认值设置为变量。我怎么能做到这一点?

4

2 回答 2

0

我会让你的日期参数可选(在 CR 2008 和更高版本中可用)。如果最终用户未选择任何值,则使用您描述的逻辑,否则,使用他们选择的日期。报表的记录选择公式中的此逻辑示例:

if hasvalue({?DateParameter}) then {table.field}={?DateParameter}
else 
  if dayofweek(currentdate)=2 then //today is Monday
    {table.field} in dateadd("d",-3,currentdate) to dateadd("d",-1,currentdate)
  else {table.field}=dateadd("d",-1,currentdate) 
于 2013-03-18T18:23:07.103 回答
0

你的公式应该基于你的变量。您还可以在 Crystal 中拥有一个全局变量。我现在没有水晶,但一个代码示例是:

numbervar myVariable := {?yourParameter};
(dateadd("d", -myVariable, CurrentDate))
于 2013-03-18T15:58:22.920 回答