我有2个月的提示。如果我没有在第一个提示中选择任何年月,则默认情况下,报告应该从同一年的1月开始运行,在第2个提示中选择。我的提示是值提示并具有字符串值。请帮我实现要求。我已经尝试了#prompt macro,?prompt ?, case等等。我不确定,如果javascript会有所帮助。
答案 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?
)
上述样式过滤器的优越性有很多原因:
您可能在过滤器中看到CASE语句会引发错误。 CASE语句传递给SQL,而不是通过Cognos编译成SQL语句。因此,它不被视为正确的语法。