历史版本3 :横向扩展列多列排序 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 问题描述编辑

当模版要实现多列点击排序,而多列的列名是根据字段横向扩展出来的,使用扩展后排序中的方法分别设置order参数的值无法实现横向扩展列中的点击列排序。
222

2. 实现方法编辑

获取点击列的所有值,然后在销售员的单元格属性中,设置扩展后排序,销售员根据点击列的所有值进行排序。

3. 示例编辑

3.1 绑定数据列

新建数据集ds1:SELECT * FROM 销量
将数据列拖拽至单元格,并设置单元格的属性,设置位置及方法如下图:
222
按照上图方法,将下表中对应数据列拖入到单元格中(扩展设置在右下面板的【扩展方向】,数据设置在右上面板【数据设置】):
注:字段设置为汇总时扩展属性会自动变为不扩展,可以通过单元格左上角的灰色箭头查看单元格的扩展方向。
单元格数据集数据列属性
A2ds1销售员  从上到下扩展,居中,其余默认
B1 ds1 产品  从左到右扩展,居中,其余默认
B2ds1销量  不扩展,数据设置:汇总|求和,居中,其余默认

3.2 超级链接设置

右击B1单元格,添加超级链接>动态参数,新增1个动态参数为“排序”,并添加两个参数名order和index,order的参数值为公式:if($order == 1, 0, 1),index的参数值为公式:&B1,如下图所示:
222
注:超级链接-动态参数中的index为&B1,即点击时设置index的值为所点击的单元格的序号。
3.3 排序方法的设置
右击销售员所在列(A2单元格),右击单元格>扩展属性,在设计器右侧下方的单元格属性面板中设置扩展后排序为升序并且公式为:if($order == 1, EVAL("B2[;B1:" + $index + "]"), EVAL("-B2[;B1:" + $index + "]")) 。如下图所示:
222
注:该公式的含义为:order为1时,按照EVAL("B2[;B1:" + $index + "]")获取到的点击列的值进行升序排列;order为0时,将获取到的点击列的值处理为负数,然后按照负数进行升序排列。