如何处理参数
参数的获取与处理
在产品中使用自定义函数时,可以传入参数,直接在函数名后面括号内写入参数即可:
- 调用自定义函数时传入参数的个数任意
- 传入的参数支持表达式
在自定义函数的calculate()方法中:
- 可以直接使用FunctionParam对象来获取传入参数的个数,获取某个具体的参数,以及对参数进行相应的业务处理,FunctionParam的详细介绍可参考:FunctionParam类
- 还可以使用calculate()方法自身传入的参数变量Context,来获取报表中的数据集、数据库连接、报表参数和宏等
下面通过一个简单示例,来具体说明自定义函数如何获取和处理参数。
示例
实现一个自定义函数,功能是调用函数时对传入的第一个参数值进行加密然后返回:
package com.api;
import com.runqian.report4.model.expression.SuperFunction;
import com.runqian.report4.usermodel.Context;
//自定义函数功能:接受传入的一个参数,对其进行加密后返回
public class SimFunction extends SuperFunction {
public Object calculate(Context ctx, booleanisInput) {
// 调用functionParam的方法获取第一个参数的值
String result =this.functionParam.getString(0);
// 对参数值进行加密,并返回加密后的结果
String value = com.runqian.base4.util.PwdUtils.encrypt(result);
return value;
}
}
更多自定义函数的应用示例,可进一步参考以下章节:场景示例。