跳至主要內容

计算式

大约 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)