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

目录:

1. 概述编辑

1.1 问题描述

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

222

1.2 实现思路

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

2. 示例编辑

2.1 绑定数据列

将数据列拖拽至单元格,并设置单元格的属性,设置位置及方法如下图:

222

按照上图方法,将下表中对应数据列拖入到单元格中(扩展设置在右下面板的【扩展方向】,数据设置在右上面板【数据设置】):

注:字段设置为汇总时扩展属性会自动变为不扩展,可以通过单元格左上角的灰色箭头查看单元格的扩展方向。

单元格数据集数据列属性
A2ds1销售员  从上到下扩展,居中,其余默认
B1 ds1 产品  从左到右扩展,居中,其余默认
B2ds1销量  不扩展,数据设置:汇总|求和,居中,其余默认


2.2 超级链接设置

给 B1 单元格,添加超级链接-动态参数,新增1个动态参数为“排序”,并添加两个参数名 order 和 index,order 的参数值为公式:if($order == 1, 0, 1),index的参数值为公式:&B1,如下图所示:

222

注:超级链接-动态参数中的 index 为 &B1,即点击时设置 index 的值为所点击的单元格的序号。


2.3 排序方法的设置

右击销售员所在列(A2 单元格),右击单元格>扩展属性,在设计器右侧下方的单元格属性面板中设置扩展后排序为升序并且公式为:if($order == 1, EVAL("B2[;B1:" + $index + "]"), EVAL("-B2[;B1:" + $index + "]")) 。如下图所示:

222

注:该公式的含义为:order 为 1 时,按照 EVAL("B2[;B1:" + $index + "]")获取到的点击列的值进行升序排列;order 为 0 时,将获取到的点击列的值处理为负数,然后按照负数进行升序排列。

2.4 预览效果

保存模板,点击分页预览,PC 端效果如下所示:

222

3. 模板下载编辑

已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\OrderReport\横向扩展列多列排序.cpt

点击下载模板:横向扩展列多列排序.cpt