默认情况下在提示中传递选定年份的Jan

时间:2014-02-11 06:19:30

标签: cognos cognos-8 cognos-10

我有2个月的提示。如果我没有在第一个提示中选择任何年月,则默认情况下,报告应该从同一年的1月开始运行,在第2个提示中选择。我的提示是值提示并具有字符串值。请帮我实现要求。我已经尝试了#prompt macro,?prompt ?, case等等。我不确定,如果javascript会有所帮助。

1 个答案:

答案 0 :(得分:0)

我将假设您的基础日期字段未存储为DATE值类型,因为您正在使用字符串。这可能更容易分为4个提示:从月份,从年份到月份,再到年份。

如果符合以下条件,则过滤器将隐含:

(
(?FROM_YEAR? = '' or ?FROM_MONTH? = '')  and 
[database_from_month] = '01' and
[database_from_year] = ?TO_YEAR? and
[database_to_month] = ?TO_MONTH? and
[database_to_year] = ?TO_YEAR? 
)
OR
(
(?FROM_YEAR? <> '' or ?FROM_MONTH? <> '')  and 
[database_from_month] = ?FROM_MONTH? and
[database_from_year] = ?FROM_YEAR? and
[database_to_month] = ?TO_MONTH? and
[database_to_year] = ?TO_YEAR? 
)

上述样式过滤器的优越性有很多原因:

  • 更可能是可以攻击的
  • 易于理解
  • 使用简单的内置Cognos功能;更有可能符合交叉版本
  • 使用Javascript
  • 可以获得跨浏览器支持的问题
  • 代码段可用于其他Cognos工作室(Business Insight等)

您可能在过滤器中看到CASE语句会引发错误。 CASE语句传递给SQL,而不是通过Cognos编译成SQL语句。因此,它不被视为正确的语法。

相关问题