润乾报表提供了一个可以给可扩展的单元格自动加序号的函数-&函数,本文就来给大家介绍一下此函数的用法。
首先,看一下函数解释和功能效果
表达式:&Cellx (例如:&A2 )
返回值:整数,当前格所属的Cellx主格在所有扩展出来的格子中的排序
说明:Cellx必须是当前格的主格,这样&Cellx才能够正确运算,其返回值相当于是当前格所属的Cellx主格的位置
效果见下图:(图中B2为A2的主格,即为B2的扩展格排列序号)
下面我们就用一个简单的例子来体验一下这个函数
正常需求:给报表的每一行都加上序号
第一步:新建报表
连接润乾自带的demo数据源,在订单表上建立数据集ds1,并生成网格式报表,其sql语句为:SELECT 订单.订单ID,订单.货主名称,订单.货主城市,订单.运货费 FROM 订单
网格报表设计如下:
预览效果如下:
第二步:加序号
在A列前插入新列,在新列的单元格中写入下面的表达式
A1:序号 A2:=&B2
然后把A2的左主格设为B2(这个操作很重要,A2中的序号是根据B2的扩展排列的)
设置完成后预览就可以看到我们想要的效果了,如下图:
需求扩展:报表分页后每页都重新从1开始排列序号
上面的设置产生的序号不管报表分页与否都是连续的,但是有些用户想要分页以后序号重新从1开始排,也就是每页都是重新排列序号的效果。下面就来看润乾报表如何解决这个特殊需求。一般这样的分页报表发布展示后每页显示的行数是固定的,像我们这个报表每页显示就是29行,我们可以用给序号取模的原理来让每页都从1开始排序,具体操作是把A2单元格中的表达式换成:=&B2%29,然后我们看一下发布后的效果:
这样,需求就解决了。下面说一下应该注意的地方:
此方法只能用在每页的数据区行数固定的情况下(报表头必须每页显示或者都不显示),如果每页行数不是固定的29行,对29取模就没有意义了,就不能保证每页从1开始排序号了。
希望这个序号使用的小技巧可以帮的上润乾报表用户的忙,让报表开发更方便一些。