第1章 问题描述
在对UniEAP Report进行二次开发扩展时,有时会遇到一种需求,需要针对一些报表定义在运行时进行一些特定的二次开发处理,且对哪些特定报表进行何种的计算处理是不适合写死在二次开发代码中的。对此,可以使用本文介绍的UniEAP Report自定义属性方法加以解决。
第2章 解决办法
2.1 自定义属性简介
UniEAP Report在4.5版本以后提供了自定义属性和JS函数体功能,可以在报表定义时嵌入若干个(目前支持1 - 5个)所需的自定义属性,这些属性的值在可以报表运行的各个阶段,包括二次开发实现中,通过调用ReportEntity.getProperty方法获取。(ReportEntity对象可以通过API参数,或使用报表管理API传入报表ID获取,具体参见二次开发文档)
2.2 使用方法
2.2.1 属性值的设置
如果报表设计器中配置了使用自定义属性,可以在报表设计器报表属性页的最下端找到它。用户可以在其中输入包括一般报表公式内的任意内容。(非公式值的使用范围更大,如果使用公式则该属性值只能在报表生成过程的某些阶段才有效)
2.2.2 自定义属性配置
系统内提供了最多5个自定义属性供使用,用户可以对报表设计器进行配置,控制这些自定义属性的使用及显示。
配置位于设计器com.neusoft.unieap.workshop.report.editor插件的resource/property/ 目录下,文件名为CustomProperty.yaml,可以使用文本编辑器打开编辑(需要使用UTF-8编码)。文件配置项及描述如下:
- propertiesCount : 数值0 – 5。控制扩展属性的显示个数,0为不显示。
- customLabel1 – customLabel5: 任意字符串。自定义属性名标签,用于各个属性的名称显示,不填写时会显示为默认的”属性n”。
2.2.3 自定义属性的使用
设置了自定义属性的报表可以在运行期通过ReportEntity.getProperty获取自定义属性值(如果使用了公式则只能是报表实例对象)。5个属性分别对应属性名 CustomProperty1 – CustomProperty5,可以在ReportEntity对应常量值中找到。获取的值全部为字符串类型的输入值,用户使用时需要自行将其解析为自己所需的数据值。