在 VeryReport 复杂报表设计器 中,自由报表适合「一条业务记录需要分多行展示」的场景:字段不必挤在同一行,而是做成表格式信息卡,再按记录纵向扩展。
1. 概述
1.1 应用场景
当数据表字段较多,若把所有字段排在报表的同一行,会显得拥挤、难以阅读。此时可将版式设计成自由报表:把一条记录的字段散落在多行多个单元格中,提高美观度与可读性。
典型场景:订单卡片、客户档案卡、设备台账详情、进销存单据头信息等。
1.2 功能简介
自由报表的特点是:数据库中的一条记录并不只占一行,而是分布在一块多行区域中;整块区域随记录纵向扩展(可一块接一块向下复制,也可配合行后分页一单一页)。
例如:每个订单的编号、日期、客户、地址、金额等放在同一「表格块」的多行中展示,不同订单的表格块再向下扩展。
设计器路径一般为
/report/designer,菜单入口为 数据应用 → 报表。
对比 | 行式报表 | 自由报表 |
|---|---|---|
记录布局 | 一条记录通常占一行 | 一条记录占多行(信息块) |
适用字段数 | 适中,列向排列 | 字段多、需要「卡片式」展示 |
关键设置 | 默认纵向扩展即可 | 常需设置左父格 / 父子关系,使整块随主键扩展 |
2. 示例
以下以「订单信息表」为例,演示自由报表从数据准备到预览的完整流程。
2.1 数据准备
若尚未接入数据源,请先在 数据中心 → 数据源 新建并测试连接。
打开 数据分析 → 复杂报表,点击「+」新建复杂报表。
在左侧 数据集 面板 → 模板数据集 → + 新建 → 数据库查询。
命名数据集为
ds1,选择数据源,填写 SQL,例如:
select * from order_info提示:若已有全局数据集,可在 全局数据集 Tab 直接拖字段,无需重复写 SQL。
2.2 报表设计
按下列说明设计「订单统计表」样式:
单元格 | 操作 |
|---|---|
A1~D1 | 合并单元格,写入标题「订单信息表」;字号适当加大,居中、加粗 |
A2、A3、C3、A4、A5、C5 | 依次写入字段标题:订单编号、产品名称、收货地址、订单时间、订单金额 |
B2~D2、B4~D4、C2 | 合并 B2~D2、B4~D4;为数据区空白单元格添加下边框;文字靠左;C2单元格居中; |
边框设置:选中目标单元格 → 右侧 单元格属性 → 样式 → 边框,选择合适的边框颜色。
说明:不同浏览器对细线边框的渲染可能略有差异,预览时以正式环境常用浏览器为准。
样式完成后:
将数据集相关字段按标题依次拖入 B2、B3、D3、B4、B5、D5(显示为 ds1.扩展方式(字段),如订单编号:ds1.G(order_id))。
选中 B5(日期类):单元格属性 → 格式 → 日期,格式模式为:
yyyy-MM-dd。
设计如下图所示:

2.3 设置父子格
自由报表要让「整块多行」跟着主键记录一起扩展,需要正确设置父格:
A1~D7,除B2单元格外,均设置左主格为自定义,主格为:B2。设置方式:右侧单元格属性,左主格,选择自定义,右侧输入框输入B2即可。
2.4 效果预览
点击工具栏,「分页预览」,效果如下图所示:
