1. 描述编辑
当模板要实现多列点击排序,而多列的列名是根据字段横向扩展出来的,使用 扩展后排序 中的方法分别设置order参数的值无法实现横向扩展列中的点击列排序。
2. 实现方法编辑
获取点击列的所有值,然后在销售员的单元格属性中,设置扩展后排序,销售员根据点击列的所有值进行排序。
3. 示例编辑
3.1 绑定数据列
将数据列拖拽至单元格,并设置单元格的属性,设置位置及方法如下图:
按照上图方法,将下表中对应数据列拖入到单元格中(扩展设置在右下面板的【扩展方向】,数据设置在右上面板【数据设置】):
注:字段设置为汇总时扩展属性会自动变为不扩展,可以通过单元格左上角的灰色箭头查看单元格的扩展方向。
单元格 | 数据集 | 数据列 | 属性 |
---|---|---|---|
A2 | ds1 | 销售员 | 从上到下扩展,居中,其余默认 |
B1 | ds1 | 产品 | 从左到右扩展,居中,其余默认 |
B2 | ds1 | 销量 | 不扩展,数据设置:汇总|求和,居中,其余默认 |
3.2 超级链接设置
给 B1 单元格,添加超级链接-动态参数,新增1个动态参数为“排序”,并添加两个参数名 order 和 index,order 的参数值为公式:if($order == 1, 0, 1),index的参数值为公式:&B1,如下图所示:
注:超级链接-动态参数中的 index 为 &B1,即点击时设置 index 的值为所点击的单元格的序号。
3.3 排序方法的设置
右击销售员所在列(A2 单元格),右击单元格>扩展属性,在设计器右侧下方的单元格属性面板中设置扩展后排序为升序并且公式为:if($order == 1, EVAL("B2[;B1:" + $index + "]"), EVAL("-B2[;B1:" + $index + "]")) 。如下图所示:
注:该公式的含义为:order 为 1 时,按照 EVAL("B2[;B1:" + $index + "]")获取到的点击列的值进行升序排列;order 为 0 时,将获取到的点击列的值处理为负数,然后按照负数进行升序排列。
具体的模板设置可参考:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\OrderReport\横向扩展列多列排序.cpt。
在线查看示例效果请点击 Order_6.cpt