默认情况下,在提示中传递所选年份的 1 月



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

我将假设您的基础日期字段未存储为 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 语句。因此,它不被视为正确的语法。

相关内容

最新更新