参数
外部参数在运行报表时从外部传递,可用作数据集中的条件。每个报表带区都可以使用全部的外部参数,因此外部参数在模板中可像数据集字段一样直接使用。在数据集的字段名与参数名相同时,数据集字段值优先,报表将使用数据集字段值。
外部参数可以由调用代码在通过 API 运行报表时传入。另外,当用户运行报表时,也会展示一个对话框,用来输入参数。后面这种情况需要在报表详情视图的 Parameters(参数) 标签页中定义外部参数。
点击 Create(新建) 后,展示 Report parameter(报表参数) 对话框。
输入参数属性
在 Properties(属性) 标签页,可以定义参数的属性:
-
Name - 参数名称,在运行报表时这个名称显示在参数输入表单中。
-
Alias(别名) - 用于在数据集中访问的参数别名。
-
Type - 参数类型。
-
Hidden - 定义是否对用户隐藏此参数。
-
Required? - 是否为必需参数。
-
Default value - 定义用户未选择值的情况下将使用的默认参数值。
参数类型可以是基本的 String、Number、Boolean 类型或者时间类型,另外,也支持 Enumeration(枚举)、Entity 或 List of entities(实体列表) 参数类型。根据所选择的类型不同,需要额外配置不同的字段:
如果选择 Entity(实体) 或 List of entities(实体列表) 类型:
-
Entity - 实体参数。
-
Entity selection view(实体选择视图) - 可选的视图标识符,用于选择实体实例。如果未指定视图,将使用通用的实体选择视图。
如果选择了 Enumeration(枚举) 类型:
-
Enumeration - 参数枚举类。
如果选择了时间类型(Date、Time 或 Date and time):
-
Default date(time) is current(默认日期(时间)为当前日期时间) - 是否将当前时间戳用作默认参数值。
参数转换
在 Transformation(转换) 标签页中可以定义处理参数的 Groovy 脚本,在报表使用参数之前先通过脚本处理。
Groovy 脚本应返回新的参数值。脚本中可以使用下列参数:
-
params
- 参数的 map,可以通过别名params
访问。 -
paramValue
- 用于访问参数当前值。 -
dataManager
-DataManager
类型的对象,提供 CRUD 功能。 -
metadata
-Metadata
类型的对象,提供对应用程序元数据的访问。 -
applicationContext
-org.springframework.context.ApplicationContext
类型的对象,提供对托管 bean 的访问。
示例:
return "%" + paramValue + "%"
还可以使用预定义的转换器为文本(String)参数添加通配符:
-
Starts with
, -
Ends with
, -
Contains
。
在 Validation(验证) 标签页中,可以使用 Groovy 脚本定义一些参数验证条件,请参阅下面的详细说明。
输入参数验证
可以验证输入参数和(或)定义参数交叉验证。
-
在 Validation(验证) 标签页中通过选中 Validate(验证) 复选框为每个参数启用参数验证。验证逻辑由 Groovy 脚本指定。脚本应检查参数值,如果值无效,则调用
invalid()
方法。此方法会向用户显示一条给定的警告信息,提示用户参数验证失败。脚本中可以使用下列参数:
-
value
- 用户输入的参数值。 -
applicationContext
-org.springframework.context.ApplicationContext
类型的对象,提供对托管 bean 的访问。 -
currentAuthentication
-io.jmix.core.security.CurrentAuthentication
类型的对象,关联当前认证用户。 -
dataManager
-DataManager
类型的对象,提供 CRUD 功能。 -
metadata
-Metadata
类型的对象,提供对应用程序元数据的访问。 -
invalid
- Groovy 闭包,在脚本内部调用会使验证失败。
-
-
通过选中 Parameters(参数) 标签页的 Cross parameters validation(多参数交叉验证) 部分的 Validate(验证) 复选框,可以启用参数交叉验证。验证逻辑由 Groovy 脚本指定。这个脚本应检查参数值之间是否合乎逻辑,检查不通过时调用
invalid()
方法。此方法将向用户显示一条给定的验证失败警告信息。除了上面列出的变量之外,
params
变量也会传递到脚本中以访问外部报表参数映射。