报表设计通过 Excel 模板的方式来建立,其原理是预先设置 Excel 的格式,并将变化的部分通过“占位符”替代,系统会在输出报表时自动替换“占位符”内容。报表模板同时也支持 Excel 常用函数,例如汇总等。
根据不同的模板类型,在配置完成后可在记录详情页中使用(针对单条记录),或在数据列表中使用(针对多条记录)。
? 本文档适用于 V3.3 及之后的版本,如您使用之前的版本请 参考 3.2 文档
占位符是以 {}
包裹内容的形式,例如 {createdOn}
,仅需将其填写在相应的单元格上。对于 Excel 格式(如字体大小、颜色等)可根据自身需求随意调整。下图展示了一个 Excel 报表模板内容。
其中 {orderNumber}
{accountId.phone}
等都是占位符,占位符为字段的内部标识,可以进入实体的“字段管理”中查看。如果字段是“引用”类型,还可以通过 点连接 的方式跨实体使用。例如订单中有 AccountId
引用字段(引用自客户),那么可以使用 AccountId.phone
来获取客户联系电话。
从 V3.2 开始支持图片字段导出,若一个字段中包括多张仅支持导出第一张。同时图片类字段(包括二维码字段、签名字段)必须使用单独的单元格,否则可能出现错误。RB 目前不支持附件字段导出
如果实体有明细实体,也可以一并输出(多条明细记录),仅需在占位符的基础上多加一个 .detail
符号即可,如 {.detail.productName}
。
! 明细实体在 V3.3 版本中编写方式有变化,新加模板需要按照上述方式编写(之前添加的模板不受影响)。之前的版本请 参考 3.2 文档
RB 同时支持审批流程的输出,与明细实体类似,审批流程通常包含多条审批节点(记录),仅需在占位符的基础上多加一个 .approval
符号即可,审批流程的可用字段如下。
字段 | 说明 |
---|---|
.approval.approver |
审批人 |
.approval.approvedTime |
审批时间 |
.approval.remark |
批注 |
.approval.state |
审批状态(通过/驳回) |
从 V3.3 版本开始您可以在模板中添加相关记录的列表,其编写规则为 引用字段.实体.字段
,例如有“客户”、“订单”两个实体,其中订单通过“所属客户”字段引用客户实体,则可以在客户报表中输出其拥有的订单列表,具体编写方式为 .所属客户.订单.订单金额
,例如 {.belongAccount.SalesOrder.totalAmount}
。
? 请注意,明细记录、审批流程,及同一相关记录实体只能横向的排列在一行,不能混合排列
对于明细记录、审批流程、相关记录包含多条记录输出的(列表),您可以指定字段排序规则。通过在字段变量后添加 :asc
(正序)或 :desc
(倒序)即可,例如 {.accountName:desc}
。
以下示例包含了主记录、明细记录、审批流程、相关记录。
? 请注意上述模板示例并不可用!其存在的问题包括:
B3
单元格accountId.phone
需要将.
连接符号替换为$
,即accountId$phone
- 此模板包含多个列表(明细、审批、相关项),因此需要将前面的
.
连接符号替换为$
,例如A7
单元格改为{$detail.goodsName}
;对于相关项,第二个.
也需替换,例如A15
单元格改为{$accountId$SalesOrder.totalAmount}
- 若只包括 1 个列表,则按照示例写法即可,无需替换
.
连接符号为$
- 如未按上述方式调整,(单元格)可能会输出空白
当报表模板设计好之后,管理员需要将其上传至系统中才能被使用。进入管理中心 - 报表模板,点击右上角 [添加] 按钮。
EXCEL
WORD
针对单条记录(在记录详情页中使用),而 EXCEL 列表 支持在数据列表页导出使用。请注意不同的模板类型编写要求不尽相同,请详细阅读本页文档最后点击 [确定] 即可,如有多个报表模板请逐一添加。
当管理员为某个实体添加了报表模板后,用户便可以在记录详情页使用此报表,如下图所示。
您可以选择将报表导出为 PDF 格式。PDF 格式导出依赖 LibreOffice,因此在使用前您需要在服务器上 安装 LibreOffice 软件,安装完毕后请确保 soffice.exe
(Windows)或 libreoffice
(Linux/Unix)命令可用。
LibreOffice 提供的 PDF 格式能力在某些复杂布局下可能出现偏差,请适当调整模板以便输出更佳效果
// Windows 在命令行中输入以下命令验证
soffice.exe
// Linux/Unix 在命令行中输入以下命令验证
libreoffice
// 或者通过 JVM 启动参数 LibreofficeBin 指定命令
-DLibreofficeBin=libreoffice7.4
当导出格式勾选 PDF 选项后,选择报表页面会出现 PDF 图标,点击即可导出 PDF。
在支持的浏览器中,PDF 可以直接打开而无需下载后打开,因此您可以将其作为报表打印之用,更为便捷
您也可以为数据列表导出配置模板,模板编写规则为在占位符的基础上添加 .
符号,例如 .createdOn
,且横向的排列在同一行。下图是一个列表模板示例。
您可以在 列表页面 使用列表模板。在数据列表右上方点击更多 - 数据导出,在数据导出窗口选择要使用的模板,最后点击 [确定] 即可下载。
列表模板依赖“允许数据导出”权限,即数据列表“导出”功能,如未开启此权限则无法使用
在列表型模板中(包括列表模板、明细列表、审批流程列表、相关项列表)您可以使用 Excel 函数。请注意对于应用在列的函数请至少包含两个单元格才可以正确计算,如下图所示。
而应用在行的函数需特殊编写。请使用 {.__KEEP:(=XXX)}
的方式包括函数(XXX
为实际的函数)(此功能从 V3.2 开始支持),如下图所示。
占位符变量可以输出一些系统值,例如当前时间、当前用户,或列表的自增序号等。目前所支持的变量如下表:
变量 | 说明 |
---|---|
__NUMBER |
自增序号 |
__KEEP |
单元格保持 |
__CURRENTUSER |
当前登录用户(姓名) |
__CURRENTBIZUNIT |
当前登录用户所在部门(名称) |
__CURRENTDATE |
当前日期 |
__CURRENTDATETIME |
当前日期时间 |
当您使用上述占位符变量时,需要遵循模板的编写规则,例如在包括明细列表的报表中使用需要添加
.detail
前缀如.detail.__NUMBER
{.__KEEP}
解决,同时此变量支持传入占位文本,例如 {.__KEEP:块}
{.__NUMBER}
解决{__CURRENTUSER}
获取对于复杂的报表需求可以购买我们的 商业服务 进行定制。
从 V3.5 开始支持 Word 模板导出。Word 模板采用与 Excel 类似的方式(如您未使用过 Excel 模板,建议先参阅上文)。但请注意,他们之间存在少许不同,包括:
$
符号@
符号{detail}
或 {approval}
[]
包裹以下是一个模板,他演示了 Word 模板的全部功能。
? Word 模板仅支持
.docx
版本文件,不支持.doc