具有多个可选提示的Cognos报告

时间:2012-08-29 19:52:34

标签: filter prompt cognos

我有一个报告要求,用户希望有2个多选可选提示。

  • 场景A.如果用户在两个提示中选择值,则应根据选择的值过滤列表 两个提示。
  • 场景B.如果用户在提示1中选择值,而在提示2中选择无 - 则应过滤列表 仅在“提示1”中选择的值
  • 场景C.如果用户选择提示2中的值,而提示1中没有值 - 则应筛选列表 仅在“提示2”中选择的值

由于两个提示都是可选的,因此过滤器保持可选。

当选择了两个提示值时,报告在方案A中正常工作。

但在方案B中,报告显示了提示1中的选定值(这是正确的),但是提示2中的所有值(这是不正确的。不应显示未选择的值)。

在方案C中,报告显示来自提示2的所选值(这是正确的),但是来自提示1的所有值(这是不正确的。不应显示未选择的值)。

您能否提供一个解决方案,以便根据上述方案过滤报告?

1 个答案:

答案 0 :(得分:1)

默认情况下,在提示中未提供答案时Cognos不应用任何过滤器。 结果是所有的值。 因此,您获得的结果是Cognos中的预期行为。

我的建议是使用多个列表和条件字符串变量。 因此,首先使用以下表达式定义条件变量:

case 
when (ParamDisplayValue('Prompt 1') is not null and ParamDisplayValue('Prompt 2') is not null) then ('A')
when (ParamDisplayValue('Prompt 1') is not null and ParamDisplayValue('Prompt 2') is null) then ('B')
when (ParamDisplayValue('Prompt 1') is null and ParamDisplayValue('Prompt 2') is not null) then ('C')
end

当然,您必须定义三个3字符串结果:A,B,C。

解释: 创建3个列表:

列表A - 定义使用提示1,提示2值作为参数的过滤器

列表B - 定义使用提示1作为参数的过滤器,并定义将排除提示2的所有值的常量过滤器

列表C - 定义使用提示2作为参数的过滤器,并定义将排除提示1的所有值的常量过滤器。

选择每个列表,然后在每个匹配列表上使用render变量:

ListA - 仅在条件变量字符串等于A时才渲染。

ListB - 仅在条件变量字符串等于B时才渲染。

ListC - 仅在条件变量字符串等于C时才渲染。

希望能帮助您解决问题。