结果集筛选分栏

编辑
  • 文档创建者:12312
  • 浏览次数:5966次
  • 编辑次数:9次
  • 最近更新:Kevin-s 于 2019-06-02
  • 1. 描述

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

    从图中我们可以看到在保留了冻结行列的同时也可以做到按组分栏的效果。

    2. 操作步骤

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

    2.1 数据准备

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

    2.2 模板设计

    报表样式设计如下:

    A3~E3单元格的左父格均设置为A2单元格。

    点击菜单模板>重复与冻结设置,设置重复标题行从第1行至第2行,分页冻结处设置冻结第1行至第2行,如下图所示:

    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),","))

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

    3. 效果预览

    3.1 PC 端预览效果

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


    3.2 移动端预览效果





    4. 已完成模板

    模板效果在线查看请点击 结果集筛选分栏

    已完成的模板可参考%FR_HOME%\webroot\WEB-INF\reportlets\doc\advanced\结果集筛选分栏.cpt

    点击下载模板


    附件列表


    主题: 报表应用
    标签: 暂无标签 编辑/添加标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]