润乾报表V5自定义函数中当有多个参数时如何获取
2017-08-17 11:55
218 查看
当润乾报表V5自带的函数不能满足实际需求,或所需函数本身就不存在时,可以采用自定义函数来进行扩展,这个基本都比较清楚。
自定义函数开发的步骤也可以参考设计器自带开发教程的自定义函数章节或论坛搜索“自定义函数”。
本文将主要借助代码说明当往自定义函数内传递多个参数时,我们应该如何来获取。
注:教程中仅有获取一个参数的方法,和多个时还有所区别,但又没有相关说明,这里也可以作为一个补充。
下面我们直接贴出多参数时的获取代码(有注释说明):
importcom.raqsoft.common.MessageManager;
importcom.raqsoft.common.ReportError;
importcom.raqsoft.report.model.expression.Expression;
importcom.raqsoft.report.model.expression.Function;
importcom.raqsoft.report.model.expression.Variant2;
importcom.raqsoft.report.resources.EngineMessage;
importcom.raqsoft.report.usermodel.Context;
public
class SignFunc extends Function {
public Object calculate(Context ctx) {
if (this.param ==
null || this.param.getSubSize() ==0) {
//判断参数是否为空
MessageManager mm = EngineMessage.get();
throw
new ReportError("encrypt:" + mm.getMessage("function.invalidParam"));
}
//获取第一个参数的表达式,从1开始
Expression param1=(Expression)this.param.getSub(1).getLeafExpression();
//算出第一个参数值
Object result1 = Variant2.getValue(param1.calculate(ctx),false);
/*
*当存在多个时,参考以下代码。 this.param.getSubSize()可以获取到参数的总个数,可以将下面的示例改为遍历取值
**/
//获取第二个参数的表达式
Expression param2=(Expression)this.param.getSub(2).getLeafExpression();
//算出第二个参数值
Object result2 = Variant2.getValue(param2.calculate(ctx),false);
/*
*.....,当多余2个时,按照上面代码以此类推,可定义为遍历方式
**/
return result1.toString();
}
}
自定义函数开发的步骤也可以参考设计器自带开发教程的自定义函数章节或论坛搜索“自定义函数”。
本文将主要借助代码说明当往自定义函数内传递多个参数时,我们应该如何来获取。
注:教程中仅有获取一个参数的方法,和多个时还有所区别,但又没有相关说明,这里也可以作为一个补充。
下面我们直接贴出多参数时的获取代码(有注释说明):
importcom.raqsoft.common.MessageManager;
importcom.raqsoft.common.ReportError;
importcom.raqsoft.report.model.expression.Expression;
importcom.raqsoft.report.model.expression.Function;
importcom.raqsoft.report.model.expression.Variant2;
importcom.raqsoft.report.resources.EngineMessage;
importcom.raqsoft.report.usermodel.Context;
public
class SignFunc extends Function {
public Object calculate(Context ctx) {
if (this.param ==
null || this.param.getSubSize() ==0) {
//判断参数是否为空
MessageManager mm = EngineMessage.get();
throw
new ReportError("encrypt:" + mm.getMessage("function.invalidParam"));
}
//获取第一个参数的表达式,从1开始
Expression param1=(Expression)this.param.getSub(1).getLeafExpression();
//算出第一个参数值
Object result1 = Variant2.getValue(param1.calculate(ctx),false);
/*
*当存在多个时,参考以下代码。 this.param.getSubSize()可以获取到参数的总个数,可以将下面的示例改为遍历取值
**/
//获取第二个参数的表达式
Expression param2=(Expression)this.param.getSub(2).getLeafExpression();
//算出第二个参数值
Object result2 = Variant2.getValue(param2.calculate(ctx),false);
/*
*.....,当多余2个时,按照上面代码以此类推,可定义为遍历方式
**/
return result1.toString();
}
}
相关文章推荐
- Matlab中如何将(自定义)函数作为参数传递给另一个函数
- 反射如何获取函数的参数名
- iOS自定义警告框 OC 如何写可变参数的函数
- 如何获取函数的变长参数(va_list, va_start, va_arg, va_end)
- 如何获取window.location.search中每一个查询参数函数的封装
- JS 自定义函数时,如何定义参数默认值
- c++ 可变参数自定义print c/c++如何写一个带可变参数的函数
- Django 中自定义 tag 如何获取变量参数的值
- Matlab中如何将(自定义)函数作为参数传递给另一个函数
- 如何在Matlab中获取函数参数的数目?
- 如何获取DLL组件中函数及参数?
- Matlab中如何将(自定义)函数作为参数传递给另一个函数
- 如何获取函数的可变参数(va_list, va_start, va_arg, va_end)
- 如何获取访问web服务的客户端IP?客户端调用web服务时,对于有参函数能输入参数?
- Django 中自定义 tag 如何获取变量参数的值
- Matlab中如何将(自定义)函数作为参数传递给另一个函数
- JS 自定义函数时,如何定义参数默认值
- Django 中自定义 tag 如何获取变量参数的值
- func_get_args()实际参数获取函数
- SQL SERVER 自定义函数参数数量对调用时参数数量的影响