报表配置
报表配置是核心入口:定义查询 SQL、查询维度、表格列,并可下钻到图表配置与修改记录。


配置项说明
| 配置项 | 说明 |
|---|---|
| 编码 | 保持唯一,发布菜单时作为菜单编码,创建后不可修改 |
| 名称 | 报表名称 |
| 分组 | 关联分组管理,树型组织海量报表 |
| 数据源 | 不选则使用 Spring Boot 默认数据源 |
| 处理类 | 可绑定报表处理类 |
| 分页方式 | 后端分页 / 前端分页 / 不分页 |
| 缓存时间(秒) | 查询结果缓存时长,0 表示不缓存,默认 1 秒 |
| 自动刷新(秒) | 页面数据自动更新周期 |
| 允许导出 | 是否展示 Excel 导出按钮 |
| 查询 SQL | 表格数据的查询语句 |
| 统计 SQL | 仅后端分页时可配置,用于计算总行数;不配置时默认以子查询 count(*) 统计,嵌套统计较慢时可单独指定 |
| 预览 | 配置完成后可直接弹窗预览(需提前发布菜单并授权) |
报表 SQL
获取参照维度值方法:${维度编码}
使用自定义函数动态处理参照维度:
sql
# 其中and函数第一个参数为数据库字段名称,第二个参数是查询维度编码
select * from xxx where 1=1 ${and('field','dimension')}
# 编译结果 →
select * from xxx where 1=1 and field = 'xxx'SQL 上下文变量
可以在任意 SQL 配置处通过 ${上下文变量} 获取到如下数据对象
| 变量名称 | 说明 |
|---|---|
__request__ | 请求对象(HttpServletRequest) |
__response__ | 响应对象(HttpServletResponse) |
__uid__ | 当前登录用户ID,e_upms_user 表 id 列 |
__pageIndex__ | 分页索引 |
__pageSize__ | 分页大小 |
__export__ | 导出时为 true,查询时为 false(boolean) |
使用方式
sql
# 查询当前登录用户数据
select * from xxx where id = ${__uid__}
# 编译结果 →
select * from xxx where id = 1
# 执行结果
[{"account":"erupt","name":"管理员","id":1}]查询维度
表示报表搜索项的类型,支持如下二十余种查询组件:
| 分类 | 维度类型 |
|---|---|
| 文本 | 文本、标签 |
| 数值 | 数值、数值范围 |
| 时间 | 日期、时间、日期时间、周、月、年、日期范围、日期时间范围 |
| 列表参照 | 参照单选、参照多选、参照单选框、参照复选框 |
| 树型参照 | 参照树单选、参照树多选、参照级联 |
| 表格参照 | 参照表格单选、参照表格多选 |
参照类维度需关联参照维度。默认值通过 JS 表达式动态生成,字符串需加引号。


表格列配置
WARNING
表格列为动态展示,不映射列配置信息无需配置!
| 列类型 | 说明 |
|---|---|
| 文本 | 默认类型 |
| 数值 | 右对齐展示 |
| 时间 | 居中展示 |
| 长文本 | 内容过长时自动收起 |
| 百分比 | 以进度条方式展示 |
| 链接 | 点击跳转 |
| 链接(弹窗) | 弹窗内打开链接 |
| 下钻 | 点击后执行下钻 SQL,弹窗展示明细 |
此外每列还可配置宽度、是否显示、是否排序。

表格列下钻
表格列配置中类型选择下钻,即可出现下钻 SQL 输入框(下钻类型必填)


配置规则:
SQL 随意写,行变量值取:冒号 + 列名的形式,如果钻取列不希望被页面显示参照上图将 id 列隐藏即可
sql
select * from e_upms_menu where id = :id效果展示

图表配置
在报表行的图表配置下钻中维护,一张报表可挂多个图表,使用 SQL 语句即可快速开发图表,支持图表与维度的联动。
| 配置项 | 说明 |
|---|---|
| 编码 | 报表内唯一,创建后不可修改 |
| 名称 | 图表名称 |
| 栅格 | 图表占用的栅格数,24 为占满一行,默认 24 |
| 高度(px) | 图表高度,默认 340 |
| 数据源 / 处理类 | 同报表配置,图表可独立指定 |
| 缓存时间(秒) | 图表数据缓存时长,默认 1 秒 |
| 图表类型 | 见下表,渲染引擎为 G2Plot |
| 图表 SQL | 图表数据查询语句 |
| 自定义图表配置 | JSON 格式,参考 G2Plot 配置项,深度定制图表样式 |
支持的图表类型与 SQL 返回列约定:
| 图表类型 | SQL 返回列 |
|---|---|
| 统计值 | 1~2 列:数值 / [名称] |
| 提示 | 1 列,多行自动拼接,用于突出关键信息 |
| 折线图、阶梯折线图、柱状图、堆叠柱状图、面积图、百分比面积图、条形图、百分比堆叠条形图、雷达图、散点图、玉珏图 | 2~3 列:名称 / 数值 / [分类] |
| 气泡图 | 4 列:x / y / 系列 / 大小 |
| 饼图、环图、玫瑰图、漏斗图 | 2 列:名称 / 数值 |
| 瀑布图 | 2 列:名称 / 增量值 |
| 词云 | 2~3 列:名称 / 数值 / [分类] |
| 桑基图、弦图 | 3 列:名称 / 数值 / 目标名称 |
| 表格 | 任意列 |
| 组件模板 | 由绑定的组件模板自行渲染 |


分组管理
配置树型分组信息,方便管理海量报表

组件模板
在图表配置 → 图表类型选择组件模板时绑定,用于完全自定义的报表模板。模板语法为 Freemarker,资源类型支持两种:
- 在线配置:直接在线编辑模板内容
- 文件路径:指定 resources 目录下的模板文件
模板中可使用 ${dataJson}(JSON 字符串)或 data(List 对象)获取图表 SQL 的查询结果,request 获取请求对象。

html
<h1>${1+1+100+1000}</h1>
<hr />
<b>加粗</b>
<hr/>
<#list data as d>
${d.name}
</#list>
<code>
${dataJson}
</code>修改记录
报表行下钻修改记录,可查看每次变更历史
