使用相对日期选项过滤报告会抛出错误

Filter for Report with options for relative Dates throws errors

我正在 cognos report studio 中使用提示页面中的参数为报表构建过滤器。 我们的想法是为将成为 运行 报告的用户提供指定开始日期和结束日期的选项(并且 select 仅指定该时间范围内的商务旅行)并且还可以选择 select设置相关时间范围,以防报告被安排。

我有一些语法错误,我...已解决,或者至少我是这么认为的。验证过滤器时,它甚至会打开提示页面,但在我 select 一个值后它会吐出错误,如:

UDA-QOS-0006 错误 UDA-SQL-0219 函数 "getdate" 正在用于本地处理,但作为内置函数不可用,或者至少其参数之一不受支持

QE-DEF-0459 CCLException RQP-DEF-0177 执行操作 'sqlPrepareWithOptions' status='-126' 时出错。 UDA-SQL-0219 函数 "getdate" 正在用于本地处理,但作为内置函数不可用,或者至少其参数之一不受支持

RSV-VAL-0004 无法找到要报告的项目 Total Hours Abroad 的查询信息。

报告中的每个数据项显然都会重复最后一个。 我使用的过滤器表达式如下:

CASE ?RelativeTimePrompt?

WHEN 'SelectTimeframe' THEN

([Arrival Date/Time] between ?TravelDateIntervallStart? and ?TravelDateIntervallEnd?
AND
[Departure Date/Time] between ?TravelDateIntervallStart? and ?TravelDateIntervallEnd?)

WHEN 'Last12m' THEN ( [Arrival Date/Time] between _add_days(getdate (),-365) and (getdate ()) AND [Departure Date/Time] between _add_days(getdate (),-365) and (getdate ()))

WHEN 'Last6m' THEN ( [Arrival Date/Time] between _add_days(getdate (),-183) and (getdate ()) AND [Departure Date/Time] between _add_days(getdate (),-183) and (getdate ()))

WHEN 'YTD' THEN (  [Arrival Date/Time] between _add_days(getdate (),((_day_of_year(getdate ())-
1)*-1)) and (getdate ()) AND [Departure Date/Time] between _add_days(getdate (),((_day_of_year(getdate ())-
1)*-1)) and (getdate ()))

END

"When verifying the filter" -- 您实际上是 运行 整个报告的 "validate" 函数。虽然该按钮在过滤器表达式对话框中,但它与您当前查看的过滤器表达式无关。

按照错误列出的顺序来处理错误。修复第一个错误通常会使所有其他错误消失。

  1. 寻找报告认为仅限于本地处理的原因。
  2. 查找找不到的原因Total Hours Abroad for Report

此外,您是否考虑过简化案例陈述?

WHEN 'Last12m' THEN [Arrival Date/Time]  >= _add_years (current_date, -1)
WHEN 'Last6m' THEN [Arrival Date/Time]  >= _add_months (current_date, -6)
WHEN 'YTD' THEN _year([Arrival Date/Time]) = _year (current_date)