跳转至

表达式计算器#

系统配备了一个灵活的表达式计算器引擎,用于动态计算数值。应用程序的多个不同部分使用了表达式计算器,具体包括以下对象:

  • 维保管理,用于在使用情况基于使用情况和时间活动中定义计数器表达式。
  • 可打印文档,用于定义类型为“表达式”的可打印文档上下文。
  • 配方,用于定义子配方参数映射。

Note

此引擎不用于表达式计算器自动化控制器核心任务,后者使用另一个同样强大的引擎。请参阅任务 - 表达式计算机以获得该特定引擎的文档。

本节介绍表达式计算器的语法。

Info

表达式计算器不区分大小写。

运算符#

运算符 描述 用法 结果类型
&& AND逻辑运算符 表达式 && 表达式 布尔值
and AND逻辑运算符 表达式 and 表达式 布尔值
or OR逻辑运算符 表达式 or 表达式 布尔值
|| OR逻辑运算符 表达式 || 表达式 布尔值
not NOT逻辑运算符 not 表达式 布尔值
! NOT逻辑运算符 !表达式 布尔值
+ 将两个表达式的值相加。如果其中一个表达式的结果是字符串形式,则结果为两个字符串的串联。 表达式 + 表达式 数值/字符串
* 将两个表达式的值相乘 表达式 * 表达式 数字
- 将两个表达式的值相减 表达式 - 表达式 数字
/ 将两个表达式的值相除 表达式 / 表达式 数字
== 测试两个表达式的值是否相等 表达式 == 表达式 布尔值
= 测试两个表达式的值是否相等 表达式 = 表达式 布尔值
< 测试一个表达式是否小于另一个表达式 表达式 < 表达式 布尔值
> 测试一个表达式是否大于另一个表达式 表达式 > 表达式 布尔值
<= 测试一个表达式是否小于或等于另一个表达式 表达式 <= 表达式 布尔值
>= 测试一个表达式是否大于或等于另一个表达式 表达式 >= 表达式 布尔值
!= 测试一个表达式是否与另一个表达式不同 表达式 != 表达式 布尔值
<> 测试一个表达式是否与另一个表达式不同 表达式 <> 表达式 布尔值
% 返回除法后余数的模块函数 表达式 % 表达式 数字
^ 将一个表达式提升为另一个表达式的幂次(幂函数) 表达式 ^ 表达式 数字

Table: 表达式计算器 - 运算符

函数#

数学#

函数 描述 用法 结果类型 示例
abs 绝对值 abs(表达式) 数字 abs(-3)=3
log 返回给定数字的自然对数(底数为e) log(表达式) 数字 log(e) = 1
log(x,y) 返回基于给定底数计算得出的指定数字的对数 log(表达式数字,表达式底数) 数字 log(1000,10) = 3
log10 返回给定数字以10为底数的对数 log10(表达式) 数字 log10(100) = 2
exp 返回e的给定数字的幂数 exp(表达式) 数字 exp(1) = e
cos 返回给定数字的余弦值 cos(表达式) 数字
sin 返回给定数字的正弦值 sin(表达式) 数字
tan 返回给定数字的正切值 tan(表达式) 数字
random 返回最小值和最大值之间的随机数 random(最小值,最大值) 数字

Table: 表达式计算器 - 数学函数

字符串#

函数 描述 用法 结果类型 示例
& 串联两个字符串 表达式str1 & 表达式str2 字符串
substring 返回新字符串,该新字符串是另一个字符串的子字符串。子字符串从指定下标处开始截取指定长度 substring(表达式字符串, 表达式起始下标)或substring(表达式字符串, 表达式起始下标, 表达式长度) 字符串 substring("alfa",1,2) = "lf"
length 返回字符串的长度 length(表达式)或expression.Length 字符串
lower 将字符串转换为小写形式 Lower(表达式) 字符串
upper 将字符串转换为大写形式 Upper(表达式) 字符串
replace 替换一个字符串中的特定字符串 Replace(表达式字符串, 要查找的表达式, 用于替换的表达式) 字符串
contains 检查字符串是否包含特定子字符串 Contains(表达式字符串, 表达式子字符串) 字符串
token 获得字符串中的特定令牌 token(表达式字符串, 表达式分隔符, 表达式令牌编号) 字符串
trim 裁断给定字符串 Trim(表达式字符串) 字符串

Table: 表达式计算器 - 字符串函数

流程控制#

函数 描述 用法 结果类型 示例
if 测试条件,如果条件为true,则返回一个表达式;如果条件为false,则返回另一个表达式 if 表达式 then 表达式 else 表达式 对象
if 测试条件,如果条件为true,则返回一个表达式;如果条件为false,则返回另一个表达式 if(条件,then子句,else子句) 对象 if(10 * 30; 100; 20) = 20
in 验证一个值是否包含在列表中 表达式值 in 表达式列表 布尔值 10 in array(1,6,7,10) = true
decode 解析一个值的可能值列表 decode(表达式值, 表达式测试1, 表达式结果1, ..., 表达式测试N, 表达式结果N, 表达式默认值) 对象 decode("a", "b", 10, "a", 20, 30) = 20

Table: 表达式计算器 - 流程控制函数

变量和对象#

函数 描述 用法 结果类型 示例
array 创建数组 array(表达式1, ..., 表达式N) Object[]
arraysize 返回数组或字符串的长度 arraysize(表达式) 数字
new 创建业务对象的新实例 new 对象名称() 对象 New Material()
$ 获得作为运行时输入提供的变量的值 $变量名称 对象 $ xml
$ 获得作为运行时输入提供的变量的值 $[表达式] 对象 $ [$vName] $ ["Material Type"]
. 路径导航器 表达式.(表达式) 对象 $ Material.("Name")
. 路径导航器 表达式.表达式 对象 $ Material.Step.Name

Table: 表达式计算器 - 变量和对象函数

环境#

函数 描述 用法 结果类型 示例
host 获取当前主机名 主机 字符串
domain 获取当前用户域名 字符串
env 获取给定环境变量的值 env(表达式变量名称) 字符串
now 获取当前日期和时间(c# -> DateTime.Now) now 日期时间
pid 获取应用程序进程ID PID 数字
user 获取当前用户名 user 字符串

Table: 表达式计算器 - 环境函数

常量#

常量 描述 用法 结果类型 示例
false 返回false false 布尔值 false
true 返回true true 布尔值 true
pi 返回PI常量的值 pi 数字 pi
null 表示空值的关键字 null null
e 表示自然对数底数 e 浮点型 e

Table: 表达式计算器 - 常量