方法与接口说明- 报表计算客户化-报表展现标签与API
目录
本节目录收起
  • 接口名
  • 接口说明
  • 监听类作用对象与报表运算过程的关系
  • 接口方法
  • 重要变量
  • 方法与接口说明

    接口名

    报表计算监听类:com.runqianapp.view.listener.ViewReportListener

    接口说明

    ViewReportListener是一个抽象类,开发者可以通过继承该监听类并实现其相应方法,完成报表计算过程中的客户化处理。

    例如:

    在监听类中,可以使用session对象、request对象、response对象、报表运行环境对象、报表计算前后报表对象等等。具体请查看下面的“方法说明”和“重要变量”。

    监听类作用对象与报表运算过程的关系

    报表计算监听类中一共提供了报表计算前、报表计算后、报表结果分页后、报表打印导出前四个监听方法,用于对报表计算过程的不同阶段进行监听处理。

    例如,用户对一个报表的使用过程如下:

    (1)客户端发起报表请求 -> (2)服务器端报表引擎对报表进行计算 -> (3)生成计算后报表结果 -> (4)如果报表设置了分页则进一步生成分页后的报表结果 -> (5)报表结果传回客户端展现 -> (6)客户端对当前展现报表发起打印导出请求 -> (7)报表引擎执行对报表的导出计算 -> (8)打印导出请求的报表结果发回客户端

    监听类的作用对象如下:

    接口方法

    BeforeCalc()

    语法:public IReport BeforeCalc(IReport ir,Context ctx,Map<String,Object> params)

    参数说明:

    • IReport                     报表模版对象
    • Context                     报表运行的上下文环境对象
    • Map<String,Object> params    可以通过该参数获取session request response

    返回值:处理后的报表模版对象

    功能说明:报表计算前监听接口BeforeCalc(),用于在报表计算前进行自己的业务处理,或者根据需要对报表模板进行修改。例如动态改变报表的数据源连接、增删改报表的参数和宏、修改报表属性、修改单元格属性等。

    AfterClac()

    语法:public IReport AfterClac(IReport ir,Context ctx,Map<String,Object> params)

    参数说明:

    • IReport                      计算后的报表对象
    • Context                       报表运行的上下文环境对象
    • Map<String,Object> params    可以通过该参数获取sessionrequest

    返回值:处理后的的报表对象

    功能说明:报表计算后监听接口AfterClac(),用于在报表计算后、分页前进行自己的业务处理,或者根据需要对分页前的报表运算结果进行修改。例如对运算结果中内容相同的相邻单元格进行合并,实现动态合并单元格。

    AfterPaging()

    语法:public IReport[] AfterPaging(IReport[] irs,Context ctx,Map<String,Object> params)

    参数说明:

    • IReport[]                    分页后的 IReport 对象数组
    • Context                      报表运行的上下文环境对象
    • Map<String,Object> params    可以通过该参数获取sessionrequest

    返回值:分页后的IRerport对象组

    功能说明:报表结果分页后接口AfterPaging(),用于在报表结果分页后展现前进行自己的业务处理,或者根据需要对分页后IReport组进行修改。

    BeforeExport()

    语法:public IReport BeforeExport(IReport ir,Context ctx,Map<String,Object> params)

    参数说明:

    • IReport                      计算后的报表结果对象
    • Context                      报表运行的上下文环境对象
    • Map<String,Object> params    可以通过该参数获取sessionrequest

    返回值:计算后的报表对象

    功能说明:报表结果打印、导出前监听接口BeforeExport(),用于在报表展现后、打印导出前进行自己的业务处理,实现展现与导出、打印结果不一样的需求。例如导出excel时生成目录页。 

    重要变量

    使用报表计算监听类,还需要了解以下参数的作用。

    IReport

    该参数表示报表对象。

    在监听类中通过该对象可以获取和设置报表的属性、单元格属性等。

    IReport的详细介绍请参考:IReport

    Context

    该参数表示报表运算时的上下文环境。

    在监听类中通过该对象可以获取或者设置报表计算环境中的数据源、参数与宏的值等。

    Context的详细介绍请参考:Context

    Map<String,Object> params

    在报表监听类中,BeforeCalc()方法的params参数中封装了sessionrequestresponse对象。其它三个方法的params参数中封装了sessionrequest对象。

    开发者可以通过该参数的get方法获取相应对象,在客户化处理的过程中进行使用。

    例如下面代码,是从params中获取session对象:

    HttpSession session=(HttpSession)params.get("session");

    例如下面代码,是从params中获取request对象:

    HttpServletRequest request=(HttpServletRequest)params.get("request");

    response对象的获取方式可参考上面代码。