自定义函数

教学视频

说明

只需要两步,就可以自定义自己的函数在报表中使用。

1.扩展com.basksoft.report.core.expression.function.Function类

在这个抽象类中需要实现的方法是下面三个:

public abstract String name();
public abstract String category();
public abstract String desc();

下面是uuid这个函数的实现源码:

package com.basksoft.report.core.expression.function.other;

import java.util.List;
import java.util.UUID;

import com.basksoft.report.core.expression.function.CategoryConstants;
import com.basksoft.report.core.expression.function.Function;
import com.basksoft.report.core.expression.model.data.ExpressionData;
import com.basksoft.report.core.expression.model.data.ObjectData;
import com.basksoft.report.core.runtime.build.ExecutionContext;

public class UuidFunction extends Function {

    @Override
    public ExpressionData<?> execute(List<Object> parameters, ExecutionContext context) {
        String uuid = UUID.randomUUID().toString();
        return new ObjectData(uuid);
    }

    @Override
    public String name() {
        return "uuid";
    }

    @Override
    public String category() {
        return CategoryConstants.OTHER_CATEGORY;
    }

    @Override
    public String desc() {
        return "语法:uuid()。<br>UUID是全球唯一识别码(Universally Unique Identifier)的缩写,该函数每次调用都会生成一个全球唯一的ID。";
    }
}

2.注册实现类

在项目源码根目录下创建一个名为META-INF的目录(如果没有的话),在META-INF目录下创建一个名为services的目录,在该目录下创建一个名为com.basksoft.report.core.expression.function.Function的文件,最后将com.basksoft.report.core.expression.function.Function实现类的完整类路径添加到这个文件当中,这样就完成了自定义函数类的注册工作,如下图所示:

image-20211129132425805

最后重启应用,就可以使用自定义的函数。

results matching ""

    No results matching ""