数据接入
大屏数据集(内置、SQL、API、CSV/Excel 导入、共享库)、组件数据绑定方式、页面变量与参数联动、刷新与实时推送。
概述
大屏组件的数字、文案和数据行都应来自数据集,而不是手打。数据接入分四步:在左栏「数据集」建立数据集;预览字段;把组件属性绑定到数据集字段;需要交互取数时,用「页面变量」和数据集参数把控件、联动与查询连起来。
功能入口
- 数据集:设计器左栏「数据集」页签,列表上方是「新建数据集」菜单。
- 页面变量:同一页签下方的「页面变量」,点击「编辑」打开「变量编辑」对话框。
- 共享数据集:系统菜单「大屏设计」>「共享数据集」。
- 组件绑定:选中组件 > 右栏「组件」>「内容设置」中可绑定的属性。
操作步骤
新建数据集
- 左栏「数据集」页签点击「新建数据集」,选类型:
| 菜单项 | 说明 |
|---|---|
| SQL 数据集 | 通过数据连接执行 SQL,连接见数据源配置 |
| API 数据集 | 调用 REST 接口,用 JSON 路径取结果 |
| 内置数据集 | 手工维护的固定数据,适合演示与小型静态数据 |
| 导入 CSV / Excel | 从本地文件生成内置数据集 |
| 从共享库插入 | 复制共享数据集库里的一条定义到本屏 |
- 在弹出的对话框填写并点击「确定」。数据集出现在列表里,双击可编辑。
- 在数据集行的菜单里选「数据预览」查看字段与行,「清空预览」清除预览缓存,「查看使用位置」看哪些组件、变量、蓝图引用了它。
编辑 SQL 数据集
- 「基础」页签填「数据集名称」,选「数据连接」,写 SQL。
- 需要限制取数时,填「查询行数限制」「查询超时(秒)」,留空使用全局配置;需要单独刷新节奏时填「刷新间隔(秒)」,留空跟随全局刷新。
- 在 SQL 中用
${$参数名}引用参数(表达式插值语法见数据集)。点击「报表参数」维护参数,或点击「从SQL提取参数到报表参数」自动生成。 - 「后处理脚本」可对整个查询结果做批量加工,「计算字段」页签添加派生字段。
- 点击「数据预览」确认取数正常,再点「确定」。
编辑 API 数据集
- 「基础」页签填「数据集名称」「请求URL」,选「请求方法」(GET 或 POST),选「认证方式」。
- 在「请求参数」「请求头」「请求体」页签补充请求内容;「响应配置」的「JSON Path」填如
$.data,留空使用整个响应体。 - 「高级设置」可设「连接超时(ms)」「读取超时(ms)」和「刷新间隔(秒)」。
导入 CSV / Excel
- 选「导入 CSV / Excel」并选文件,首行作为表头。
- 文件不能超过 10MB;源文件较大时只导入前若干行,提示里会说明。成功后生成以文件名命名的内置数据集。
把组件绑定到数据集
组件的文案、数值等可绑定属性有三种取值方式:
| 方式 | 说明 |
|---|---|
| 固定值 | 直接输入 |
| 数据集 | 选「数据集」和「字段」,再选「取值策略」,右侧「预览」显示当前值 |
| 表达式 | 输入 dataset("数据集名").函数("字段"),例如 dataset("科室就诊").sum("visits") |
「取值策略」可选:首条、末条、求和、平均、计数、最小值、最大值。表达式支持的函数为 field、first、last、sum、avg、count、min、max、rows,格式必须严格是 dataset("名称").函数("字段"),其他写法取不到值,会显示「缺省值」。
文本类属性里还可以写 {{变量名}},运行时替换为该变量的当前值;变量名只能由字母、数字、下划线、连字符组成,变量没有值时保持原样显示。
表格、排行、控件选项的「数据来源」另有「手工」「数据集」「表达式」三档,见指标卡、进度、排行与表格。图表在「图表配置」里选数据集,见图表组件。
定义页面变量
- 左栏「页面变量」点击「编辑」,在「变量编辑」对话框点击「新增变量」。
- 填变量名(例如
totalAmount),选计算方式:
| 计算方式 | 说明 |
|---|---|
| 内置计算 | 选数据集、字段和计算方式:首行值、末行值、求和、平均值、计数、最小值、最大值 |
| 表达式 | 安全表达式,可用 dataset('订单').size()、$$reportVars.变量名 等,例如 'ALL-' + $$reportVars.totalAmount |
- 没起名字的变量不会被保存,也不能被引用。
表达式使用受限解释器求值,只支持字面量、数组、标识符、成员访问、函数调用、一元与二元运算符、??、三元运算和括号,可用 Math、JSON、Number、String、Boolean、Array、Date、parseInt、parseFloat、isNaN、isFinite;不支持赋值、new、函数定义、模板串和正则字面量。表达式里 dataset(名称) 提供 field、first、last、sum、avg、count、size、min、max、rows,rawDataset(名称) 返回行数组。
让变量驱动数据集重新查询
- 在 SQL 数据集里用
${$region}引用参数region,并在「报表参数」里定义同名参数与默认值。 - 建同名页面变量
region,用控件、联动或地图下钻给它赋值。 - 变量被显式设值时,引用该参数的数据集会重新取数;变量为空时回落到参数默认值。没有同名参数的变量不参与取数,只做显示与过滤。
使用共享数据集
- 在「共享数据集」页新建一条 SQL 数据集定义:名称、分类、用途说明、「数据连接」、SQL,可「数据预览」。
- 在任意大屏的左栏「数据集」>「新建数据集」>「从共享库插入」,点击「插入到本屏」。插入的是一份拷贝,建议先跑一次预览。
- 本屏的 SQL 数据集也可以用数据集菜单的「加入共享库」发布出去。
- 共享定义修改后不会自动同步到各屏,需要在各屏设计器里手动同步;共享页的「被引用大屏」可看有哪些大屏在用。
属性/参数说明
数据集类型
| 类型 | 特点 | 关键设置 |
|---|---|---|
| 内置数据集 | 固定数据,可「管理列」「添加行」「粘贴数据」「复制数据」 | 列类型:字符串、数值、日期、日期时间;粘贴时首行为列名,会替换现有全部列和数据 |
| SQL 数据集 | 通过数据连接取数,可定时刷新与实时推送 | 数据连接、查询行数限制、查询超时(秒)、刷新间隔(秒)、增量消息流、保留窗口行数、后处理脚本、计算字段 |
| API 数据集 | 调用 HTTP 接口 | 请求URL、请求方法、认证方式(无认证、Basic Auth、Bearer Token、API Key、OAuth2)、请求参数、请求头、请求体、JSON Path、连接超时(ms)、读取超时(ms)、刷新间隔(秒) |
「增量消息流」开启后,实时推送以追加方式增量下发,「保留窗口行数」限制保留的行数,默认跟随查询行数限制。
刷新
| 层级 | 位置 | 说明 |
|---|---|---|
| 全局 | 「画布」>「运行态刷新」 | 「自动刷新」「刷新间隔 (s)」(5 到 3600,默认 60)「实时推送」 |
| 单个数据集 | 数据集编辑「刷新间隔(秒)」 | 5 秒及以上生效,留空跟随全局 |
| 联动动作 | 「刷新数据」动作 | 刷新指定数据集,不指定则刷新全部可刷新数据集 |
示例
「按科室看趋势」:SQL 数据集 就诊趋势:
SELECT visit_date, COUNT(*) AS visits
FROM outpatient_visit
WHERE dept = ${$dept}
GROUP BY visit_date
ORDER BY visit_date
在「报表参数」定义参数 dept(默认值 内科);建页面变量 dept;拖一个「分段切换」控件绑定 dept,选项写 内科: 内科、外科: 外科。图表的数据集选 就诊趋势。预期:切换控件时,图表按所选科室重新查询并更新。
注意事项
注意:只有 SQL 或 API 里写成
${$参数名}的引用才会触发重新查询;${参数名}(没有$)取不到值,也不会触发查询。注意:删除被组件、页面变量或交互蓝图引用的数据集,绑定会保留但无法取数;设计器会提示「数据绑定待修复」,并列出失效的组件与字段。保存时如果字段被移除,也会提示哪些位置会取不到数据。
注意:组件上的「变量过滤」是前端过滤,不重新查询;变量无值时显示全部数据。
注意:出于安全,返回给匿名外链访客的数据不含数据源凭据,见预览、发布与分享。
提示:模板自带的都是示例数据,上线前换成真实数据集,用「自检」的「数据源接入」确认。