文档首页 / 表达式概述

表达式概述

报表表达式的用途与使用位置:单元格公式、计算表达式、条件渲染、参数默认值、报表变量、数据集计算字段,以及表达式编辑器的操作方法。

概述

表达式用来在报表里动态计算值:合计一列数据、拼接一句话、按数值大小改变颜色、给查询参数设置默认日期等。同一套语法和函数用于下列所有位置,只是可用的变量和限制不同。

使用位置 入口 作用 可用内容
公式单元格 设计器「插入」>「公式」,单元格「数据」标签页「内容公式」 单元格显示表达式的结果 完整语法、全部函数、单元格引用、参数
数据绑定单元格的计算表达式 单元格「数据」标签页「数据字段」>「计算表达式」 对每条记录先计算再显示 $$record.字段、参数、函数
分组公式 数据绑定单元格选择「公式分组」 按表达式结果对记录分组 同上
条件渲染 单元格「渲染」标签页「条件渲染」 满足条件时改变样式、值、行高等 公式条件、新值公式,见 条件渲染
参数默认值 「查询参数设置」,默认值模式选「表达式」 生成参数默认值 见 报表参数
报表变量 报表设置「报表变量」 定义可复用的报表级计算值 $$reportVars,见 脚本使用指南
数据集计算字段 数据集编辑页「计算字段」 在数据集里追加派生列 受限语法,见 脚本使用指南
数据集后处理脚本 数据集编辑页「后处理脚本」 取数后加工记录 $$data,见 后处理脚本与计算字段
SQL 中的 ${} 数据集 SQL 把表达式的值作为绑定参数 见 SQL 参数与动态语法

表达式在各使用位置共用同一套引擎

表达式编辑器

需要写较长的公式时,用「表达式编辑」对话框:

  1. 选中单元格,在设计器菜单选「插入」>「公式」,或在「数据」标签页的「内容公式」处点「编辑」。
  2. 在编辑区输入表达式。
  3. 右侧「函数」标签页列出内置函数,搜索后点击插入;「代码片段」标签页提供成段的写法。
  4. 需要参考现成例子时,点「常用写法」。
  5. 点确定回到设计器,预览查看结果。

编辑器里函数提示的文字是简写,参数是否可省略以 内置函数总览 和各函数文章为准。

快速上手

以下例子都可以在公式单元格里直接输入。

引用单元格做计算:B2 * 1.1,B2 的值乘以 1.1。

汇总一列:合计格写 sum(B2),B2 是向下扩展的数据格。

占比:B2 / sum(B2[!0]),本行值除以整列合计。

拼接文字:'合计 ' + sum(B2) + ' 元'。

为空显示横杠:ifEmpty(B2, '-')。

带参数的标题:文本输入 就诊日期从$startDate至$endDate。

条件取值:B2 >= 60 ? '及格' : '不及格'。

当前日期:date() 得 yyyy-MM-dd 文本。

常见错误

现象 原因 处理
「找不到函数」 参数个数不对,或参数类型不符(如给 substring 传了 BigDecimal 的位置) 补全参数;用 ::int、::string 转换,见 内置函数总览
结果为空 文本参与减、乘、除但不是数字;参数名拼错(未定义参数得 null) 检查参数名;用 ifNull 兜底
条件总不成立 写成了 =(赋值)而不是 == 改用 ==
用了 a ?: b 不支持这种空值合并写法 写 ifNull(a, b)
数字被当作文本连接 + 的一侧是文本字面量 见 报表基本语法 的「加号」
page() 恒为 1 网格预览在分页前计算 用分页导出(PDF)查看真实页码

相关文档

联系我们

请填写您的信息,我们将在 1 个工作日内与您联系。