反馈已提交

网络繁忙

结果集筛选分栏

  • 文档创建者:PANGC
  • 历史版本:14
  • 最近更新:Carly 于 2023-05-09
  • 1. 概述

    1.1 视频学习

    本文公式解析和填报/数据分析场景下的分栏案例在视频中有详细介绍:

    1.2 应用场景

    模板设置了行冻结后,通常会导致分栏效果异常,有没有什么好的办法可以在设置行冻结时,可以正常分栏呢?
    Snag_4956126a.png


    1.3 实现思路

    使用数据集筛选功能进行分栏,但是这个不是真正意义上的分栏,实际上是让数据在指定位置进行展示,只是让前端看上去有分栏的效果。

    这个方法的好处就是不会跟行冻结产生冲突。

    2. 示例

    2.1 准备数据

    新建内置数据集 ds1 ,共有 2 个字段,如下图所示:

    Snag_495becd3.png

    2.2 设计模板

    1)如下图设计表格,将数据集中的字段拖到对应单元格中,并设置 A3~E3 单元格的左父格为 A2 单元格,且都为纵向扩展。

    注:其中物品字段重复拖了 5 列,是因为想要分为 5 栏。分几栏就设置几列。

    Snag_495d748d.png

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

    1625814325896981.png

    2.3 设置结果集筛选

    1)双击 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 个时的数据才展现出来。

    注:公式开头的等于号不要忘记。

    1625814690817576.png

    2)B3~E3 单元格同样需要设置指定的结果集筛选,只是公式跟 A3 有细微的区别。公式分别如下:

    B3单元格:=if($__count__<5,2,JOINARRAY(GREPARRAY(range($__count__),item % 5 == 2),","))

    C3单元格:=if($__count__<5,3,JOINARRAY(GREPARRAY(range($__count__),item % 5 == 3),","))

    D3单元格:=if($__count__<5,4,JOINARRAY(GREPARRAY(range($__count__),item % 5 == 4),","))

    E3单元格:=if($__count__<5,5,JOINARRAY(GREPARRAY(range($__count__),item % 5 == 0),","))

    2.4 效果预览

    保存报表,分页预览效果如 1.1应用场景 中所示。

    支持 App 端和 HTML5 端预览。

    3. 模板下载

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

    点击下载模板:结果集筛选分栏.cpt

    附件列表


    主题: 报表应用
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持