数据集参数
数据集如何引用和登记报表参数:参数类型、集合元素类型、默认值、自动提取,以及参数在各数据集类型中的写法。
概述
数据集本身不定义独立的参数,而是引用「报表参数」。报表参数在报表设计器的「报表参数」对话框中集中声明,运行时由查询表单、URL 或调用方传入值,引擎只会把已声明的报表参数交给数据集。
各类型数据集引用参数的方式:
| 数据集类型 | 引用方式 |
|---|---|
| SQL 数据集 | SQL 中写 $参数名、${表达式}、#{脚本},见 SQL 参数与动态语法 |
| 存储过程 | {call 过程名($参数名, ...)} |
| API 数据集 | 请求URL、参数、请求头中写 $参数名 或 ${表达式} |
| 派生数据集脚本 | 脚本中用 $参数名 |
| 后处理脚本与计算字段 | 用 $参数名 |
功能入口
- 「报表参数」对话框:设计器中打开,点击「添加参数」新增,表格中设置参数名称、参数类型、默认值模式、默认值、备注说明。
- SQL 数据集编辑对话框底部:「报表参数」按钮,与「从SQL提取参数到报表参数」按钮。
操作步骤
- 在数据集中写好参数引用。
- 点击「从SQL提取参数到报表参数」,或直接「数据预览」、保存,系统会把 SQL 中引用的参数自动登记为报表参数。API 数据集保存和预览时同样登记
${$x}引用。 - 在「报表参数」对话框中确认每个参数的「参数类型」,并设置默认值。
- 在查询表单中为参数绑定控件,参数联动的做法见 查询表单 与 报表参数。
属性说明
参数类型
| 界面文案 | 类型值 | 说明 |
|---|---|---|
| 字符串 | String |
文本 |
| 数值 | Number |
数字 |
| 布尔值 | Boolean |
真假 |
| 日期 | Date |
仅日期 |
| 日期时间 | DateTime |
含时间 |
| 集合 | List |
多个值,与 IN (${$名}) 配合 |
集合参数还需选择元素类型:「文本元素」或「数值元素」。手写的模板里若含日期等其他元素类型,编辑时会保留原值。
默认值
默认值有三种模式:固定值、表达式、日期预设。日期预设仅对日期类参数出现,如「当天」「本月月初」。参数在公共数据集里同样有类型与默认值,见 公共数据集。
参数取值来源
运行时引擎只会把已声明的报表参数交给数据集,因此数据集中引用的参数必须先在「报表参数」中登记。
示例
SQL 数据集:
SELECT visit_id, dept_code, fee
FROM outpatient_visit
WHERE visit_date >= $startDate
AND visit_date < $endDate
AND dept_code IN (${$deptCodes})
提取后得到三个参数,设置如下:
| 参数名称 | 类型 | 默认值 |
|---|---|---|
startDate |
日期 | 日期预设「本月月初」 |
endDate |
日期 | 表达式 now() |
deptCodes |
集合(文本元素) | 空 |
endDate 的默认表达式使用了内置函数,见 内置函数。
注意事项
注意:自动提取只登记参数,类型需要自己确认。类型选错(如把多选的科室设为字符串)会让
IN (${$deptCodes})无法展开。
注意:
${名}缺少$时取不到值,引用报表参数要写成$名。
提示:日期区间的右端用小于号(
< $endDate),并让默认值取「次日零点」,避免漏掉结束日当天的记录。