函数公式控件
在表单设计器中新增「函数公式」控件。用系统函数目录拼表达式,引用当前表单字段、系统变量与公有变量,填表时自动求值展示结果。
最低框架 7.0.0。定价 ¥99。
安装
- 应用市场购买并安装本插件
- 选择已初始化的 7.0 工作区
- 安装程序覆盖主前端、monorepo 类型定义与 java-boot 源码
- 重新编译后端并构建前端后生效
卸载时从备份还原下列文件。
改动范围
| 模块 | 说明 |
|---|---|
web-apps-main | 函数公式控件、右侧配置、公式弹窗、设计器注册与详情渲染 |
web-monorepo-framework | 基础表单组件类型补 FuncFormula;公式编辑器字段占位原子删除 |
java-boot | 函数目录、JS 实现体、ComputeUtil 求值;GETADDRESS 走行政区划查询 |
使用
- 打开在线开发 → 表单设计
- 从左侧控件库拖入 函数公式
- 右侧配置表达式:点开公式弹窗,从函数树插入函数,从左侧选字段 / 系统变量 / 公有变量
- 可选前缀、后缀与图标
- 发布后,填表或详情页按依赖自动计算结果
GETADDRESS
- 用法:
GETADDRESS(地址字段) - 结果:中文地址用
/连接,如「天津市/市辖区/和平区」 - 空值:返回空字符串,不返回
[] - 求值:
GET /api/system/Variate/count
完整函数目录
数学函数(28)
| 函数 | 说明 | 用法 | 示例 |
|---|---|---|---|
SUM | SUM函数可以获取一组数值的总和 | SUM(数值1,数值2,...) | SUM(语文成绩,数学成绩)返回两门课程总分 |
MAX | MAX函数可以获取一组数值的最大值 | MAX(数字1,数字2,...) | MAX(语文成绩,数学成绩,英语成绩)返回三门课程中的最高分 |
MIN | MIN函数可以获取一组数值的最小值 | MIN(数字1,数字2,...) | MIN(语文成绩,数学成绩,英语成绩)返回三门课程中的最低分 |
PRODUCT | PRODUCT函数可以获取一组数值的乘积 | PRODUCT(数值1,数值2,...) | PRODUCT(单价,数量)获取总价,即单价和数量的乘积 |
ROUND | ROUND函数可以将数字四舍五入到指定的位数 | ROUNDROUND(数字,数字位数) | ROUNDROUND(3.1485,2)返回3.15 |
COUNT | COUNT函数可以获取参数的数量 | COUNT(值,值,...) | COUNT(小王,小李)返回2,即人员数量 |
DIVIDE | DIVIDE函数可以返回数值相除 | DIVIDE(被除数,除数) | DIVIDE(总价,单价)获取数量,即总价除单价 |
SUBTRACT | SUBTRACT函数可以返回数值相减 | SUBTRACT(被减数,减数) | SUBTRACT(总收入,总支出)返回收支总利润 |
MOD | MOD函数可以获取两数相除的余数 | MOD(被除数,除数) | MOD(4,3)返回1,也就是4/3的余数 |
ABS | ABS函数可以获取一个数的绝对值 | ABS(数字) | ABS(-8)可以返回8,也就是-8的绝对值 |
INT | INT函数可以获取一个数的整数部分 | INT(数字) | INT(3.1415)返回3,也就是3.1415的整数部分 |
POWER | POWER函数可以获取数字乘幂的结果 | POWER(数字,指数) | POWER(3,2)返回9,也就是3的2次方 |
FIXED | FIXED函数可将数字舍入到指定的小数位数并输出为文本 | FIXED(数字,小数位数) | FIXED(3.1415,2)返回"3.14" |
SQRT | SQRT函数可以获取一个数字的正平方根 | SQRT(数字) | SQRT(9)返回3,也就是9的正平方根 |
LARGE | LARGE函数可以获取数据集中第k个最大值 | LARGE(数组,k) | LARGE(学生成绩.数学成绩,1)返回子表单"学生成绩"中排名第1的"数学成绩" |
SMALL | SMALL函数可以返回数据集中第k个最小值 | SMALL(数组,k) | SMALL(学生成绩.数学成绩, 1)返回子表单"学生成绩"中排名倒数第一的"数学成绩" |
AVERAGE | AVERAGE函数可以获取一组数值的算术平均值 | AVERAGE(数字1,数字2,...) | AVERAGE(语文成绩,数学成绩, 英语成绩)返回三门课程的平均分 |
AVG | AVG函数可以获取一组数值的算术平均值(同AVERAGE) | AVG(数字1,数字2,...) | AVG(语文成绩,数学成绩)返回两门课程平均分 |
SUMIF | SUMIF函数按条件对数值求和 | SUMIF(范围,条件) | SUMIF(成绩,">=60")返回及格分数合计 |
COUNTIF | COUNTIF函数按条件统计数量 | COUNTIF(范围,条件) | COUNTIF(成绩,">=60")返回及格人数 |
LOG | LOG函数返回指定底数的对数,省略底数时默认以10为底 | LOG(数字,[底数]) | LOG(100)返回2 |
COS | COS函数返回角度的余弦值(弧度) | COS(数字) | COS(0)返回1 |
SIN | SIN函数返回角度的正弦值(弧度) | SIN(数字) | SIN(0)返回0 |
CEILING | CEILING函数将数字向上舍入到最接近的整数或指定基数的倍数 | CEILING(数字,[基数]) | CEILING(3.2)返回4 |
FLOOR | FLOOR函数将数字向下舍入到最接近的整数或指定基数的倍数 | FLOOR(数字,[基数]) | FLOOR(3.8)返回3 |
RAND | RAND函数返回一个大于等于0且小于1的随机数 | RAND() | RAND()返回0.5之类的随机小数 |
UPPERMONEY | UPPERMONEY函数将数字转为中文大写金额 | UPPERMONEY(数字) | UPPERMONEY(123)返回壹佰贰拾叁元整 |
PI | PI函数返回圆周率π | PI() | PI()返回3.14159... |
文本函数(23)
| 函数 | 说明 | 用法 | 示例 |
|---|---|---|---|
SPLIT | SPLIT函数可以将文本按指定分割符分割成数组,需配合ARRAYGET来获取指定位置字 符,ARRAYGET(SPLIT(text,text separator),1) | SPLIT(文本,分隔符_文本) | SPLIT("XYN-数智化系统","-")返回"XYN,数智化系统" |
TEXT | TEXT函数可以将数字转化成文本 | TEXT(数字) | TEXT(3.1415)返回"3.1415" |
TRIM | TRIM函数可以删除文本首尾的空格 | TRIM(文本) | TRIM(" XYN ")返回"XYN" |
UUID | UUID函数用于随机码生成 | UUID() | CONCATENATE("XYN-",UUID())生成XYN-开头的流水号,比如XYN-FYJQ03VCOA03KCE20YW45E7OIMC390UJU2MK0 |
VALUE | VALUE函数可以将文本转化为数字 | VALUE(文本) | VALUE("3.1415")返回3.1415 |
SEARCH | SEARCH函数可以获取文本1在文本2中的开始位置 | SEARCH(文本1,文本2) | SEARCH("2026","XYN2026")返回4 |
RMBFORMAT | RMBFORMAT函数可以将数字格式化为人民币格式 | RMBFORMAT(数字,[type]) | RMBFORMAT(数字输入框)输入123,返回壹佰贰拾叁元整 |
REPT | REPT函数可以将文本重复一定次数 | REPT(文本,重复次数) | REPT("XYN", 3)返回"XYNXYNXYN" |
REPLACE | REPLACE函数可以根据指定的字符数,将部分文本替换为不同的文本 | REPLACE(文本 |