计算式
大约 1 分钟
- 为了简化计算式的书写,可以直接使用文档控件的标识参与计算;
- 计算式中的控件标识[id]会自动获取到文档控件的值[value];
- 计算式支持 Javasript 基本语法的判断逻辑,混合运算等;
控件赋值
使用计算式给控件赋值,需要添加“=”符号,例如:
//控件的显示值为 标识id1 与标识为id2的和
= id1 + id2
//混合运算
= id1 + (id2 + 10)* 15
//添加字符串
= id1 + "片/个"
改变值触发
例如:当选择项改变时,需要显示或隐藏其他控件
//注意不需要“=”符号
if(sex == 0)
SHOW(#id1)
else
HIDE(#id1)
内置函数
SHOW()
显示指定控件,标识前需要加上“#”
if(sex == 0) SHOW(#id1)
HIDE()
隐藏指定控件,标识前需要加上“#”
if(sex == 1) HIDE(#id1)
GETAGE()
计算年龄,返回年龄或月龄
//输入标识为birdthdate的日期控件值
= GETAGE(birdthdate)
DIFF_DATE_HOURS()
计算日期差值,返回N小时N分钟的时间格式(HH:mm)
//输入标识为start和 end的日期控件值
= DIFF_DATE_HOURS(start, end)
自定义函数
用户可以注册自定义计算函数,用于计算表达式,例如
//定义函数
function diff_date_hours(start, end){
let diff = Math.abs(Math.floor((end - start)/60000))
let hour = Math.floor(diff/60)
let min = diff % 60
let result = []
result.push(hour>9?hour:'0'+hour)
result.push(min>9?min:'0'+min)
return result.join(':')
}
//注册函数
editor.calculate.registerFunction('DIFF_DATE_HOURS', diff_date_hours)
组件的计算式中使用函数
= DIFF_DATE_HOURS(start, end)