Cognos 11基于分组实现行颜色交替 如何生成对应分组计数列
Cognos实现跨组递增分组计数的方案
前提准备
首先确认你的报表列表已经按拼接生成的Concat字段做升序/降序排序,保证相同拼接值的行相邻排列,这是后续计算的基础。
实现步骤
- 新建第一个计算项,命名为组变更标记,表达式为:
if ( [Concat] <> prev([Concat]) ) then (1) else (0)
这里的
prev()函数会提取上一行同列的Concat值,当遇到和上一行不同的新拼接值时返回1,相同返回0。首行数据因为没有上一行,prev([Concat])返回空,判断逻辑会自动识别为值不同,返回1,符合计数起始要求。
- 新建第二个计算项,也就是你需要的跨组递增分组计数列,命名为分组计数,表达式为:
running-total([组变更标记])
running-total()会对整表按排序顺序累加组变更标记的值,相同Concat组内累加值不变,遇到新组时自动加1,最终得到你示例中的1、1、2、2的效果。
后续交替着色实现
得到分组计数列后,直接用条件格式设置规则即可:
- 当
mod([分组计数],2) = 1时设置第一种背景色 - 当
mod([分组计数],2) = 0时设置第二种背景色
效果和你Excel中用ISEVEN()/ISODD()实现的完全一致。
内容的提问来源于stack exchange,提问作者Alan Englefield
相关产品推荐
相关产品推荐

