[]
在矩表中实现行号需使用GroupIndex()函数(而非表格行号的RowNumber),该函数支持当前组索引(GroupIndex())和指定组索引(GroupIndex("with scope"))两种调用方式。
下图为使用GroupIndex() 函数实现的全局行号和组内行号效果。可见全局行号是以整个矩表为排序范围,从1开始递增。而组内行号仅在分组内进行排序,每个分组都是从1开始。
在报表设计器中,创建一个带有子级行分组的矩表并绑定字段,如下图所示。
在“ 销售大区 ”和“ 销售省份 ”左侧或右侧各增加一列,用于显示全局行号和组内行号。请注意这里是在分组内添加列,有两种方法。
方法一: 选中矩表列头对应单元格,鼠标右键单击,然后选择「列操作>左侧」。
方法二: 选中矩表的行分组单元格,鼠标右键单击,然后选择「列操作>在分组内-左侧/在分组内-右侧」。
添加全局行号。在矩表的第一个列头输入列名 全局行号 ”,然后在分组单元格内输入表达式 {GroupIndex()}。
添加组内行号,组内行号的表达式有两种写法:
写法一: 在矩表的第三个列头输入列名“ 大区内行号 ”,同样在分组单元格内输入表达式 {GroupIndex()} 。
写法二: 在矩表的第三个列头输入列名“ 大区内行号 ”,同样在分组单元格内输入表达式 {GroupIndex("矩表1_销售省份_分组")},此时用的是GroupIndex("with scope")函数,其中“矩表1_销售省份_分组”是二级分组的分组名称。
预览报表,可见已经正确显示行号。虽然两个表达式相同,但由于在不同的分组内,所以会返回不同的值。全局行号依次递增,大区内行号在分组内递增。
如需行号从1开始,那么在表达式中加入“+1”即可,表达式为“{GroupIndex()+1}“,此时在预览,效果如本文最开始的截图所示。