横向扩展列多列排序

编辑
  • 文档创建者:cherishdqy
  • 浏览次数:9231次
  • 编辑次数:9次
  • 最近更新:Kevin-s 于 2019-06-18
  • 1. 描述

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


    2. 实现方法

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


    3. 示例

    3.1 绑定数据列

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


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

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

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


    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


    附件列表


    主题: 专题总结
    标签: 暂无标签 编辑/添加标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]