Cognos:在条件变量表达式中使用DataItem值
问题描述:
我有一个包含'YEAR'列的列表。我想让最近的一年(2010年)在“年份”专栏中大胆显示。我尝试这个表达式Cognos:在条件变量表达式中使用DataItem值
IF ([myQuery].[YEAR] = [myQuery].[RECENT_YEAR]) THEN ("RecentYearBold")
其中[RECENT_YEAR]是用表达maximum([YEAR])
这将引发我一个错误,它不允许我使用的DataItem在条件变量表达DataItem的。任何人都可以帮忙吗?
错误我得到:
RSV-VAL-0002无效表达IF([更改为MyQuery] [YEAR] = [更改为MyQuery] [RECENT_YEAR])THEN ( “RecentYearBold”)。 CRX-API-0005位置“34”或附近的错误。名为'[myQuery]。[RECENT_YEAR]'的变量无效。
答
我能够完成你想什么通过采取以下办法(让你做了同样的错误之后):
- 我创建了[recent_year]列如下所示:
maximum ([cognos_test].[year] for report)
。 (你可以使用不同的范围,如果需要的话) - 创建一个布尔变量在Conditon浏览器称为
recent year
以下表达式:[Query1].[year] = [Query1].[recent_year]
- 我加入了今年的列到列表中,设置样式变量=
recent year
和应用当条件加粗格式化为年份列时recent year = true
- 此时,当我执行报告时,我收到了同样的错误。验证报告提供了更多信息,这表明
[Query1].[recent_year]
字段也需要在列表中。当我将它添加到列表中时,条件格式化工作。 (真的不知道为什么会出现这种情况,但我随它去了。) - 要隐藏
[recent_year]
列(同时仍将其留在列表中),可以为“List Column Body”设置“Box Type”属性并将recent_year列的“列列标题”对象设置为“无”。
答
问题是,Cognos 8剥离了一个查询中没有被报表对象使用的变量(在您的情况下是List对象)。如果您希望它们可用,则需要将查询项添加到报表对象的数据属性中。请注意,您可以将项目添加到您的列表中(但是您必须隐藏它,这很丑陋)。指示Cognos将查询项目包含在报表对象中以避免不必要的噱头会更好。
此链接详细地解释了这个问题,解决方法:得到这个谜解决http://www-01.ibm.com/support/docview.wss?uid=swg21339433
首先感谢您的回复中......怎么我在等待一个星期。是的,正如你所说的,我不应该低估'验证'选项......谢谢亚尔。非常感谢... – Amsakanna 2010-02-27 10:31:24
是否为您提供最大关键字工作?我希望整个recent_year列仅包含“2010”。任何帮助? – Amsakanna 2010-03-10 11:01:08
您的帖子显示您想要突出显示包含“近年”的行,而不是过滤结果。如果您只想查看包含近年的记录,请在报告过滤器中使用上述#2中的表达式。 – Jamey 2010-03-11 16:35:21