我有一个列'YEAR'的列表。我希望最近一年(2010年)在'YEAR'栏中显得大胆。我试过这个表达
IF ( [myQuery].[YEAR] = [myQuery].[RECENT_YEAR]) THEN
( "RecentYearBold" )
其中[RECENT_YEAR]是一个带有表达式maximum([YEAR])
这会抛出一个错误,它不允许我在条件变量表达式中使用DataItem。有人可以帮忙吗?
我得到错误:
RSV-VAL-0002无效的表达式IF([myQuery]。[YEAR] = [myQuery]。[RECENT_YEAR])那么 (“RecentYearBold”)。 CRX-API-0005位置'34'处或附近出错。名为“[myQuery]。[RECENT_YEAR]”的变量无效。
答案 0 :(得分:3)
问题是Cognos 8剥离了报表对象未使用的查询中的变量(在您的情况下是List对象)。如果您希望它们可用,则需要将查询项添加到报表对象的数据属性中。请注意,您可以将项目添加到列表中(但是您必须隐藏它,这很难看)。最好指示Cognos将查询项包含在报表对象中,以避免不必要的噱头。
此链接更详细地解释了问题和解决方案:http://www-01.ibm.com/support/docview.wss?uid=swg21339433
答案 1 :(得分:1)
通过采用以下方法,我能够完成您正在尝试的内容(在遇到相同的错误之后):
maximum ([cognos_test].[year] for report)
。 (如果需要,您可以使用不同的范围。)recent year
的布尔变量,其中包含以下表达式:[Query1].[year] = [Query1].[recent_year]
recent year
并在recent year = true
[Query1].[recent_year]
字段也需要在列表中。当我将它添加到列表中时,条件格式化工作。 (真的不确定为什么会这样,但我接受了它。)[recent_year]
列(同时仍将其留在列表中),您可以将recent_year列的“List Column Body”和“List Column Title”对象的“Box Type”属性设置为“无”。