历史版本6 :动态排名 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 描述编辑

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

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

2. 解决方案编辑

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

RANK(A,B,C)返回一个数在一个数组中的秩(如果把这个数组排序,该数的秩即为它在数组中的序号

参数说明:

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

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

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

3. 示例编辑

3.1 内置数据集

新建模板,添加内置数据集,如下所示:

3.2 模板设置

将字段拖入对应的单元格中,模板设置如下:

给C2单元格添加“数字控件”

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

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

4. 保存预览编辑

保存模板,选择填报预览。

分别在C2单元格中输入不同的数值,E2单元格的排名值随着总分的变化而动态变化,效果如上图。

5. 已完成模板编辑

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