表达式
教学视频
概述
表达式在报表中有着重要的作用,很多功能都需要使用表达式实现。BaskReport中的表达式具有脚本语言的特点,除了支持简单表达式语法外,还允许定义变量,编写多行脚本以实现相对复杂的业务逻辑。
基本语法
基本数据类型
基本数据类型有五种,分别是字符串、整形数字、浮点型数字、布尔值以及空值(null),如下表:
数据类型 | 描述 |
---|---|
字符串 | 半角双引号包裹的字符,比如:"BaskReport"等,需要注意的是字符一定要是半角双引号,而不能是单引号。 |
整形数字 | 有正负之分,正数如:1,11,123等,负数如:-1,-11,-123等。 |
浮点型数字 | 有正负之分,正数如:0.1,0.2,21.21等,负数如:-0.1,-0.2,-21.21等。 |
布尔值 | true和false,需要注意的是BaskReport当中普通变量也可以当成一个布尔值进行判断,比如在条件判断当中,如果判断的对象只有一个字符串,如果字符串不为null也不为空字符串,那么将返回true,否则返回false,这点类似于Javascript中对象判断。 |
空值 | 就是null |
算术运算符
算术运算符支持以下五种类型:
运算符 | 描述 |
---|---|
+ | 在两个变量间执行加法或字符串连接运算,如果两个变量都可以转换成数字那么就执行加法运算;否则就将两个变量当前字符串,执行字符串连接运算;如:312+321,结果就是633;312+"321"结果也是633;312+"321a"结果就是312321a |
- | 在两个变量间执行减法运算,引擎会尝试将两个变量转换成数字后再相减,如果不能转换为数字,那么就会产生错误。 |
* | 在两个变量间执行乘法运算,引擎会尝试将两个变量转换成数字后再相乘,如果不能转换为数字,那么就会产生错误。 |
/ | 在两个变量间执行除法运算,引擎会尝试将两个变量转换成数字后再相除,如果不能转换为数字,那么就会产生错误。 |
% | 在两个变量间执行除法运算后返回余数,引擎会尝试将两个变量转换成数字后再相除,如果不能转换为数字,那么就会产生错误。 |
逻辑运算符
在条件判断中可以使用三种逻辑运算符:
运算符 | 描述 |
---|---|
&& | 条件与,需要两个条件的值都是 true 时,才取值true |
and | 与&&含义相同,使用时条件与可以使用&&也可以使用and |
|| | 条件或,两个条件的值有一个是 true 时,就取值true |
or | 与||含义相同,使用时条件或可以使用||也可以使用or |
! | 取反操作符 |
条件判断
if...else
语法:
if (条件...){
脚本...
}else{
脚本...
}
条件部分可以是一个条件,也可以是由&&或||连接的多个条件,多个条件间可通过括号()实现条件判断优先级。
if...else if...
语法:
if (条件...){
脚本...
}else if(条件...){
脚本...
}...
else if数量不限,可多级嵌套。
由于代码编辑器的语法识别问题,在使用if表达式时,如果编辑器报if函数不存在,那么请在if后面添加一个空格即可。
三元表达式
语法:
条件... ? 表达式1 : 表达式2
如果条件部分满足,返回表达式1执行结果,否则返回表达式2执行结果。
变量
表达式中运行变量,语法:
var varName=表达式
变量通过var声明后,在后面的脚本就可以使用它,如下面的用法:
var valueC1=C1;
var size=&B1;
return valueC1/size;
上面的一段脚本中定义了两个变量valueC1和size,分别用于接收单元格C1的值和单元格B1展开后的序号,最后返回这两个变量相除的结果。
多行表达式后可以以分号结尾,当然也可以不加分号。