SuperFunction接口
接口名
普通函数抽象类接口:com.runqian.report4.model.expression.SuperFunction
接口说明
SuperFunction是所有普通函数的基类,它有抽象的calculate()方法需要用户实现。自定义函数处理逻辑,一般包括传入参数,然后根据业务逻辑,对传入的参数进行各种运算,最后返回结果值对象。在此类中常见的处理方法有:接受函数的传入参数表达式,判断参数个数,计算参数表达式,获取或者设置数据源、参数与宏值,数据集等,进行业务逻辑运算,返回运算结果值。
开发者创建的自定义函数类必须继承SuperFunction,并在calculate()方法中实现客户化的业务处理,最后将结果返回。
报表中使用了自定义函数时,系统会自动调用自定义函数类的calculate()方法,得到该函数的处理结果。
接口方法
calculate()
语法:public abstract java.lang.Object calculate(Context ctx, boolean inputValue)
参数说明:
- ctx - 报表运行的上下文环境对象,为方法中的固定参数,不能改动,Context对象的具体作用和详细介绍,可查看:【参考:API说明 -> Context】。
- inputValue - 是否来自填报数据,为方法中的固定参数,不能改动
功能说明:在此方法中实现需要的业务处理
返回值:自定义函数的处理结果
重要变量
FunctionParam
使用自定义函数时,经常需要传入一些参数,并且在calculate()方法中需要获取这些参数,然后根据参数值的具体情况完成相应的业务处理。
SuperFunction类中专门封装了一个参数对象FunctionParam,FunctionParam中封装了获取参数的各种方法,在calculate()方法中可以直接使用该对象来方便地获取需要的参数。
关于FunctionParam对象的详细说明,请参考:FunctionParam类。
关于在自定义函数中如何使用FunctionParam获取参数并对参数进行业务处理的具体场景示例,请参考:如何处理参数。