报表设计

报表设计通过 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}

? 同一相关记录实体只能横向的排列在一行

排序 ~~v3.4

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

模板示例

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

使用报表

上传模板

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

  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。

列表模板

您也可以为数据列表导出配置模板,模板编写规则为在占位符的基础上添加 . 符号,例如 .createdOn,且横向的排列在同一行。

列表模板示例

在列表导出时使用

列表模板依赖“允许数据导出”权限,即数据列表“导出”功能,如未开启此权限则无法使用

高级用法

使用 Excel 函数

如需在 列表模板 中使用 Excel 函数,对于应用在列的函数请至少包含两个单元格才可以正确计算,如下图所示:

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

占位符变量

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

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

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

常见问题

  1. 如需在报表模板中使用(引用字段)点连接,需要使用 $ 符号代替 . 例如 {createdBy.email} 调整为 {createdBy$email}(此问题是由第三方报表库引起,RB 暂时无法解决)
  2. 使用列表时可能出现无变量单元格无边框线,此时可以在空单元格中添加占位变量 {.__KEEP} 解决,同时此变量支持传入占位文本,例如 {.__KEEP:块}
  3. 如需在报表中输出当前用户(姓名),可通过占位变量 {__CURRENTUSER} 获取
  4. 如需输出列表序号可通过占位变量 {.__NUMBER} 解决

复杂报表需求

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

WORD 模板 ~~v3.5

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

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

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

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

该文档内容对您是否有帮助?没有
如有任何疑问,请与我们的 社区QQ 群 联系
Updated 1/25/2024, 6:03:23 PM
目录