Report Cognos:在条件变量表达式中使用DataItem值

Report Cognos:在条件变量表达式中使用DataItem值,report,cognos,Report,Cognos,我有一个列表,上面有一列“年”。我想让最近的2010年在“年份”栏中显示为粗体。我试过这个表达 如果[myQuery].[YEAR]=[myQuery].[最近一年],则 最近的消息 其中,[RECENT_YEAR]是表达式为maximum[YEAR]的数据项 这会引发错误,并且不允许在条件变量表达式中使用DataItem。有人能帮忙吗 我得到的错误是: RSV-VAL-0002如果[myQuery].[YEAR]=[myQuery].[RECENT_YEAR]则表达式无效 最近的消息。CRX-

我有一个列表,上面有一列“年”。我想让最近的2010年在“年份”栏中显示为粗体。我试过这个表达

如果[myQuery].[YEAR]=[myQuery].[最近一年],则 最近的消息

其中,[RECENT_YEAR]是表达式为maximum[YEAR]的数据项

这会引发错误,并且不允许在条件变量表达式中使用DataItem。有人能帮忙吗

我得到的错误是:

RSV-VAL-0002如果[myQuery].[YEAR]=[myQuery].[RECENT_YEAR]则表达式无效 最近的消息。CRX-API-0005位置“34”上或周围的错误。名为“[myQuery].[RECENT_YEAR]”的变量无效


在得到与您相同的错误后,我通过以下方法完成了您正在尝试的操作:

我创建了[最近一年]列,如下所示: 报告的最大[cognos_测试].[year]。如果需要,您可以使用不同的作用域。 在Conditon Explorer中使用以下表达式创建了名为“最近一年”的布尔变量:[Query1].[year]=[Query1].[recent_year] 我将年份列添加到列表中,设置样式变量=最近一年,并在最近一年=true时对年份列应用条件粗体格式 此时,当我执行报告时,我收到了与您相同的错误。验证报告提供了更多的信息,这表明[Query1].[Nest_year]字段也需要在列表中。当我将其添加到列表中时,条件格式起作用。我真的不知道为什么会这样,但我同意了。 要隐藏[recent_year]列,同时仍将其保留在列表中,可以将列表列正文的框类型属性和最近_year列的列表列标题对象设置为None。
在得到与您相同的错误后,我通过以下方法完成了您正在尝试的操作:

我创建了[最近一年]列,如下所示: 报告的最大[cognos_测试].[year]。如果需要,您可以使用不同的作用域。 在Conditon Explorer中使用以下表达式创建了名为“最近一年”的布尔变量:[Query1].[year]=[Query1].[recent_year] 我将年份列添加到列表中,设置样式变量=最近一年,并在最近一年=true时对年份列应用条件粗体格式 此时,当我执行报告时,我收到了与您相同的错误。验证报告提供了更多的信息,这表明[Query1].[Nest_year]字段也需要在列表中。当我将其添加到列表中时,条件格式起作用。我真的不知道为什么会这样,但我同意了。 要隐藏[recent_year]列,同时仍将其保留在列表中,可以将列表列正文的框类型属性和最近_year列的列表列标题对象设置为None。
问题是Cognos8从查询中去掉了列表对象中报表对象不使用的变量。如果希望它们可用,则需要将查询项添加到报表对象的数据属性中。请注意,您可以将该项目添加到列表中,但必须将其隐藏,这很难看。最好是指示Cognos在报告对象中包含查询项,以避免不必要的花招


此链接更详细地解释了问题和解决方案:

问题在于Cognos 8从查询中删除了列表对象中报表对象未使用的变量。如果希望它们可用,则需要将查询项添加到报表对象的数据属性中。请注意,您可以将该项目添加到列表中,但必须将其隐藏,这很难看。最好是指示Cognos在报告对象中包含查询项,以避免不必要的花招


此链接更详细地解释了问题和解决方案:

首先感谢您的回复。。。因为我等了一个星期才解开这个谜。是的,正如你所说,我不应该低估“验证”选项。。。谢谢你。非常感谢…这个最大关键字对你有用吗?我希望整个“最近几年”专栏只包含“2010年”。有什么帮助吗?您的帖子表明您希望突出显示包含“最近一年”的行,而不是筛选结果。如果您只想查看包含最近一年的记录,请在报表筛选器中使用上面2中的表达式。实际上,我想突出显示包含最近一年的行。没错。但问题是我无法使用任何表达式获取最近的年,因为我的[year]列有许多重复项。所以当使用maximum[year]时,它只是将年份分组,我想您可以通过这个查询了解我的表数据。。。从tbl_时间组中选择年份,countyear by year order by year returns->year countyear 2004 53 2005 52 2006 52 2007 63 2008 62 2009 63 2010 9。。。你知道怎么取回吗
最近的一年?我认为,在创建条件表达式时,我不必依赖于模型,而必须使用本机sqlreport,而是使用for report指定范围?使用for scope操作符将指示Cognos在确定要突出显示哪些行时忽略查询中的分组。首先感谢您的回复。。。因为我等了一个星期才解开这个谜。是的,正如你所说,我不应该低估“验证”选项。。。谢谢你。非常感谢…这个最大关键字对你有用吗?我希望整个“最近几年”专栏只包含“2010年”。有什么帮助吗?您的帖子表明您希望突出显示包含“最近一年”的行,而不是筛选结果。如果您只想查看包含最近一年的记录,请在报表筛选器中使用上面2中的表达式。实际上,我想突出显示包含最近一年的行。没错。但问题是我无法使用任何表达式获取最近的年,因为我的[year]列有许多重复项。所以当使用maximum[year]时,它只是将年份分组,我想您可以通过这个查询了解我的表数据。。。从tbl_时间组中选择年份,countyear by year order by year returns->year countyear 2004 53 2005 52 2006 52 2007 63 2008 62 2009 63 2010 9。。。你知道如何从中检索最近的一年吗?我认为,在创建条件表达式时,我不必依赖于模型,而必须使用本机sqlreport,而是使用for report指定范围?使用for scope操作符将指示Cognos在确定高亮显示哪些行时忽略查询中的分组。