报表生成类接口
通过报表设计器设计的报表定义文件,需要通过报表引擎解析后才能生成最终的报表。这个报表生成的过程要调用报表生成类接口。
1 使用步骤
所有报表的生成都需要访问报表的三个核心API接口,具体步骤如下:
1.调用报表引擎的com.neusoft.report.engine.ReportManager接口,该类是用来获取报表引擎的工厂类;
2.调用报表引擎的com.neusoft.report.engine.ReportEngine接口,来生成报表的实例;
3.调用报表的实例对象com.neusoft.report.engine.Report接口,用于报表的导出、打印和持久化。
以上3个核心接口的类图如下图所示:
下面的代码片段说明了如何将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 参考指南
无