1. 概述
1.1 版本
FineReport 版本 | 插件版本 | 功能变动 |
---|---|---|
10.0.18 | V1.7 | 支持自定义参数功能:「参数设置」 |
V2.0 | 允许定义值相同的参数,但是会给出提醒,详情参见本文 4.1 节 |
1.2 应用场景
在实际场景中,用户难免会需要应对一些变化,就需要去编写一些变量。只通过语句编写参数变量会比较复杂,而本章将介绍 ETL 作业中快捷高效的自定义参数的方法。
1.3 功能简介
1)用户可以自定义「时间参数」和「常量参数」,定义成功后可以在其他节点中引用参数
2)当参数类型是字符串时:
若参数值是单个值,可以直接输入文本,例如参数名称为 a,值为:苹果,使用时需要加单引号:'${a}'
若参数值是多个值,参数值需要用单引号和逗号分开,例如参数名称为 a ,值为:'苹果','香蕉',使用时不需要加单引号:${a}
3)参数名和参数值中不允许包含${}
4)用户设置的参数只归属于当前任务
2. 自定义时间参数
自定义时间参数需要基于系统内置参数 ${cyctime},通过对 ${cyctime} 加减实现时间的自定义。
例如要自定义时间参数 para_time,默认值为 ${cyctime} 所在年份的前年,如下图所示:
yyyy 表示 4 位的年份,取值为 ${cyctime} 的年份。
yy 表示 2 位的年份,取值为 ${cyctime} 的年份。
mm 表示月,取值为 ${cyctime} 的月份。
dd 表示天,取值为 ${cyctime} 的天。
hh 表示小时(24小时制),取值为 ${cyctime} 的小时。
mi 表示分钟,取值为 ${cyctime} 的分钟。
ss 表示秒,取值为 ${cyctime} 的秒。
输入方式 | 示例(假设${cyctime}的值为 2021-09-09 20:45:50) | |
---|---|---|
后 N 年 | yyyy+N | 若N为 1,则值为 2022 |
前 N 年 | yyyy-N | 若N为 1,则值为 2020 |
后 N 月 | yyyymm+N | 若N为 6,则值为 202203 |
前 N 月 | yyyymm-N | 若N为 6,则值为 202103 |
后 N 周 | yyyymmdd+7*N | 若N为 1,则值为 20210916 |
前 N 周 | yyyymmdd-7*N | 若N为 1,则值为 20210902 |
后 N 天,年月日加 N 天 | yyyymmdd+N | 若N为 1,则值为 20210910 |
前 N 天,年月日减 N 天 | yyyymmdd-N | 若N为 1,则值为 20210908 |
前 N 小时 | yyyymmdd hh:mi:ss-N/24 | 若N为 1,则值为 20210909 19:45:50 |
后 N 小时 | yyyymmdd hh:mi:ss+N/24 | 若N为 1,则值为 20210909 21:45:50 |
前 N 分钟 | yyyy-mm-dd hh:mi:ss-N/24/60 | 若N为 5,则值为 2021-09-09 20:40:50 |
后 N 分钟 | yyyy-mm-dd hh:mi:ss+N/24/60 | 若N为 5,则值为 2021-09-09 20:50:50 |
前 N 秒 | yyyy-mm-dd hh:mi:ss-N/24/60/60 | 若N为 5,则值为 2021-09-09 20:45:45 |
定义时间参数的示例如下:
1)自定义一个 para_time 参数,默认值为 yyyy-mm-1(意为取值为 ${cyctime} 的前一个月)。如下图所示:
2)在「离线同步」节点中使用该参数,如下图所示:
输入 SQL 语句,只取出「mytime」日期字段中大于参数的数据。
点击数据预览,取出了运行前一个月内的数据。如下图所示:
3. 自定义常量参数
除了可以自定义时间参数,用户还可以自定义常量参数,可以是数字或文本等。
常量参数支持设置的类型有:「字符串」、「整型」、「双精度型」、「布尔型」
定义常量参数的示例如下:
1)定义一个参数「para_a」,默认参数值有多个,我们用「,」将'苹果'和'香蕉'分开,如下图所示:
2)在其他节点的 SQL 语句中可以使用该参数,比如离线同步节点中只取出苹果和香蕉的数据,如下图所示: