报表设计

报表设计通过 Excel 模板的方式来建立,其原理是预先设置 Excel 的格式,并将变化的部分通过“占位符”替代,系统会在输出报表时自动替换“占位符”内容。报表模板同时也支持 Excel 常用函数,例如汇总等。

根据不同的模板类型,在配置完成后可在记录详情页中使用(针对单条记录),或在数据列表中使用(针对多条记录)。

? 本文档适用于 V3.3 及之后的版本,如您使用之前的版本请参考 旧版文档

报表模板

基本用法

占位符是以 {} 包裹内容的形式,例如 {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}

? 请注意,明细记录、审批流程,及同一相关记录实体只能横向的排列在一行,不能混合排列

排序 ~~v3.4

对于明细记录、审批流程、相关记录包含多条记录输出的(列表),您可以指定字段排序规则。通过在字段变量后添加 :asc(正序)或 :desc (倒序)即可,例如 {.accountName:desc}

模板示例

以下示例包含了主记录、明细记录、审批流程、相关记录。

? 请注意上述模板示例并不可用!其存在的问题包括:

  1. B3 单元格 accountId.phone 需要将 . 连接符号替换为 $,即 accountId$phone
  2. 此模板包含多个列表(明细、审批、相关项),因此需要将前面的 . 连接符号替换为 $,例如 A7 单元格改为 {$detail.goodsName};对于相关项,第二个 . 也需替换,例如 A15 单元格改为 {$accountId$SalesOrder.totalAmount}
  3. 若只包括 1 个列表,则按照示例写法即可,无需替换 . 连接符号为 $
  4. 如未按上述方式调整,(单元格)可能会输出空白

使用报表

上传报表模板

当报表模板设计好之后,管理员需要将其上传至系统中才能被使用。进入管理中心 - 报表模板,点击右上角 [添加] 按钮。

  1. 选择报表对应的实体,即此模板适用于哪个实体
  2. 选择模板类型,其中 EXCEL WORD 针对单条记录(在记录详情页中使用),而 EXCEL 列表 支持在数据列表页导出使用。请注意不同的模板类型编写要求不尽相同,请详细阅读本页文档
  3. 上传模板文件
  4. 使用默认导出格式或 PDF 导出,详情 参见下文
  5. 导出的报表文件名称也会使用此名称

最后点击 [确定] 即可,如有多个报表模板请逐一添加。

下载报表

当管理员为某个实体添加了报表模板后,用户便可以在记录详情页使用此报表,如下图所示。

  1. 点击下载报表文件
  2. 直接在线打开查看或打印(需正确配置 文档预览服务地址 后可用)~~v3.0

报表导出格式

您可以选择将报表导出为 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 函数

在列表型模板中(包括列表模板、明细列表、审批流程列表、相关项列表)您可以使用 Excel 函数。请注意对于应用在列的函数请至少包含两个单元格才可以正确计算,如下图所示。

而应用在行的函数需特殊编写。请使用 {.__KEEP:(=XXX)} 的方式包括函数(XXX为实际的函数)(此功能从 V3.2 开始支持),如下图所示。

占位符变量

占位符变量可以输出一些系统值,例如当前时间、当前用户,或列表的自增序号等。目前所支持的变量如下表:

变量 说明
__NUMBER 自增序号
__KEEP 单元格保持
__CURRENTUSER 当前登录用户(姓名)
__CURRENTBIZUNIT 当前登录用户所在部门(名称)
__CURRENTDATE 当前日期
__CURRENTDATETIME 当前日期时间

当您使用上述占位符变量时,需要遵循模板的编写规则,例如在包括明细列表的报表中使用需要添加 .detail 前缀如 .detail.__NUMBER

常见问题

  1. 使用列表时可能出现无变量单元格无边框线,此时可以在空单元格中添加占位变量 {.__KEEP} 解决,同时此变量支持传入占位文本,例如 {.__KEEP:块}
  2. 如需输出列表序号可通过占位变量 {.__NUMBER} 解决
  3. 如需在报表中输出当前用户(姓名),可通过占位变量 {__CURRENTUSER} 获取

复杂报表需求

对于复杂的报表需求可以购买我们的 商业服务 进行定制。

WORD 模板 ~~v3.5

从 V3.5 开始支持 Word 模板导出。Word 模板采用与 Excel 类似的方式(如您未使用过 Excel 模板,建议先参阅上文)。但请注意,他们之间存在少许不同,包括:

  • 引用字段点连接全部使用 $ 符号
  • 图片需要在字段变量前添加 @ 符号
  • 支持将明细实体、审批流程一并导出到表格,但编写方式与 Excel 不同
    • 在表格的第一列、第一行,需要添加一个额外占位符,即 {detail}{approval}
    • 表格内变量由 [] 包裹

以下是一个模板,他演示了 Word 模板的全部功能。

? Word 模板仅支持 .docx 版本文件,不支持 .doc

该文档内容对您是否有帮助?没有
您也可以通过 社区群组 向我们反馈问题
Updated 2024-06-11
目录