目录

方法与接口说明

接口名

报表计算监听类: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对象的获取方式可参考上面代码。