SMART datagrid达式是在网格用于显示和处理数据的公式。 虽然包含可方便处理值的几种特殊运算符,但已被尽可能地简单定义和体现,以便也可以用于大型数据组。
特别是,因为现有语言中的关系、比较、逻辑运算符的优先级已被整合为一,所以必要时,需要括在括号内。 除值以外的表达式文本不区分大小写。
它被用于EditValidation.expression和DynamicStyle.expression等。
从优先级较高的开始显示。 包含在同一集中的运算符之间没有优先级。 如果想强制性赋予优先级,就需要括在括号内。 集合(Set)运算符和比较(Comparison)运算符的优先级是相同的。
Operator | 说明 | 例题 |
---|---|---|
null | JavaScript null。is, is not等只用于操作数。 | value is null |
empty | 空值。undefined, null, 空字符串。is, is not等只用于操作数。 | value is empty |
defined | 非JavaScript undefiend的值。is, is not等只用于操作数。 | value is defined |
nan | JavaScript NaN。is, is not等只用于操作数。 | value is nan |
true, false | JavaScript true, false | value == true |
Operator | 说明 | 例题 | 结果 |
---|---|---|---|
str | 转换为字符串 | str 100 | '100' |
num | 转换为数字 | num '199' | 199 |
int | 转换为Integer | int '199.9' | int |
date | 转换为Date。当比较转换的两个值时,使用Date.getTime()值。 | date '2010/11/11' <= local date date('2010-11-11') <= utc date date('2010-11-11T00:00:00+09:00') | 必须是可以通过JavaScript的Date对象构造函数而传递的字符串。特别是,如果想让包含时间值的日期比较运算同样动作在所有浏览器,就必须使用包含时区的ISO标准格式。 请参考Date.parse函数。 |
bool | 转换为Boolean | bool '1' | true |
Operator | 说明 | 例题 | 结果 |
---|---|---|---|
not, ! | 逻辑非 | not true, ! true | false |
- | 负数 | -100 | -100 |
+ | 正数 | +100 | 100 |
len | 字符串长度 | len 'abcd' | 4 |
rand | 大于0且小于参数的随机整数 | rand 100 | 15 |
srand | 相当于通过参数而指定的长度的Ascill字符串 | srand 7 | 'xfeDfdG' |
lower | 变更通过参数而指定的字符串为小写字符串 | lower 'AbcdEf' | 'abcdef' |
upper | 变更通过参数而指定的字符串为大写字符串 | upper 'AbcdEf' | 'ABCDEF' |
Operator | 说明 | 例题 | 结果 |
---|---|---|---|
* | 乘 | 11 * 2 | 22 |
/ | 除 | 5 / 2 | 2.5 |
div | 整数除法 | 5 div 2 | 2 |
% (mod) | 余数 | 5 % 2, 5 mod 2 | 1 |
Operator | 说明 | 例题 | 结果 |
---|---|---|---|
+ | 加 | 11 + 2 | 13 |
- | 减 | 5 - 2 | 3 |
Operator | 说明 | 例题 | 结果 |
---|---|---|---|
==, !=, <, <=, >, >= | 比较 | true|false | |
is | 比较 | value is null, value is empty, value is defined, value is nan | true|false |
is not | 比较 | value is not null, value is not empty, value is not defined, value is not nan | true|false |
match, not match | 正则表达式 | value match '[^d.-+]' | true|false |
imatch, not imatch | 不区分大小写的正则式 | value match '[^d.-+]' | true|false |
like, not like | 文本比较 | value like '%abc%', value not like '%abc', value like 'abc% | true|false |
ilike, not ilike | 不区分大小写的文本比较 | value ilike '%abc%', value not ilike '%abc', value ilike 'abc% | true|false |
*集合运算符和比较运算符的优先级是相同的。
Operator | 说明 | 例题 | 结果 |
---|---|---|---|
in, not in | 包含 | 3 in (1, 2 3), value not in ('a', 'b', 'c') 右移运算符必须是用括号('(', ')')括起并且项目用逗号(',')区分的列表。 | true|false |
Operator | 说明 | 例题 | 结果 |
---|---|---|---|
&& | 逻辑乘(And) | true && false | false |
|| | 逻辑或(Or) | true || false | true |
grid.setColumns([{
fieldName: 'product_id',
styles: [{
expression: "value > 1000",
styles: {
background: "#01ff0000",
...
}
}]
], {
...
}]);
column.setValidations([{
"expression": "value is not empty",
"level": DataLudi.ValidationLevel.ERROR,
"message": strings["CommCodeMsg"]
}]);