使用计算公式
计算公式根据表单里已有字段自动算出结果:金额合计、折扣价、日期差、文本拼接等。写法类似表格函数。
可以挂在 计算公式 组件上专门展示结果,也可以在隐藏 / 必填 / 禁用 / 数据联动等条件入口里切换到公式模式(与逻辑条件二选一)。
能解决什么问题
| 诉求 | 思路 | 示例方向 |
|---|---|---|
| 自动算钱 | 加减乘除、汇总、四舍五入、中文大写 | 报销合计、行金额 |
| 处理日期 | 今天、日差、加减天/工作日 | 剩余天数 |
| 拼文案 | 拼接、截取、替换 | 姓名拼接、手机号脱敏 |
| 按条件取值 | IF / CASE | 选商品带出单价、会员折扣 |
| 汇总明细 | COLUMN + SUM | 子表金额合计 |
简单「显不显示 / 是否必填」优先用逻辑条件;需要算出一个值,或判断很难用条件组表达时,再用公式。
与逻辑条件二选一
在隐藏 / 必填 / 禁用 / 数据联动等同一条件配置里,逻辑条件与计算公式只能二选一。需要「先算合计再判断」时:用计算公式组件落结果字段,再在另一配置位用逻辑条件比较该字段。
在哪里找
- 计算公式组件:从组件列表拖入「计算公式」(类型名多为「计算公式」),画布上空态提示「在右侧配置中设置计算公式」。
- 配置入口:选中该组件 → 右侧 组件配置 → 高级配置 → 设置数据联动 → 弹窗里切到 计算公式 标签页(弹窗标题仍可能是「数据联动」)。
- 其它条件入口:隐藏 / 必填 / 禁用等弹窗顶部也可切到 计算公式(与逻辑条件二选一)。
怎么用(分步)
下面以「费用合计」为例:用计算公式组件展示「交通费 + 住宿费」。
- 在画布上选中「费用合计」,确认组件类型是 计算公式。

- 在右侧高级配置中点 设置数据联动(界面文案是数据联动,这里用来打开公式编辑)。

- 弹出配置窗后,切到 计算公式 标签页。

- 左侧是当前表单字段与函数分类,右侧是公式编辑区(标题多为「设置组件的值」)。

- 在左侧 当前表单 中点选字段(如「交通费」「住宿费」),会插入字段 ID,不要手写中文标题。

- 在左侧 函数公式 中展开分类(如「数字处理」),点选函数插入(如
ADD)。

- 编辑成合计公式后点 确定,再用顶部 预览 验收。例如:
ADD(Fdoc00332, Fdoc00333)(Fdoc00332 / Fdoc00333 以你点选插入的 ID 为准;编辑区里常显示成带蓝色标签的字段名。公式里引用字段或变量时不要再包 。)

公式里请点选字段,不要手写中文名
左侧点字段名会插入类似 Fdoc00332 的字段 ID(不要写成 ;计算公式里引用字段/变量不用 包裹)。手写「交通费」两个字往往算不出来。比较选项时用选项的值(如 monitor),不是界面上的中文文案。
避免循环引用
公式引用「当前组件自身」且无条件时,可能循环计算。需要用当前值时,请加空值判断,例如:
IF(EMPTY(当前组件), 新值, 当前组件)或使用 DEFAULT_VALUE(...) 仅设置默认值(见高阶函数)。
函数公式区域
弹窗左侧树里,当前表单下面是 函数公式。展开后按类浏览内置函数(界面文案):
| 分类 | 常见用途 |
|---|---|
| 数字处理 | 加减乘除、合计、四舍五入等 |
| 文本处理 | 拼接、截取、大小写、替换等 |
| 时间处理 | 今天/现在、日期加减、工作日等 |
| 合集处理 | 列表、交集、取列、取值等 |
| 逻辑处理 | IF / AND / OR、空值判断等 |
| 高级函数 | 全局变量、权限/角色、多语言等 |
顶部搜索框可按关键字过滤字段与函数。点某个函数名,会在右侧编辑区插入 函数名(),光标落在括号内,便于接着填参数。

函数说明与示例
鼠标悬停(或点选)某个函数时,右侧编辑区下方会出现说明条:
- 函数说明:一句话讲清这个函数干什么。
- 函数示例:给出可对照的写法,常见形式是
表达式 → 结果(多条时用分隔展示)。
先看说明和示例,再往括号里填自己的字段,比凭印象手写更稳。


若公式语法有问题,确定前同一区域可能出现红色校验信息,按提示改到能通过再保存。
公式写法规范
点选插入,少手打
字段从左侧 当前表单 点名称插入;函数从 函数公式 点名称插入。手写中文标题(如「交通费」)一般算不出来。不要包
计算公式里引用字段或变量,写成字段 ID / 函数调用即可,例如ADD(Fdoc00336, Fdoc00337)。不要写成ADD(, )(那是模板插值写法)。区分「点名称」和「点 ID」
- 点字段名称:插入可参与计算的字段引用(编辑区常显示成蓝色标签)。
- 点右侧蓝色 ID 徽章:插入带引号的字段标识字符串(常显示成红色标签),适合需要「字段名字符串」的参数,而不是字段当前值。

函数名大写,括号成对
与面板里一致,如ADD、IF、CONCAT。插入后先补全括号内参数,再点确定。先预览再上线
保存后用顶部 预览 改源字段,确认结果字段会跟着变。
公式参数规范
参数类型要和函数期望一致,可对照悬停时的 函数示例:
| 参数类型 | 写法 | 说明 |
|---|---|---|
| 数字 | 1、2.5 | 直接写数字,不要加引号 |
| 文本 | "快递"、'OK' | 用英文引号包起来 |
| 字段值 | 点字段名称插入 | 表示该字段当前填写值;不要 |
| 字段 ID 字符串 | 点字段旁 ID | 插入 "字段ID",用于要「标识」而不是「值」的参数 |
| 多个参数 | 逗号分隔 | 如 ADD(a, b)、CONCAT(a, b, c) |
| 条件 | 逻辑函数嵌套 | 如 IF(EMPTY(字段), 默认值, 字段) |
对照示例:
ADD(1, 2)
ADD(交通费字段, 住宿费字段)
CONCAT("订单-", 单号字段)
IF(EMPTY(备注字段), "无", 备注字段)
GET_VARIABLE("变量标识", "默认值")(实际字段在编辑区是点选后的蓝色标签;上文「交通费字段」仅表示占位。)
常见踩坑:把选项的中文文案当成比较值(应使用选项的 值);把需要数字的参数写成了文本;在合集/子表场景未按面板提示使用 COLUMN 等函数。
场景示例
入门:交通费 + 住宿费 → 费用合计
背景:报销单要自动算出费用合计,少一次手算出错。
步骤:
- 选中「费用合计」(计算公式组件)。

- 点 设置数据联动,切到 计算公式,用
ADD把「交通费」「住宿费」加起来(点选插入字段 ID)。

- 确定后预览:填写交通费
300、住宿费200,费用合计应由公式自动算出。

预期:改任一费用,合计跟着变。合计字段一般再配必填条件或只读展示即可,不必让用户手改合计。
常用:条件入口里改用公式(二选一)
背景:隐藏 / 必填 / 禁用等弹窗里,除了逻辑条件,也可以切到公式做复杂判断。
步骤:
- 打开任一条件入口(例如对「补充说明」打开 设置隐藏条件),顶部切到 计算公式。

预期:同一弹窗内公式与逻辑条件只能二选一。多数显隐/必填仍建议用逻辑条件;公式更适合算值或复杂表达式。选商品带出单价等「用公式赋值」见数据联动。
函数一览
下面按类别列出内置函数:说明帮助选型,示例帮助对照结果。配置时以公式面板为准;悬停函数可查看同款说明。
数字函数
| 函数 | 说明 | 示例 |
|---|---|---|
| TONUMBER | 转为数字 | TONUMBER("1.5") → 1.5;非法时多为 0 |
| ADD / SUB / MUL / DIV | 加 / 减 / 乘 / 除 | ADD(1,2) → 3;MUL(2,2) → 4 |
| SUM | 合计(多个值或合集) | SUM(1,2,3) → 6;SUM([5,6,7]) → 18 |
| MAX / MIN / AVG | 最大 / 最小 / 平均 | MAX(1,5,10) → 10 |
| ABS | 绝对值 | ABS(-10) → 10 |
| MOD | 取余 | MOD(10,3) → 1 |
| ROUND | 四舍五入到指定位数 | ROUND(3.149, 2) → 3.15 |
| FLOOR / CEIL | 向下 / 向上取整 | FLOOR(1.93) → 1;CEIL(1.93) → 2 |
| FIXED | 保留指定小数位 | FIXED(1.93, 1) → 1.9 |
| SQRT / POWER | 平方根 / 乘幂 | SQRT(9) → 3;POWER(2,4) → 16 |
| RAND / PI | 随机数 / 圆周率 | RAND();PI() |
| TOCHINSESAMOUNT | 中文大写金额 | TOCHINSESAMOUNT(32.14) → 叁拾贰元壹角肆分 |
| LN / LOG / LOG2 | 对数 | LOG(100) → 2 |
| SIN / COS / TAN / ASIN / ACOS / ATAN / EXP | 三角函数与指数 | 按弧度计算,见面板示例 |
文本函数
| 函数 | 说明 | 示例 |
|---|---|---|
| CONCAT | 拼接文本 | CONCAT("张", "三") → 张三 |
| SLICELEFT | 从左侧取指定长度 | SLICELEFT("ABCDE", 3) → ABC |
| SLICERIGHT | 从右侧取指定长度 | SLICERIGHT("ABCDE", 3) → CDE |
| TOLOWER / TOUPPER | 转小写 / 大写 | TOLOWER("AbC") → abc |
| STARTSWITH | 是否以某串开头 | STARTSWITH("ABCDEF","ABC") → true |
| INCLUDES | 是否包含某串 | 见面板返回值说明 |
| REPLACE / REPLACEALL | 替换首次 / 全部 | REPLACE("AbAc","A","1") → 1bAc |
| TRIM | 去掉首尾空白 | TRIM(" A BC ") → A BC |
时间函数
| 函数 | 说明 | 示例 |
|---|---|---|
| NOW / TODAY | 当前时间 / 今天日期 | TODAY() → 如 2024-03-15 |
| YEAR / MONTH / DAY / HOUR / MINUTE / SECOND | 取日期部件 | YEAR("2024-03-15") → 2024 |
| DIFFDAYS / DIFFHOURS / DIFFMINUTES | 日差 / 小时差 / 分钟差 | DIFFDAYS("2024-01-15","2024-03-15") → 60 |
| ADDYEAR / ADDMONTH / ADDDAY / ADDWEEK / ADDHOUR… | 日期时间加法 | ADDDAY("2024-03-15", 10) |
| SUBYEAR / SUBMONTH / SUBDAY… | 日期时间减法 | SUBDAY("2024-03-15", 10) |
| TIMESTAMP | 时间戳 | 见面板 |
| WEEKSTART / WEEKEND | 本周起止 | WEEKSTART("2024-03-15") |
| MONTHSTART / MONTHEND | 本月起止 | MONTHEND("2024-03-15") → 2024-03-31 |
| YEARSTART / YEAREND | 本年起止 | — |
| QUARTER / QUARTERSTART / QUARTEREND | 季度相关 | QUARTER("2024-05-15") → 2 |
| WEEKOFYEAR / WEEKDAY / ISWEEKEND | 周序 / 星期 / 是否周末 | ISWEEKEND("2024-03-16") → true |
| ADDWORKDAY | 加工作日(跳过周六日) | ADDWORKDAY("2024-03-15", 1) → 下一工作日 |
合集函数
| 函数 | 说明 | 示例 |
|---|---|---|
| COLUMN | 取子表某一列,返回合集 | COLUMN(明细, "金额") → [10,20,30] |
| SUM + COLUMN | 明细列合计(常用组合) | SUM(COLUMN(明细, "金额")) |
| LEN | 合集长度 | LEN(["a","b","c"]) → 3 |
| IN | 值是否在合集中 | IN([1,2,3], 2) → true |
| UNION | 去重 | UNION(1,3,5,1,4) → [1,3,5,4] |
| INTERSECTIONSET | 交集 | INTERSECTIONSET([1,3,5],[1,4,3]) → [1,3] |
| LIST | 组成集合 | LIST(1,2,3) |
| VALUE | 从对象/分组中取值 | 见面板示例 |
逻辑函数
| 函数 | 说明 | 示例 |
|---|---|---|
| IF | 条件成立返回 A,否则 B | IF(GT(分数,90),"优秀","良好") |
| CASE | 多条件依次匹配,返回首个成立的值 | 见下方会员折扣示例 |
| AND / OR / NOT | 并且 / 或者 / 取反 | AND(true,false) → false |
| EQ / NE / GT / GE / LT / LE | 等于、不等于、大于等比较 | EQ(100,100) → true(注意数字与文本 "100" 可能不相等) |
| EMPTY / NOTEMPTY | 是否为空 | EMPTY("") → true |
| DEFAULT | 为空则用默认值 | DEFAULT(备注, "无") |
| ISNUMBER | 是否为数字 | ISNUMBER("2.34") → true |
| TRUE / FALSE | 常量真假 | TRUE() |
高阶函数
偏进阶,用于默认值、变量、权限文案等(是否可用取决于环境是否注入对应用户/变量数据)。
| 函数 | 说明 | 示例方向 |
|---|---|---|
| DEFAULT_VALUE | 设置当前组件默认值 | DEFAULT_VALUE(TODAY()) |
| GET_VARIABLE | 读全局变量 | GET_VARIABLE("变量标识", "默认值") |
| GET_DATA | 读外部/上下文数据 | 按面板说明传入键名 |
| HAS_PERMISSION / HAS_ROLE | 是否具备权限或角色 | 见身份与权限 |
| T | 取多语言词条 | 配合国际化配置 |
| CURRENT_RULE | 读当前组件规则上的某属性 | 进阶 |
| CALLBACK | 执行自定义计算并取返回值 | 进阶;一般业务优先用上面函数组合 |
更多写法示例(对照函数)
下面示例便于对照函数用法;配置时请把字段名换成点选插入的 ID。
未回款:SUB(合同金额, 已回款金额)
数量 × 单价:ROUND(MUL(数量, 单价), 2)
拼接姓名:CONCAT(姓, 名)
明细列合计:SUM(COLUMN(明细表, "金额字段标识"))
金额大写:TOCHINSESAMOUNT(合计金额)
会员折扣价:
ROUND(
MUL(
原价,
CASE(
EQ(等级, "SVIP"), 0.7,
EQ(等级, "VIP"), 0.8,
1
)
),
2
)剩余天数:DIFFDAYS(TODAY(), 截止日期)
手机号脱敏:CONCAT(SLICELEFT(手机号, 3), "****", SLICERIGHT(手机号, 4))
成绩等级:IF(GT(分数, 90), "优秀", "良好");多档用 CASE。
空则今天:DEFAULT(日期字段, TODAY()) 或 DEFAULT_VALUE(TODAY())。
选用建议
| 你想… | 优先函数 |
|---|---|
| 四则运算、合计 | ADD/SUB/MUL/DIV、SUM、ROUND |
| 明细列汇总 | COLUMN + SUM |
| 文本拼接/截取 | CONCAT、SLICELEFT、SLICERIGHT |
| 多档判断 | CASE 或嵌套 IF |
| 日期差、工作日 | DIFFDAYS、ADDWORKDAY |
| 金额打印大写 | TOCHINSESAMOUNT |
| 空则默认 | DEFAULT、DEFAULT_VALUE |
注意点
- 函数说明 / 函数示例:悬停左侧函数时看编辑区下方说明,按示例核对参数类型。
- 点名称 vs 点 ID:名称插入字段值引用;ID 徽章插入字符串标识。
- 禁止
:计算公式参数不要用模板花括号包裹字段。 - 与逻辑条件二选一:同一条件配置不可混用;跨字段可先公式算值,再逻辑条件判断。
- 计算公式组件入口:高级配置里点 设置数据联动,再切 计算公式 标签页。
- 先预览再交付:改依赖字段看结果;注意空值、除以 0、文本与数字比较。
- 字段更名/删除:先改公式再删字段,避免公式失效。
- 与联动、事件分工:公式负责算值;写回多个字段、打开模块等用数据联动或事件配置。


