1. 概述
1.1 应用场景
数据集字段包含空值,排序时这些空值总是位于最下方且不参与排序。
避免空值参与排序,显示在最上方,要翻好久才能看到有数据的行,影响查看体验。效果如下图所示:
1.2 实现思路
使用动态参数类型的超链配合扩展后排序,升序排序时,给空值赋值最大值+1,降序排序时,给空值赋值最小值-1。
2. 示例
2.1 设计模板
1)新建一张普通报表,新建一个内置数据集 ds1 ,表设计如下图所示,两字段都是字符串类型。
2)如下图设计表格,将数据集字段拖到对应单元格中。
2.2 添加超链
选中 B1 单元格,新增一个「动态参数」类型的超链,设置参数a,其值为公式if($a = 1, -1, 1),如下图所示:
2.3 设置扩展后排序
选中 A2 单元格,如下图设置扩展后排序,公式为:if($a = 1, if(len(B2) = 0, max(value('ds1', 2)) + 1, 1*B2), if(len(B2) = 0, -(min(value('ds1', 2)) - 1), -1 * B2)),公式解析如下:
判断 B2 单元格的值是否为空,为空时,升序排序给空值赋值最大值 +1 ;降序排序时,给空值赋值最小值 -1 。
另外公式里不能直接用 -B2 ,会有报错,想把 B2 单元格的值变为负值应该用 -1*B2 。
2.4 效果预览
保存并预览报表,效果如 1.1应用场景 中所示。
支持 App 端和 HTML5 端预览。
3. 模板下载
已完成模板参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\HyplinkReport\超链实现空值不参与排序.cpt
点击下载模板:超链实现空值不参与排序.cpt