| 4.2及以上版本 |
在ThingsBoard中,报表是用于以报表形式收集、整理并自动分发数据的强大而灵活的工具。
ThingsBoard的报表基于两个关键组件:
- 已配置的报表模板 — 定义报表的结构、内容和格式。模板可以是PDF或CSV格式,可包含任意支持的组件,如表格、图表、文本块、图像等。
- 调度器事件 — 在指定时间自动触发报表生成,并通过可用推送渠道(如email、Slack及其他集成)发送给所选收件人。
主要特性:
- 自动调度 — 预配置的调度器事件可按设定时间表发送报表,无需用户操作。
- 可重用模板 — 单个模板可通过应用筛选器和参数用于不同收件人。
- 基于事件的交付 — 在特定事件发生时发送报表(例如设备上的活动告警)。
- 富内容支持 — 可包含文本块、表格、图表、图像等。
- 通知集成 — 将生成的报表附加到系统通知(Email、Slack)。
适用场景:
- 定期监控设备指标。
- 与合作伙伴或管理层共享汇总数据。
- 以易读格式归档数据。
- 在事件期间自动化沟通。
核心概念
报表模板
ThingsBoard中的报表模板定义由系统使用调度器生成的报表的结构、布局和内容。它作为创建以下两种格式之一的视觉丰富且功能性报表的基础:
- PDF — 可包含图表、表格、图像和公司品牌的可视化样式报表。
- CSV — 面向数据的表格报表,便于在Excel或BI工具中分析。
示例:
报表模板及其生成的报表
如何创建报表模板
- 从左侧边栏打开”报表“页面。您将自动进入”模板“标签页。
- 点击右上角的”+ 添加报表模板“按钮。
- 选择”创建新报表模板“。
- 在弹窗中填写以下内容:
- 名称 — 报表模板的描述性名称。
- 格式:选择PDF或CSV报表格式。
- 类型:
- 报表 - 完整的独立报表模板。
- 子报表 - 可嵌入另一报表的模块化组件。
- 点击”添加“以创建报表模板并打开报表构建器界面,您可以在其中设计报表的结构、布局和内容。
报表构建器
报表构建器是一种拖放式编辑器,让您使用视觉和数据组件设计报表模板。您可完全控制报表的外观和结构。
报表构建器外观如下:
组件与交互
模板由可自定义的组件组成,每个组件作为视觉或功能块。这些组件决定最终报表中显示的内容及其呈现方式。
主要组件类型:
- 文本与图像 — 向报表添加文本块、标题和图像。文本块支持纯文本或富文本,可包含动态占位符用于时间戳、实体名称、用户详情等。
- 表格 — 以表格形式显示结构化数据(如告警、实体及其遥测)。每个表格的样式可通过布局配置标签页自定义 — 调整列宽、字体大小、边框和分页。
- 子报表 是嵌入主报表的模块化报表模板,继承其上下文并根据其生成内容。
- 仪表盘 - 将指定仪表盘的截图以图像形式嵌入报表。
- 图表 - 使用可配置的折线和柱状图可视化时序数据,或使用不同类型的饼图和环形图展示最新值。
- 品牌 - 添加徽标、页眉和页脚以自定义报表外观。
- 报表信息与布局 - 支持组件(分屏视图、页码、创建时间、分隔线、分页符)用于组织报表结构并显示系统元数据。
组件配置
每个组件有两个主要配置部分:
- 数据配置 — 定义组件将显示的数据及其筛选方式。支持实体别名和用于动态数据绑定的筛选器。
- 布局配置 — 控制最终文档中的视觉样式和格式。
支持的实体别名
报表模板完全支持与ThingsBoard中仪表盘相同的实体别名模型。此外,新增了以下实体筛选器:
- 源实体 - 发起发送至”生成报表”规则节点的消息或触发创建通知的实体。
- 源实体的所有者 - 发起发送至”生成报表”规则节点的消息的实体的所有者,或触发创建通知的实体的所有者。
- Owner of originator entity — the owner of the entity that originated the message sent to the "Generate Report" rule node, or the owner of the entity that triggered the creation of a notification.
变量与动态内容
在ThingsBoard中,报表组件将数据作为变量提供,可直接在组件元素内引用。您可在允许文本的任何位置插入这些变量 — 例如在文本块、表头、图表标签或其他动态字段中。这使您能够创建高度个性化、情境感知的报表。
系统变量:
系统变量在任何报表或子报表中可用,与连接的数据源无关。
示例:
- ${pageNumber} — 显示报表中的当前页码。
- ${totalPages} — 显示报表的总页数。
- ${reportCreatedTime} — 保存报表创建时的日期和时间,格式为yyyy-MM-dd HH:mm:ss。
- ${entityName} - 报表中使用的实体的技术或系统名称。
- ${entityLabel} - 实体的人类可读名称。
- ${rowCount} - 显示表格中包含的记录(行)数量(仅适用于表格组件)。
数据源变量:
数据源变量基于连接到组件的数据源(设备、资产等)的指定数据键(属性或遥测)生成。
每个选定的键自动变为可作为变量插入报表中任意文本字段的变量。
示例:
- ${status} — 键为status的属性或遥测的值。
- ${temperature} — 键为temperature的遥测的值。
- ${voltage} — 键voltage的值。
注意: 如果连接的数据源不包含指定键的值,报表中的变量将保持为空。
在编辑器中的使用变量:
- 在报表构建器中,添加组件(例如富文本),在”数据“标签页中指定其数据源(目标实体和数据键)。
- 接下来,在组件的文本字段中,在要插入变量值的位置输入
$符号。这将打开当前上下文中所有可用变量的列表。 - 选择变量(例如${reportCreatedTime}),其值将在生成期间插入报表。
- 根据需要继续输入文本并添加变量。
- 完成后,点击右上角的”保存“按钮应用更改。
要验证结果,请点击右上角的相应按钮生成测试报表示例。
导入报表模板
有现成的.json格式报表模板?只需点击”导入报表模板“并上传您的文件 — 所有配置和组件将自动导入。
Optionally, try generating a test report to make sure everything looks just right.
调度器
ThingsBoard中的调度器是用于生成报表的自动化机制。 它让您基于预构建的报表模板配置在指定时间自动创建和交付报表。
有关分步指导,请参阅:调度报表。