反馈已提交

网络繁忙

页面动态移动行

  • 文档创建者:axing
  • 历史版本:2
  • 最近更新:Catqiu 于 2022-08-17
  • 1. 概述

    1.1 问题描述

    有些用户想要在预览报表的时候,根据自己的需要去调整报表的顺序,如下图所示,用户可以通过点击页面上的上移和下移来移动当前行。

    移动行.gif

    1.2 实现思路

    定义一个数组存储排序的顺序,点击上移或下移的时候,交换该数组相应位置的值,最后在扩展排序里按照这个数组来排序。

    2. 示例

    2.1 新建数据集

    新建数据集ds1 ,SQL语句:SELECT * FROM 销量,如下图所示:

    2.2 报表设计

    报表设计如下,A2 单元格输入公式:&B2,左父格设置为 B2。E2 单元格数据设置为汇总-求和,最后隐藏 A 列。如下图所示:

    2.3 添加动态参数

    1)选中 F2 单元格,添加动态参数,参数名为 a,参数值为公式类型,如下图所示:

    let(arr,if(len($a) = 0,range(count(B2[!0;!0])),$a),let(idx,inarray(A2,arr),if(idx = 1,arr,maparray(arr,if(index = idx,indexofarray(arr,idx - 1),if(index = idx - 1,indexofarray(arr,idx),item))))))

    2)选中 G2 单元格,添加动态参数,参数名为 a,参数值为公式类型,如下图所示:let(arr,if(len($a) = 0,range(count(B2[!0;!0])),$a),let(idx,inarray(A2,arr),if(idx = len(arr),arr,maparray(arr,if(index = idx,indexofarray(arr,idx + 1),if(index = idx + 1,indexofarray(arr,idx),item))))))

    公式解析:以上移为例

    公式解析
    let(arr,if(len($a) = 0,range(count(B2[!0;!0])),$a),……)判断数组$a是否为空,为空的话以B2单元格的总行数扩展一个新数组,否则为$a本身。并将最后结果赋值给变量arr
    let(idx,inarray(A2,arr),……)计算A2单元格的值在数组arr中的位置,并将结果赋值给变量idx
    if(idx = 1,arr,maparray(arr,if(index = idx,indexofarray(arr,idx - 1),if(index = idx - 1,indexofarray(arr,idx),item))))如果idx等于1,则返回arr本身,也就是说点击第一行的时候,顺序不会改变。如果idx不等于1,那么将arr数组里面第idx个值换成idx-1位置的值,同时将idx-1位置的值换成idx位置的值。

    2.4 扩展后排序

    选中 B2 单元格,设置扩展后排序。排序依据为公式,公式为:INARRAY(&B2,$a),排序规则为升序。

    2.5 预览效果

    2.5.1 PC 端

    保存模板,选择分页预览,预览效果如 1.1 节所示。

    2.5.2 移动端

    App 与 HTML5 端效果相同,如下图所示:

    移动行h5.gif

    3. 模板下载

    点击下载模板:页面动态移动行.cpt



    附件列表


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

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

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

    不再提示

    10s后关闭

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