场景示例
示例1
在报表计算前,修改报表模板A1单元格的值为当前登录用户的ID:
public class VRListenerTest1 extends ViewReportListener { //自定义的报表计算监听类继承ViewReportListener
public IReport BeforeClac(IReport ir,Context ctx,Map<String,Object> params){//实现报表计算前监听方法
try{
HttpSession session=(HttpSession)params.get("session");//利用参数params获取session对象
String id=session.getAttribute("sys_UserID").toString(); //从session对象中获取当前登录用户ID
INormalCell cell = ir.getCell(1, (short) (1));//利用参数ir报表对象获取需报表模板的A1单元格
cell.setValue(id);//修改A1单元格的值
}catch(Exception e){
e.printStackTrace();
}
return ir;//返回修改后的报表对象
}
}
示例2
将运算后的报表结果中第一个单元格的内容修改为“A”:
public class VRListenerTest2 extends ViewReportListener {
public IReport AfterCalc(IReport ir,Context ctx,Map<String,Object> params){ //实现报表计算后监听方法
ir.getCell(1, (short)1).setValue("A"); //利用参数ir获取计算后的报表结果对象,并修改报表结果中A1单元格的值
return ir; //返回修改后的报表结果
}
}
示例3
将分页后的报表结果第二页的页码由“2”修改为“二”:
public class VRListenerTest3 extends ViewReportListener {
public IReport[] AfterPaging(IReport[] irs,Context ctx,Map<String,Object> params){//实现报表分页后监听方法
INormalCell imc=irs[1].getCell(9, (short)1);//利用参数irs获取第二页中显示页码的单元格
imc.setValue("二");//修改单元格页码
return irs;//返回修改后的IReport[]报表结果数组
}
}
示例4
在报表导出文件中第一个单元格的内容设置为“导出前新增内容”:
public class VRListenerTest4 extends ViewReportListener {
public IReport BeforeExport(IReport ir,Context ctx,Map<String,Object> params){//实现报表导出前监听方法
ir.getCell(1, (short)1).setValue("导出前新增内容");//利用ir参数将计算后报表结果的A1单元格的值进行修改
return ir;//返回修改后的报表结果,将使用此结果导出
}
}