Skip to content

使用计算公式 ​

计算公式根据表单里已有字段自动算出结果:金额合计、折扣价、日期差、文本拼接等。写法类似表格函数。

可以挂在 计算公式 组件上专门展示结果,也可以在隐藏 / 必填 / 禁用 / 数据联动等条件入口里切换到公式模式(与逻辑条件二选一)。

能解决什么问题 ​

诉求思路示例方向
自动算钱加减乘除、汇总、四舍五入、中文大写报销合计、行金额
处理日期今天、日差、加减天/工作日剩余天数
拼文案拼接、截取、替换姓名拼接、手机号脱敏
按条件取值IF / CASE选商品带出单价、会员折扣
汇总明细COLUMN + SUM子表金额合计

简单「显不显示 / 是否必填」优先用逻辑条件;需要算出一个值,或判断很难用条件组表达时,再用公式。

与逻辑条件二选一

在隐藏 / 必填 / 禁用 / 数据联动等同一条件配置里,逻辑条件与计算公式只能二选一。需要「先算合计再判断」时:用计算公式组件落结果字段,再在另一配置位用逻辑条件比较该字段。

在哪里找 ​

  1. 计算公式组件:从组件列表拖入「计算公式」(类型名多为「计算公式」),画布上空态提示「在右侧配置中设置计算公式」。
  2. 配置入口:选中该组件 → 右侧 组件配置 → 高级配置 → 设置数据联动 → 弹窗里切到 计算公式 标签页(弹窗标题仍可能是「数据联动」)。
  3. 其它条件入口:隐藏 / 必填 / 禁用等弹窗顶部也可切到 计算公式(与逻辑条件二选一)。

怎么用(分步) ​

下面以「费用合计」为例:用计算公式组件展示「交通费 + 住宿费」。

  1. 在画布上选中「费用合计」,确认组件类型是 计算公式。

选中计算公式组件

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

点设置数据联动打开公式

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

打开计算公式标签页

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

公式编辑器左右布局

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

点选字段插入

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

展开函数分类

  1. 编辑成合计公式后点 确定,再用顶部 预览 验收。例如:
text
ADD(Fdoc00332, Fdoc00333)

(Fdoc00332 / Fdoc00333 以你点选插入的 ID 为准;编辑区里常显示成带蓝色标签的字段名。公式里引用字段或变量时不要再包 。)

写好 ADD 合计公式

公式里请点选字段,不要手写中文名

左侧点字段名会插入类似 Fdoc00332 的字段 ID(不要写成 ;计算公式里引用字段/变量不用 包裹)。手写「交通费」两个字往往算不出来。比较选项时用选项的值(如 monitor),不是界面上的中文文案。

避免循环引用

公式引用「当前组件自身」且无条件时,可能循环计算。需要用当前值时,请加空值判断,例如:

text
IF(EMPTY(当前组件), 新值, 当前组件)

或使用 DEFAULT_VALUE(...) 仅设置默认值(见高阶函数)。

函数公式区域 ​

弹窗左侧树里,当前表单下面是 函数公式。展开后按类浏览内置函数(界面文案):

分类常见用途
数字处理加减乘除、合计、四舍五入等
文本处理拼接、截取、大小写、替换等
时间处理今天/现在、日期加减、工作日等
合集处理列表、交集、取列、取值等
逻辑处理IF / AND / OR、空值判断等
高级函数全局变量、权限/角色、多语言等

顶部搜索框可按关键字过滤字段与函数。点某个函数名,会在右侧编辑区插入 函数名(),光标落在括号内,便于接着填参数。

函数公式按类展开

函数说明与示例 ​

鼠标悬停(或点选)某个函数时,右侧编辑区下方会出现说明条:

  • 函数说明:一句话讲清这个函数干什么。
  • 函数示例:给出可对照的写法,常见形式是 表达式 → 结果(多条时用分隔展示)。

先看说明和示例,再往括号里填自己的字段,比凭印象手写更稳。

悬停函数查看说明与示例

底部函数示例区

若公式语法有问题,确定前同一区域可能出现红色校验信息,按提示改到能通过再保存。

公式写法规范 ​

  1. 点选插入,少手打
    字段从左侧 当前表单 点名称插入;函数从 函数公式 点名称插入。手写中文标题(如「交通费」)一般算不出来。

  2. 不要包
    计算公式里引用字段或变量,写成字段 ID / 函数调用即可,例如 ADD(Fdoc00336, Fdoc00337)。不要写成 ADD(, )(那是模板插值写法)。

  3. 区分「点名称」和「点 ID」

    • 点字段名称:插入可参与计算的字段引用(编辑区常显示成蓝色标签)。
    • 点右侧蓝色 ID 徽章:插入带引号的字段标识字符串(常显示成红色标签),适合需要「字段名字符串」的参数,而不是字段当前值。

点名称插入字段,点 ID 插入字符串

  1. 函数名大写,括号成对
    与面板里一致,如 ADD、IF、CONCAT。插入后先补全括号内参数,再点确定。

  2. 先预览再上线
    保存后用顶部 预览 改源字段,确认结果字段会跟着变。

公式参数规范 ​

参数类型要和函数期望一致,可对照悬停时的 函数示例:

参数类型写法说明
数字1、2.5直接写数字,不要加引号
文本"快递"、'OK'用英文引号包起来
字段值点字段名称插入表示该字段当前填写值;不要
字段 ID 字符串点字段旁 ID插入 "字段ID",用于要「标识」而不是「值」的参数
多个参数逗号分隔如 ADD(a, b)、CONCAT(a, b, c)
条件逻辑函数嵌套如 IF(EMPTY(字段), 默认值, 字段)

对照示例:

text
ADD(1, 2)
ADD(交通费字段, 住宿费字段)
CONCAT("订单-", 单号字段)
IF(EMPTY(备注字段), "无", 备注字段)
GET_VARIABLE("变量标识", "默认值")

(实际字段在编辑区是点选后的蓝色标签;上文「交通费字段」仅表示占位。)

常见踩坑:把选项的中文文案当成比较值(应使用选项的 值);把需要数字的参数写成了文本;在合集/子表场景未按面板提示使用 COLUMN 等函数。

场景示例 ​

入门:交通费 + 住宿费 → 费用合计 ​

背景:报销单要自动算出费用合计,少一次手算出错。

步骤:

  1. 选中「费用合计」(计算公式组件)。

场景选中费用合计

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

场景写好 ADD 公式

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

预览填写后合计由公式算出

预期:改任一费用,合计跟着变。合计字段一般再配必填条件或只读展示即可,不必让用户手改合计。

常用:条件入口里改用公式(二选一) ​

背景:隐藏 / 必填 / 禁用等弹窗里,除了逻辑条件,也可以切到公式做复杂判断。

步骤:

  1. 打开任一条件入口(例如对「补充说明」打开 设置隐藏条件),顶部切到 计算公式。

条件弹窗也可切到计算公式

预期:同一弹窗内公式与逻辑条件只能二选一。多数显隐/必填仍建议用逻辑条件;公式更适合算值或复杂表达式。选商品带出单价等「用公式赋值」见数据联动。

函数一览 ​

下面按类别列出内置函数:说明帮助选型,示例帮助对照结果。配置时以公式面板为准;悬停函数可查看同款说明。

数字函数 ​

函数说明示例
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,否则 BIF(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(合计金额)

会员折扣价:

text
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、文本与数字比较。
  • 字段更名/删除:先改公式再删字段,避免公式失效。
  • 与联动、事件分工:公式负责算值;写回多个字段、打开模块等用数据联动或事件配置。

相关阅读 ​

相关技术文档 ​