反馈已提交

网络繁忙

扩展后排序重新编号

  • 文档创建者:axing
  • 编辑次数:9次
  • 最近更新:Alicehyy 于 2021-03-30
  • 1. 概述

    1.1 问题描述

    在对报表进行扩展后排序(按「牛奶」销量排序)之后,若直接使用单元格插入公式 seq() 或者 &cell 这两种方法获取序号,序号的顺序是乱序的,如何让它变成正常的排序呢?如下图所示:

    1610098522863526.png

    1.2 解决思路

    方法一:设置条件属性新值。

    方法二:设置公式形态。

    方法三:添加加载结束事件,利用 JavaScript 代码解决。

    2. 示例

    2.1 数据准备

    新建普通报表,新建数据库查询 ds1,SQL 查询语句为:SELECT * FROM 销量

    Snag_ae55ac4.png

    2.2 报表设计

    1)设计如下图所示表格,设置单元格 A2 左父格为 B2 ,并且插入公式:seq() , 生成序号。

    设置单元格扩展方向:C1 为横向扩展,B2、C2 为纵向扩展。

    1610200220248672.png

    2)未设置扩展后排序时,保存报表,点击「分页预览」,可以看到序号顺序正常,效果如下图所示:

    Snag_1115ff2a.png

    2.3 设置扩展后排序

    1)选中 B2 单元格,添加扩展后排序,公式为:C2{C1 = "牛奶"},即按照「牛奶」一列的销量值进行升序排列,步骤如下图所示:

    Snag_1121c0bf.png

    2)保存报表,点击「分页预览」,表格已按「牛奶」列升序排序,但序号一列被打乱,如下图所示:

    1610200336939551.png

    2.4 方法一(条件属性)

    选中序号所在单元格 A2,删除原本的公式,添加「条件属性>新值」,选择公式类型,值可以是 seq(),row()-1,&cell 。

     row()-1:row() 返回当前行位置,- 1 指的是当前行位置 -1,数值根据具体情况而定。

    &cell:cell 指的是添加扩展后排序的单元格,本例为 B2 单元格。

    由于任何情况下都需要生效,不需要添加判定条件。步骤如下图所示:

    1610204313449205.png

    2.5 方法二(公式形态)

    选中序号所在单元格 A2,选择「单元格属性>形态>公式形态」,值同样可以为 seq(),row()-1,&cell 。

    注1:公式形态实际是将实际值与显示值转换,所以序号所在单元格本身必须有值。

    注2:当序号所在单元格原本的值为 seq() 时,公式形态的值需要设置为 seq(1),否则序号会累计。

    如下图所示:

    Snag_11748ac7.png

    2.6 方法三(加载结束事件)

    点击菜单栏「模板>模板 Web 属性」,选择「分页预览设置」,选择「为改模板单独设置」,在事件设置中添加「加载结束」事件,输入 JavaScript 代码,步骤如下图所示:

    1610206365919969.png

    JavaScript 代码如下:

    $(function(){
         var len=$('.x-table tr').length;
         for(var i=1;i<len;i++){
    //table中的行数是从0开始算的,下面代码意思是第二行第一个单元格编号是1
         $('.x-table tr:eq('+i+') td:first').text(i);
         }
    })

    1610206365495409.png

    2.7 效果预览

    1)PC 端

    三种方法的效果都和 2.2 节中正常排序效果一致。

    2)移动端

    方法三不支持移动端,方法一和方法二均支持 App 端和 H5 端,效果如下图所示:

    aabb8e851301330081b0c80c37ca121.png

    3. 模板下载

    已完成模板可参见:

    %FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\Cacuate_Between_Cells\扩展后排序重新编号方法一.cpt

    %FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\Cacuate_Between_Cells\扩展后排序重新编号方法二.cpt

    %FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\Cacuate_Between_Cells\扩展后排序重新编号方法三.cpt

    点击下载模板:

    扩展后排序重新编号方法一.cpt

    扩展后排序重新编号方法二.cpt

    扩展后排序重新编号方法三.cpt

    附件列表


    主题: 报表专题
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    在线QQ:800049425

    热线电话:400-811-8890转2

    总裁办24H投诉

    热线电话:173-1278-1526

    文 档反 馈

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

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

    不再提示

    10s后关闭