历史版本4 :结果集筛选分栏 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 描述编辑

在模板使用了行冻结后通常使用我们报表内置的分栏会造成预期的结果与自己想要的不一样,这时可以使用数据集筛选分栏,实际是对数据进行指定展示,使前端看上去存在分栏的效果,但是又不会与冻结冲突,模板预览效果如下图所示:
222
从图中我们可以看到在保留了冻结行列的同时也可以做到按组分栏的效果。

2. 示例编辑

下面讲解制作的具体过程:

2.1 数据准备

数据需按照我们按组分类的数据要求:

222

2.2 模板设计

报表样式设计如下:

222

A3~E3单元格的左父格均设置为A2单元格。
点击菜单模板>重复与冻结设置,设置重复标题行从第1行至第2行,分页冻结处设置冻结第1行至第2行,如下图所示:

222

2.3 修改结果集筛选方式

将需要分栏的字段重复拖5列(需要分几栏拖几列)并在单元格中纵向扩展,因为需要按照A2单元格分组,都设置左父格为A2,这样能做到第3行的数据都按照A2单元格分组展现,但是现在数据是都展现的,没有分栏的效果,只是数据的重复出现。

双击A3单元格,弹出数据列对话框,选择高级,结果集筛选改成指定,并写入公式=if($__count__<5,1,JOINARRAY(GREPARRAY(range($__count__),item % 5 == 1),","))

公式的意思是如果当前数据的总个数小于需要分栏的个数就为1(避免数据个数小于分栏的列数而为空造成数据全部显示的情况),否则就为总个数对于5取余等于1所组成的数组,即1,6,11,16,21……又因为数据集筛选指定的功能可以是数组按照自身个数为1,6,11,16,21个时的数据才展现出来。

注:输入公式时需加上"="

B3单元格结果集筛选的公式为=if($__count__<5,2,JOINARRAY(GREPARRAY(range($__count__),item % 5 == 2),","))

当数据自身个数为总个数的2,7,12,17......时数据展示。

后面的数据都以此类推。

其中,最后一个公式为=if($__count__<5,5,JOINARRAY(GREPARRAY(range($__count__),item % 5 == 0),","))

以上两步就可以做到存在行冻结的情况下,存在分栏并且不影响展现的效果。

222

2.4 效果展示

保存后,点击分页预览,即可对重复冻结的结果集进行分栏。