反馈已提交

网络繁忙

当前为10.0版本文档,只有最新版本的文档支持在线编辑修改,如果想创建/编辑文档,请移步至 最新版帮助文档

动态排名

  • 文档创建者:zsh331
  • 历史版本:11
  • 最近更新:Alicehyy 于 2020-12-15
  • 1. 概述

    1.1 预期效果

    一般情况下,排名都是通过 排名组内排名 的方式实现。

    但有时,用户需实现:在填报模式下,根据输入值的不同来“动态改变”某一列值的排名情况功能时,上面的方法就无法满足了,预期效果如下图:

    1.2 实现思路

    通过报表内置的 rank() 函数来变换实现。

    RANK(number,ref,order):返回一个数在一个数组中的秩。(如果把这个数组排序,该数的秩即为它在数组中的序号。)

    参数说明:

    number:所求秩的数(可以是 Boolean型,true=1,false=0

    ref:可以是数组,引用,或一系列数,非实数的值被忽略处理(接受 Boolean 型,true=1,false=0

    order:指定求秩的参数,非零为升序,零为降序

    2. 示例

    2.1 准备数据

    新建普通报表,新建内置数据集,新增两个字段为:「姓名」、「分数」,类型分别为「字符串」、「整数」。如下图所示:

    1608030688300326.png

    2.2 设计报表

    将字段拖入对应的单元格中,设计表格如下图所示:

    1)给 C2 单元格添加 数字控件

    2)D2 单元格输入公式:B2+C2

    3)E2 单元格输入公式:rank(D2, D2[!0], 0),其中 D2[!0] 表示 D2 扩展出来的所有单元格

    注:其中 B2 ,C2 默认需为数字格式,才可实现排名,若 B2 ,C2 单元格为其他格式,则会出现下图情况:

    image.png

    此时在 D2 单元格输入公式 sum(B2+C2),则可解决排名乱码问题。

    2.3 保存预览

    1)PC端

    保存模板,点击「填报预览」,效果同 1.1 节预期效果一致。

    2)移动端

    App 端和 H5 端均支持,效果如下图所示:

    AC89CB3D-05C8-45CC-BBB4-951D684EC1D1.GIF

    3. 已完成模板

    已完成模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Advanced\Cacuate_Between_Cells\动态排名.cpt

    点击下载模板:动态排名.cpt

    附件列表


    主题: 报表专题
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    请前往「服务平台」,选择「在线支持」

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

    总裁办24H投诉

    热线电话:173-1278-1526