计算表达式

上一页

代码一行为一个完整表达式。多行为多个表达式,完成多个计算。前一个表达式结果要作为后一个表达式的计算项,需要将前一个表达式结果赋值给变量。需注意的是只有最后一个表达式的结果作为返回值返回。

基本类型

  • 数值
    大家常见的整数,小数,负数。目前不支持科学计数法,八进制数值,二进制数值,16进制数值。数值最多可提供16位有效数字,小数点后默认保留6位。如全是整数,最多提供15位有效数字。
  • 数组
    数组以方括号包围的逗号分隔的值表示。形如 [1,2,3] 。数组内值可以是表达式,字符串,数值,函数。需要注意的是内置函数不支持数组嵌套数组。
  • [XX表.XX字段]
    单个慧表平台表的字段值。如果是主表,那么是主表字段值。如果是明细表, 那么是明细表的当前行的字段值。字段值可以是数值、字符串、日期、空。
  • [XX表.XX字段*]
    注意字段后面跟了一个*号,代表慧表平台表的一列值。如果是主表,那么是主表字段值。如果是明细表,那么是明细表的一列值。在表达式中一列值等同于一个数组。
    需要注意的是 公式如下
    明细表A列 = [明细表.B列] + [明细表.C列]
    这里的B列和C列不能加号,因为明细表公式是逐行计算,加了号代表其中一行的A = 整个B列+整个C列.
  • 字符串
    以单引号包围的字符。形如 ‘ABc中国’。字符串如果缺少单引号包围将引发错误。字符串内部出现单引号情况请使用双引号代替。字符串不能进行四则运算,可使用 & 符号进行字符串拼接。形如: ‘A’ & ‘B’ 结果为 ‘AB’。需注意的是字符串比较大小是按照字符串的排序规则定的而不是数字。
  • 日期
    日期类型包含日期和时间,形如 2020-01-01 12:00:00 ,可以通过日期函数获取年月日等数据,增减时间。日期不能四则运算,拼接,可以比较大小。
  • 空
    表示为 NULL, 代表没有值的情况。 数值、字符串与空进行运算,依然是原值。
  • ERROR
    ERROR为三种。
    • 第一种是表达式语法错误。当设计者书写错误的表达式时将报语法错误。
    • 第二种是程序运行错误。当程序运行出现逻辑漏洞时将报运行时错误。(开发商处理)
    • 第三种是值错误。当数据不满足运算要求时将报值错误。值错误可能为以下几种:函数调用参数不符合要求,操作值不能进行相关操作,函数名错误等等
  • 未知对象
    非以上类型的都归入未知对象。未知对象允许在表达式中流转,但无法进行基本操作。

注释

  • 单行注释

​ 以 – 开头的代码被解释为单行注释,不参与运算。

  • 多行注释
    以 /* 注释内容 */ 包围的单行或多行被解释为块注释,不参与运算。
    以 包围的单行或多行被解释为HTML块注释,不参与运算。

四则混合运算

运算符号

加

+


减

-


乘

*


除

/


取余

%


括号

()


运算符两侧操作值可以是数值,也可以是包含数值的数组。另外一种特殊情况,操作值为数值形式的字符串将被当做数值处理。举例如下:

  1. 数值与数值运算返回数值
    1+2*(3-4)/5 代表的意思是: 1加上(2乘以(3减去4)除以5)
  2. 数值与数组运算返回数组
    1+[1,2,3] 代表的意思是: 1与数组中每个值相加得到结果为[2,3,4]
  3. 数组与数组运算返回数组
    按索引对应位置进行逐项运算。比如:[1,2,3] + [1,2] 那么结果为 [2,4,3]
  4. 数值 + 字符串
    1 + "1" = 2
    1 + "a" = "1a"
    "1" + "1" = 2
    如果强制进行字符串拼接, 需要使用 & 拼接符

需要注意的点:

  • 数值运算返回都按照带小数位处理, 比如 1+1那么结果为1.0
  • 字符串,日期,未知对象运算将报值错误。
  • ERROR与任何类型运算将返回ERROR。
  • 取整数,取绝对值,取奇偶数,四舍五入小数,开根,幂运算,角运算,位运算等等请用相关数学函数。

比较运算

运算符号

大于

>


小于

<


等于

=


不等于

<> 或 !=


大于等于

>=


小于等于

<=


运算符两侧操作值可以是数值、日期、字符串、空,也可以是包含数值、日期、字符串、空的数组。举例如下:

  1. 数值比较

1>0 返回结果为 真
1<0 返回结果为 假

数值不能与日期、非数字字符串比较,否则返回ERROR

  1. 字符串比较

'A'>'B' 返回为 假
'A'<'B' 返回为 真

字符串与非字符串比较结果无法预知。

  1. 日期比较


日期(2020-01-02) > 日期(2020-01-01) 返回真

日期(2020-01-02) < 日期(2020-01-01) 返回假

日期不能与非日期比较,否则返回ERROR

  1. 数组比较

[1,2,3] > 1 返回 [空,2,3]

[1,2,3,4] > [1,1,2] 返回 [空,2,3,空]

  1. 空比较

1 = NULL 返回假

NULL = NULL 返回真

  1. ERROR比较

任何值与错误进行比较,返回ERROR

逻辑运算

运算符号

并且

and (中文 并且)


或者

or (中文 或者)


and 运算符表示两侧为真,返回为真,否则返回假

or 运算符表示两侧为假,返回为假,否则返回真

特殊运算

运算符号

在 … 中

in


字符串形似 …

like


in运算符两侧可以为数值、数组、字符串、日期、表达式。返回符合条件的值,符合条件为多个那么返回数组。举例如下;

  1. 单值 in 数组返回真

1 in [1,2,3] 返回 1

  1. 数组 in 数组返回数组

[1,2] in [1,3,4] 返回 [1]

  1. 字符串 in 字符串返回真

'abc' in '123abc345' 返回真

like运算符两侧只能为字符串。右侧可以用头尾的%代指任意字符。举例如下:

'abc' like '%b%' 返回真
'abc' like '%bc' 返回真
'abc' like 'ab%' 返回真
'abc' like 'abc' 返回真

拼接

拼接符 & 将多个操作项拼接为一个操作项。可进行字符串拼接,数组拼接。举例如下:

  1. 字符串拼接

'A' & 'B' & 'C' 结果为'ABC'

  1. 字符串与字符串数组拼接
    此规则遵循单值与数组中每一项进行拼接操作。和数组运算规则一致。
  2. 字符串数组与字符串数组运算拼接
    按索引对应位置进行逐项拼接。和数组运算规则一致。

需要注意的点:

- 任何值与空拼接返回原值。任何值与错误拼接,返回错误。
- 数组与数组拼接为 一维大数组 请使用函数。

赋值

可以将表达式其中的计算项提出来设置为变量,降低表达式书写复杂度。赋值书写规则为

set x = 1

或

赋值 x = 1

set、赋值为系统保留关键字, 每个赋值运算必须以set开头,空格,变量名,等于,值。set不区分大小写。变量名以字母或中文开头 。值可以是表达式、数值、字符串、函数、对象、表字段等等。

一行代码赋值必须为最外围表达式。也就是说一行只能有一个表达式,且这一行以set开头。

函数

IF

IF(设置的条件,满足条件返回的结果,不满足条件返回的结果) 。三参数形式

参数

条件表达式

比如: 1>0


为真, 返回表达式

1


为假, 返回表达式

0


SUM

SUM函数将值相加。 你可以将单个值、条件表达式或数组或字段列相加。支持多参数形式。

参数

条件表达式

比如: [明细表.数量字段]>0 表示字段中大于0的值相加


表达式

1


SUMIF

sumif函数是用来根据指定条件对汇总表达式进行求和. 二参数形式

运算符号

条件表达式

[明细表.数量字段]>0


汇总表达式

[明细表.金额字段]表示数量字段中大于0的金额值相加


COUNT

COUNT函数,用于给定数据集合中数据的个数进行计数

参数

条件表达式

比如: [明细表.数量字段]>0 表示字段中大于0的值计数


表达式

1


COUNTIF

countif函数是用来根据指定条件对计数表达式进行计数. 二参数形式

运算符号

条件表达式

[明细表.数量字段]>0


计数表达式

[明细表.金额字段]表示数量字段中大于0的金额计数


下一页

作者:wang  创建时间:2022-04-06 14:32
最后编辑:test  更新时间:2025-10-14 15:38

💬在线咨询
30秒响应顾问在线,随时沟通需求
☎电话咨询
0512-67316672工作日 8:30-18:00
18036137281(微信同号)
📄白皮书
免费下载《非标制造业零代码
数字化转型白皮书》
↑顶部