高级函数

爱搭贝
更新于2025-08-02

DISTANCE

DISTANCE 函数用于计算两个定位、两个经纬度坐标、或定位与经纬度坐标之间的距离,单位为米。

函数用法:

1)计算两个定位之间的距离

DISTANCE(定位1,定位2)

2)计算两个经纬度坐标间的距离(参数类型为标准格式的字符串)

DISTANCE(字符串1, 字符串2)

参数说明如下:

DISTANCE(定位1, 字符串2)

函数示例:

1)如,在客户拜访场景中计算客户之间的距离,方便合理规划拜访路线,节约时间成本。

2)如,在建筑场景中,许多地理位置未开发或缺乏明显标志,使用定位字段难以准确定位,也难以精确计算定位间的距离。此时,可直接录入经纬度坐标,通过函数精确地计算距离。

DISTANCE@1x.png

ISNULL

  • 用法:ISNULL(组件)
  • 说明:判断是否为空,为空则返回true,不为空则返回false,不用于判断 数字、汇总
  • 示例:ISNULL(日报内容),判断日报内容是否为空。
  • 注意:当【日报内容】为空时,【是否为空】显示为true。
ISNULL@1x.png

UUID

  • 用法:UUID(operation,map_value,map_field,result_field)
  • 说明:UUID函数可以用于生成随机码,默认的输出格式为 32 位字符串 + 4 个“-”,一共 36 位
  • 示例:UUID函数可用于制作随机流水号等。如果需要从 36 位随机码中截取其中一部分,可以结合LEFT函数一起使用。
uuid@1x.png

MAPX

MAPX 函数是一个“跨表单”函数。有且仅有“跨表单”函数可调用当前表单中已经提交的或其他表单中数据。

函数用法

MAPX(operation, current_value, other_field, result_field)

其中各参数的含义如下:

  • operation: 聚合操作,必填;
  • current_value: 条件字段值,即检索值,必填;
  • other_field: 条件字段名,即检索范围,必填;
  • result_field:字段返回值,必填;

当指定表单的 other_field 列的值为 current_value 时,返回 result_field 的所有值,然后根据指定的聚合操作 operation 得到对应的返回值。

可以理解为:在检索范围中,找到检索值对应的返回值,并对返回值进行聚合操作。

MAPX("聚合操作",检索值,检索范围,返回值)

注意检索值来自当前表单中(蓝底),检索范围和返回值来自所有表单字段中的同一表单(灰底)。

image.png

参数限制:

1)聚合操作(operation)

operation 参数(聚合操作)为字符串,可选值如下:

参数值含义
first获取返回值的第一个
last获取返回值的最后一个
max最大值
min最小值
avg平均值
sum求和
count获取返回值的个数

2)检索值(current_value)、检索范围(other_field)

支持设置检索值的字段,及其对应支持的检索范围字段如下表所示:

检索值检索范围
单行文本单行文本、多行文本、单选按钮组、复选框组、下拉框、下拉复选框、流水号
数字数字
多行文本单行文本、多行文本、单选按钮组、复选框组、下拉框、下拉复选框、流水号
日期时间日期时间、提交时间、更新时间
单选按钮组单行文本、多行文本、单选按钮组、复选框组、下拉框、下拉复选框、流水号
复选框组复选框组、下拉复选框(全等)
下拉框单行文本、多行文本、单选按钮组、复选框组、下拉框、下拉复选框
下拉复选框复选框组、下拉复选框(全等)
关联表单与关联字段类型为准

3)返回值(result_field)

以 A 表设置 MAPX 公式,跨表取 B 表数据:MAPX(“聚合操作”,字段1,字段2,“返回值”)为例,根据不同的聚合操作,支持设置返回值的字段如下:

聚合操作支持的返回值字段返回值计算方法
first单行文本、多行文本、数字、日期时间、单选按钮组、复选框组、下拉框、下拉复选框、流水号、创建时间、修改时间取字段 1=字段 2时,B 表中第一条入库的数据对应的返回字段值
last单行文本、多行文本、数字、日期时间、单选按钮组、复选框组、下拉框、下拉复选框、流水号、创建时间、修改时间取字段 1=字段 2时,B 表中最后入库的数据对应的返回字段值
max数字取字段 1=字段 2时,B 表所有数据数字字段的最大值
单行文本、多行文本、日期时间、单选按钮组、复选框组、下拉框、下拉复选框、流水号、创建时间、修改时间取字段 1=字段 2时,B 表所有数据按字符串比较,返回对应字符串最大值
min数字取字段 1=字段 2时,B 表所有数据数字字段的最小值
单行文本、多行文本、日期时间、单选按钮组、复选框组、下拉框、下拉复选框、流水号、创建时间、修改时间、扩展字段取字段 1=字段 2时,B 表所有数据按字符串比较,返回对应字符串最小值
avg数字取字段 1=字段 2时,B 表所有数据数字字段的平均值
sum数字取字段 1=字段 2时,B 表所有数据数字字段的求和
count单行文本、多行文本、数字、日期时间、单选按钮组、复选框组、下拉框、下拉复选框、流水号、创建人、创建时间、修改时间取字段 1=字段 2时,B 表录入了多少条匹配的数据
注:
1)检索范围和返回值中的字段不能选择子表单字段;
函数示例:
跨表有两种情况:
1)同 1 张表单,录入数据时调用之前已经提交的数据;
2)2 张表单,A 表录入数据时,调用 B 表已经录入的数据。

应用举例:

有一张选课表,在选择选修课程时,需要计算出自己是第几个报名的,即计算出某一课程的已报名人数,再+1。

可以看出,此处的检索值为课程,选了哪门课程,就统计这门课程的已报名人数。则公式为:

MAPX("COUNT",课程,课程,姓名)

对“我是第几个报名的”字段进行编辑函数:

MAPX("COUNT",课程,课程,姓名)

image.png

对于这个例子,可理解为:在之前录入的数据里,寻找「课程」字段选择了“游泳”的对应的姓名,并用COUNT 函数统计对应姓名的个数,得到已经报名的人数;最后加 1,得到“我是第几个报名的”。点击体验效果

看一下效果:

  • 选择了游泳,就是在之前录入的课程数据里,查找值为“游泳”的,并对选择游泳的姓名进行计数,发现前面已经有 3 人报名,自己是第 4 个报名的。
  • 同理,选择了太极,就是在之前录入的课程数据里,查找值为“太极”的,并对选择太极的姓名进行计数,发现前面已经有 1 人报名,自己是第 2 个报名的。
  • 选择了足球,就是在之前录入的课程数据里,查找值为“足球”的,并对选择足球的姓名进行计数,发现前面已经有 2 人报名,自己是第 3 个报名的。
image.png
image.png
注:当设置字段公式为 MAPX("COUNT",课程,课程,姓名) 时,如返回值为 0,则字段会显示为空值。