自定义函数
教学视频
说明
只需要两步,就可以自定义自己的函数在报表中使用。
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实现类的完整类路径添加到这个文件当中,这样就完成了自定义函数类的注册工作,如下图所示:
最后重启应用,就可以使用自定义的函数。