Cognos 11.1.7:带默认全成员选择的宏提示语法求助
在Cognos 11.1.7中实现默认选中所有成员的宏提示语法
需求说明
在Cognos 11.1.7环境下,需实现宏提示默认选中维度所有成员的效果,支持集合、过滤器等技术方案。
现有参考代码
基础集合提示示例
set([Generic].[Groups].[Location].[Location] -> ?Location?)
硬编码选中所有成员的切片器示例
[Generic].[Groups].[Location].[Location]->[all].[1]
已尝试的未确认写法
#Prompt('Location', 'token', '[all]')#
#Prompt('Location', 'memberuniquename', '[all]')#
正确实现方案
方案1:结合硬编码All成员的集合写法
直接将默认值指定为硬编码中使用的[all].[1]完整唯一名称,确保宏提示默认选中所有成员:
set([Generic].[Groups].[Location].[Location] -> #Prompt('Location', 'memberuniquename', '[Generic].[Groups].[Location].[Location].[all].[1]')#)
方案2:动态获取所有成员的集合写法
使用allMembers函数动态获取维度下所有成员,无需硬编码节点名称:
set(#Prompt('Location', 'memberuniquename', '[Generic].[Groups].[Location].[Location].allMembers')#)
方案3:过滤器写法(支持多选)
如果需要支持多选提示且默认选中所有成员,使用PromptMany函数:
[Generic].[Groups].[Location].[Location] in #PromptMany('Location', 'memberuniquename', '[Generic].[Groups].[Location].[Location].allMembers')#
关键说明
- 使用
memberuniquename作为提示类型,是因为Cognos中成员唯一名称能精准定位维度成员,避免歧义。 - 默认值必须是对应维度的合法成员/集合表达式,不能仅写
[all],需要补全完整维度路径或使用allMembers函数。
内容的提问来源于stack exchange,提问作者VAI Jason
相关产品推荐
相关产品推荐

