报表生成类接口

通过报表设计器设计的报表定义文件,需要通过报表引擎解析后才能生成最终的报表。这个报表生成的过程要调用报表生成类接口。

1 使用步骤

所有报表的生成都需要访问报表的三个核心API接口,具体步骤如下:

1.调用报表引擎的com.neusoft.report.engine.ReportManager接口,该类是用来获取报表引擎的工厂类;

2.调用报表引擎的com.neusoft.report.engine.ReportEngine接口,来生成报表的实例;

3.调用报表的实例对象com.neusoft.report.engine.Report接口,用于报表的导出、打印和持久化。

以上3个核心接口的类图如下图所示:

1

下面的代码片段说明了如何将ID为“a1”的报表导出到Excel文件的过程:

String reportId = "a1";
ReportEngine engine = ReportManager.create();
Report report = engine.createReport(reportId);
String filename = "c:\\reportTest.xls";
report.exportToExcel(filename);

2 ReportManager接口

2.1 简介

ReportManager是生成报表的入口,封装了报表引擎的实现类。ReportManager提供了报表引擎初始化的静态方法,这些方法可以设置UniEAP Report配置文件和License文件,将这些文件放到统一的位置进行管理可以方便报表文件的部署;创建引擎的静态方法,返回ReportEngine实例;提供了用来获取应用路径信息的方法,包括应用的本地路径、Context路径以及UniEAP Report中用来获取图片或文件的路径。

2.2 使用说明

2.2.1 引擎初始化

通过调用ReportManager接口的public static void initiate(Map env)方法对报表引擎进行初始化,仅在初始化后报表引擎才是可用的。参数Map env中需要传入的参数的常量定义如下:

表格 1 ReportManager接口常量定义

常量含义 常量名称
工程路径 PROJECT_PATH
引擎配置路径 CONFIG_PATH
License 路径 LICENSE_PATH
License 文件名 LICENSE_FILE_NAME

2.2.2 创建引擎

通过调用ReportManager接口的public static ReportEngine create()方法即可创建报表引擎,返回一个ReportEngine对象。

2.2.3 获取和配置应用路径

获取配置路径方法如下:

  • 获取配置路径方法:public static String getConfigPath()。

    工程路径以及License路径等获取方法与此类似。

3 ReportEngine接口

3.1 简介

ReportEngine接口用来创建报表的实例,该接口提供了多种创建方式的原型方法,可根据不同的条件生成报表。

3.2 使用说明

ReportEngine接口生成报表有以下方法:

  • 传入ID来生成报表:public Report createReport(String rid);

  • 传入ID及报表参数来生成报表:public Report createReport(String rid, Map parameters);

  • 传入ID、参数及报表上下文来生成报表:public Report createReport(String rid, Map parameters, Map context)。

    参数Map context中使用的常量在com.neusoft.report.engine.formula.variable. Variant类中定义,参见“5.2.2节 为系统变量赋值步骤”。

    【注意】Report3.2.1之后的版本,在创建报表时新增了HttpServletRequest对象,这个变量可以在扩展系统变量时使用,降低了扩展系统变量的难度。由于前两个createReport接口中不包含Map context参数,如果在扩展系统变量时使用了HttpServletRequest对象,并未使用带Map context参数的createReport方法,会导致实现的系统变量取不到值,因此不再推荐使用。

    Report3.2.1之前的版本,报表对象缓存策略是默认全部报表都进行缓存,现增加报表缓存接口,可由您自定义缓存策略,缓存报表方法如下:

  • 传入报表实例来缓存报表对象:public void cacheReport(Report report);

4 Report接口

4.1 简介

Report接口负责生成报表实例,提供了导出Html、XLS、PDF、Rtf等格式文件的方法,还包括报表的打印、持久化到数据库的方法。

4.2 使用说明

4.2.1 报表的导出

将报表结果导出为各种文件格式的方法如下:

  • 导出Html方法

    • public HtmlExportResult exportToHtml(),无参数导出Html;

    • public HtmlExportResult exportToHtml(Map context),根据报表导出上下文导Html。

  • 导出XLS方法

    • public void exportToExcel(File file),导出报表为XLS文件;

    • public void exportToExcel(OutputStream output),导出报表为XLS流。

  • 导出PDF方法

    • public void exportToPdf (File file),导出报表为PDF文件;

    • public void exportToPdf (OutputStream output),导出报表为PDF流。

    还可以将报表结果导出为CSV、Rtf等文件格式,导出方法与上面的几种方式类似。

4.2.2 报表的打印

UniEAP Report提供两种打印方式:

  • 客户端打印:public void print(OutputStream output);

  • 服务器端打印:public void serverPrint()。

4.2.3 将报表结果持久化到数据库

调用public String save(String parentId, String reportId, String caption, String creater)方法可把报表结果持久化到数据库中,请参阅“2.6节参考指南”以了解此方法中的参数含义。

4.2.4 获得报表类型

调用public int getType()方法可获得报表类型,报表类型包括报表、查询、填报。

5 ParamLayout接口

5.1 简介

通过ParamLayout接口可以控制报表生成的参数界面的布局方式。

5.2 使用说明

ParamLayout接口提供以下方法:

  • public String getParaHtml(Map paramMap): 生成参数界面的Html代码;

  • public String makeItem(ParameterBean param): 为了在排版时复用;

    【注意】这里实现的布局控制仅针对相关参数控件,“确定”和“取消”按钮不包括在其中。如果需要控制按钮布局,请参考参数界面相关的jsp。

6 参考指南

results matching ""

    No results matching ""

    results matching ""

      No results matching ""