数据字典配置
概述
数据字典是报表系统中的核心功能之一,用于将数据库或 API 的原始字段值转换为用户友好的可读文本。
应用场景
- 枚举值转换:将性别字段
1、2转换为"男"、"女" - 状态码转换:将订单状态
0、1、2转换为"待支付"、"已支付"、"已发货" - 类型映射:将用户类型
admin、user、guest转换为"管理员"、"普通用户"、"访客" - 多值翻译:支持一个字段包含多个值的分隔符转换
核心优势
✅ 简化维护:集中管理字典数据,避免硬编码
✅ 提升可读性:让报表数据更直观易懂
✅ 支持集成:可与 JeecgBoot 系统字典无缝对接
✅ 灵活配置:支持系统字典、API 字典、SQL 字典等多种方式
一、报表字典配置
系统字典是最常用的配置方式,通过可视化界面管理字典数据,无需编码即可完成配置。
1. 进入数据字典管理
在报表设计页面,点击顶部工具栏的「添加数据字典」按钮,进入数据字典管理界面。
图11.11 数据字典入口
图11.12 数据字典管理页面
2. 新建字典
点击「添加」按钮,填写字典基本信息:
| 字段 | 说明 | 示例 |
|---|---|---|
| 字典名称 | 字典的显示名称,支持中英文、数字 | 性别字典、订单状态 |
| 字典编码 | 字典的唯一标识,建议使用英文或拼音 | sex、order_status |
| 描述 | 字典的用途说明(可选) | 用于性别字段的数据转换 |
- 字典编码建议使用小写英文或下划线命名,如:
user_type、gender - 名称应简洁明了,便于后期维护和团队协作
图11.21 添加字典基本信息
3. 配置字典项
选中已创建的字典,点击「添加」按钮,配置具体的字典项数据:
| 字段 | 说明 | 示例 |
|---|---|---|
| 名称 | 前端显示的文本 | 男、女 |
| 数据值 | 数据库或 API 中的实际值 | 1、2 |
| 描述 | 字典项说明(可选) | 男性 |
| 是否启用 | 控制该字典项是否生效 | ✅ 启用 |
场景:数据库中性别字段存储值为 1、2,需要在前端显示为"男"、"女"
配置方法:
- 字典项 1:名称=
男,数据值=1 - 字典项 2:名称=
女,数据值=2
完成后效果:报表中值为 1 的数据会自动显示为"男",值为 2 显示为"女"
4. 在报表中使用字典
配置完成后,在报表设计页面使用字典非常简单:
- 选中需要应用字典的单元格
- 在字段属性找到「字典 code」配置项
- 填写对应的字典编码即可(如:
sex)

图11.51 在报表中使用字典
- 字典应用后,单元格中的原始值会自动转换为字典配置的显示文本
- 支持数据集字段和参数字段使用字典
- 如果找不到对应的字典项,会显示原始值
二、API 字典
API 字典允许通过接口动态获取字典数据,适用于字典数据频繁变更或需要从外部系统获取的场景。
详见:API 字典专题文档
适用场景:
- 字典数据量大,需要动态加载
- 字典数据来自第三方系统
- 字典数据需要实时更新
三、SQL 表字典
最简用法:直接使用一条 SQL 作为字典数据源,返回两列固定别名:
value:数据值text:显示文本
使用步骤:
- 在字段属性的「字典 code」中直接填写 SQL;
- 确保查询结果列名(或别名)为
value、text。
示例:
SELECT item_value AS value, item_text AS text FROM sys_dict_item
效果:单元格会按 value -> text 自动映射显示。
报表设计界面配置示例

报表预览效果示例

四、数据库多值分隔符配置
1.5.1(2022.07.05)及以上版本支持
功能说明
当数据库字段存储多个值(如:1,2,3),并且需要将这些值全部转换为对应的字典文本时(如:男,女,未知),可以使用多值分隔符配置。
效果展示
配置前后对比:
| 配置前 | 配置后 |
|---|---|
1,2,3 | 男,女,未知 |
图11.61 多值分隔符转换效果
配置步骤
1.9.6+ 版本:参数配置已改为可视化界面,详情请参考 可视化参数配置
步骤 1:在参数配置中添加 dictSplit 属性
填写属性名称 dictSplit,值为数据库中使用的分隔符,例如:
{
"dictSplit": ","
}

图11.62 参数配置示例
- 参数中的
,代表数据库存放的数据分隔符 - 根据实际情况,可以配置为其他分隔符,如
;、|、-等 - 分隔符必须与数据库中存储的分隔符完全一致
步骤 2:数据库数据示例
假设数据库中存储的数据如下:
图11.63 数据库数据示例
步骤 3:应用字典
在报表单元格中配置对应的字典 code,系统会自动按分隔符将多个值逐一转换。
五、JeecgBoot 系统字典对接
v2.3.1+支持此功能。
- 可直接使用 JeecgBoot 系统字典,避免重复维护;
- 在字段属性的「字典 code」中填写 JeecgBoot 字典编码即可使用;
- 如果积木报表中维护的字典code 与 JeecgBoot 系统字典code不一致,则以积木报表中维护的字典code 优先级更高。
具体实现代码示例:
- 实现
JmReportTokenServiceI接口中的getDictItems方法
@Slf4j
@Component
public class JimuReportTokenService implements JmReportTokenServiceI {
@Override
public List<JmDictModel> getDictItems(String dictCode) {
List<JmDictModel> dictItems = new ArrayList<>();
if(oConvertUtils.isNotEmpty(dictCode)){
List<DictModel> dictItemsList = sysBaseApi.getDictItems(dictCode);
dictItemsList.forEach(dictItem->{
JmDictModel dictModel = new JmDictModel();
dictModel.setText(dictItem.getText());
dictModel.setValue(dictItem.getValue());
dictModel.setDictCode(dictCode);
dictItems.add(dictModel);
});
}
return dictItems;
}
}