参数监听类介绍
u 背景说明:
参数监听类用于参数模板提交后传递给报表前对参数做业务处理的类,可以在此类中对参数进行增删、判断访问报表的权限、还可以对参数值进行保存和读取,从而实现查询条件的保存等功能。
参数监听类必须继承润乾报表提供的参数监听抽象类: com.raqsoft.report.usermodel.input. AbstractParamProcessor
请看如下代码示例:
u 代码示例:
package api;
import com.raqsoft.report.usermodel.input.*;
public class MyParamProcessor extends AbstractParamProcessor{
public void process() throws Exception {
//…… //主体代码,进行参数预处理
}
}
参考文件: MyParamProcessor.java
获取系统数据库连接
u 背景说明:
在参数监听类里,需要对参数进行业务处理,例如保存参数值或者读取之前保存的参数值,如果参数值存在数据库中,此时需要访问数据库,因此需要调用API接口获得系统数据库连接。
u 代码示例:
//获得系统默认数据源的连接对象,其中context为监听类固有的变量
Connection con=context.getConnectionFactory(context.getDefDataSourceName()).getConnection();
String dataSource=……; //指定数据源名称
Connection con=context.getConnectionFactory(dataSource).getConnection(); //获得指定数据源的连接对象
参考文件: MyParamProcessor.java
获得/修改/追加传入的参数
u 背景说明:
参数监听类里,可以获得前端传入的参数值并保存,也可以把保存的参数值取出来添加到当前参数池中,因此,需要调用API接口获取参数、追加、修改参数
u 代码示例:
//参数监听类里有一个固有变量params,存放了前端提交的所有参数,private Hashtable params;通过该变量可以获取所有参数的名称和参数值。
Enumeration paramNames=params.keys(); //获得参数名集合
while(paramNames.hasMoreElements()){
Object o=paramNames.nextElement();
if(o==null) continue;
String paramValue=getParamValue((String)o); //获得参数值
//…… //主体代码,例如保存参数值等
}
putParam("arg1","value"); //追加或者修改参数值
获取session、application等信息
u 背景说明:
参数监听类里,有可能需要到用户的session里把用户身份有关的信息读出来,作为参数追加到当前的参数池中,从而在报表中实现用户权限的控制。同理,也可能把application里存放的一些全局变量取出来传递给报表。
u 代码示例:
Object o=session.getValue("userId"); //session是参数监听类的固有变量,可以直接引用
if(o!=null){
putParam("userId",(String)o);
}