使用相对日期选项过滤报告以引发错误

时间:2019-04-18 16:08:13

标签: report expression cognos cognos-10

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

我有一些语法错误,我已经解决了,或者至少我是这样认为的。验证过滤器时,它甚至会打开提示页面,但是在我选择一个值之后,它会吐出诸如以下错误:

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

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

RSV-VAL-0004无法找到有关“报告的总工时”的查询信息。

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

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

1 个答案:

答案 0 :(得分:0)

“验证过滤器时”-实际上,您正在整个报表上运行“验证”功能。尽管该按钮位于“过滤器表达式”对话框中,但它与您当前正在查看的过滤器表达式无关。

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

  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)