定制排序

<< Click to Display Table of Contents >>

当前位置:  可视化数据计算和交互分析 > 数据处理与分析 > 排序 > 排序类型 

定制排序

复制链接

1. 概述

1.1 应用场景

定制排序功能适用于需要依据自定义规则对数据进行排序的场景。无论是数据分析、报表生成还是数据可视化,当内置的排序选项无法满足特定需求时,通过定制排序功能,用户可以灵活地定义排序逻辑,确保数据按照预定的顺序展示,从而满足复杂的分析需求和数据展示要求。

1.2 功能简介

定制排序功能允许用户自定义排序规则,并通过编写Java类来定义实现这些规则。完成定义后,用户可以将编译后的类文件部署指定位置,通过报表配置选择该排序规则,实现对数据的定制化排序。

2. 操作步骤

1)在本地的产品安装目录“......\vividime Z-Suite\vividime\product”下新建一个定制排序的Java文件,命名为CustomizedSort4.java,定义如下排序规则。

import java.util.*;

 

public class CustomizedSort4 implements Comparator<String> {

  /**

   * Constructor.

   */

  public CustomizedSort4() {

     arr = new ArrayList<String>();

     arr.add("Ohio");

     arr.add("Illinois");

     arr.add("Wisconsin");

     arr.add("Missouri");

     arr.add("Iowa");

  }

 

  @Override

  public int compare(String o1, String o2) {

     int idx1 = arr.indexOf(o1);

     int idx2 = arr.indexOf(o2);

     return idx1 - idx2;

  }

 

  private List<String> arr;

}

2)将CustomizedSort4.java文件编译成CustomizedSort4.class文件。

a)先设置环境变量,不同的操作系统书写方式不同。

Windows:set classpath=.;D:\ZS9422\vividime Z-Suite\vividime\product\product.jar

dataprocess_customsort_environmentvariablesettings_zoom49

Linux、MacOS:export classpath=.:D:/ZS9422/vividime Z-Suite/vividime/product/product.jar

说明:

不同的系统的目录分隔符不同,Windows用“;”,Linux、MacOS系统用“:”。

b)在当前路径下执行以下命令生成CustomizedSort4.class文件。

javac CustomizedSort4.java

dataprocess_customsort_customizedsort4class

3)根据上一步CustomizedSort4.class文件存放的位置,配置定制类读取路径。

方式一(推荐):

生成的CustomizedSort4.class文件后存放于产品安装目录“......\vividime Z-Suite\tomcat\webapps\bi\WEB-INF\classes”即可。

方式二:

生成的CustomizedSort4.class文件后存放于任意目录。

添加CustomizedSort4.class文件到CLASSPATH,不同的操作系统所使用的文件不同。

Windows:请将CustomizedSort4.class文件所在路径添加到产品 “..\tomcat\bin \setclasspath.bat”的CLASSPATH中。

Linux/MacOS:请将CustomizedSort4.class文件所在路径添加到产品 “..\tomcat\bin \setclasspath.sh”的CLASSPATH中。

4)配置完成后,重启BI服务器。若配置了热加载目录,也可以不用重启BI服务器,参考热加载章节。

5)新建报表,绑定数据字段,下拉选择【更多排序 > 定制排序】。

dataprocess_customsort5

6)输入定义好的.class类文件名“CustomizedSort4”,即可使用定义好的排序规则完成定制排序,结果如下。

dataprocess_customsort6

可以看到,定制排序结果和定义的规则保持一致。