1. 概述编辑
1.1 应用场景
在设计器中可以通过对参数界面的设计来控制参数的显示形式,如参数界面的布局、背景、显示方式等。那如何在程序中控制参数的相关属性呢?,如下图所示,修改参数面板的背景为绿色,并且居中显示。
1.2 实现原理
FineReport 中通过 ReportParameterAttr 类来实现。以下具体介绍该类的使用方法。
1)读取报表参数属性 ReportParameterAttr
若已经读取了一个模板并将其保存为 WorkBook 对象,如下
WorkBook workbook = (WorkBook) TemplateWorkBookIO.readTemplateWorkBook("//doc//Primary//Parameter//Parameter.cpt");
就可以读取该 WorkBook 对象的参数属性,从而控制报表参数属性。
获取 WorkBook 工作薄的参数属性 ReportParameterAttr
ReportParameterAttr paraAttr = workbook.getReportParameterAttr();
2)调整参数界面的布局
/* 参数界面的布局
* 0 : 靠左
* 1 :居中
* 2 : 靠右
*/
paraAttr.setAlign(1);
3)设置参数背景
/*
* 设置参数界面背景
* ColorBackground :颜色背景
* GradientBackground :渐变色背景
* ImageBackground :图片背景
* PatternBackground :图案背景
* TextureBackground :纹理背景
*/
Background background = ColorBackground.getInstance(new Color(0, 255, 255));
paraAttr.setBackground(background);
4)重新设置参数属性
改变了一系列参数属性后,需要将改变后的 ReportParameterAttr 重新添加至 WorkBook 中
//重新设置参数属性,导出最终结果 workbook.setReportParameterAttr(paraAttr);
2. 示例编辑
以下示例读取内置模板 Parameter.cpt 修改参数面板样式后,将结果导出成 cpt 文件。
2.1 准备编译环境
编译程序前,需先创建一个 Java 工程环境,并且需要一个 Java 编辑器,如 Eclipse 或 idea 。
在编辑器工程中导入 FineReport 工程 JAR 包。包括用户自己报表工程
%FR_HOME%/lib下的所有的包,
%FR_HOME%/server/lib 下的所有包,
%FR_HOME%/webapps/webroot/WEB-INF/lib下的所有包,
还要引入 JDK 下的 tools.jar。详细操作可参考:编译Java程序
2.2 编写 Java 程序
在编辑器中编写 Java 程序 SetParameterWindow.java,即读取内置模板 Parameter.cpt 后修改参数面板样式后,将结果导出成 cpt 文件。完整代码可参见:
注:用户使用时,注意将示例代码中的工程路径、模板名称和导出路径替换为用户自己工程下的。
2.3 编译 Java 文件
Java 程序编写完成后,在编译器中编译 SetParameterWindow.java ,编译通过后,就会在代码中导出路径的文件夹下生成修改过的新文件 newParameter.cpt,这样就实现了读取模板后修改参数面板属性后导出。
打开生成的模板,在浏览器端预览模板,就会看到参数界面背景色为绿色且居中显示。如下图所示: