目录

场景示例

示例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;//返回修改后的报表结果,将使用此结果导出

         }

    }