switchCase函数
switchCase函数
应用背景
在根据不同值,返回不同结果的情况下,我们可以使用if语句来实现,但如果判断的条件非常多,用if语句进行判断,表达式可读性将非常差,于是,各种编程语言里都有一个switch – Case表达式,同样,润乾提供一个这样的javascript函数,来完成在不同的匹配值下返回不同表达式的计算结果。
函数介绍
-
语法:
功能说明:在不同的匹配值下返回不同表达式的计算结果
语法规则:
switchCase( 变量或常量, 值1, 返回值1, [值2, 返回值2, ......]缺省返回值 )
返回: 值n
-
功能用途说明:
现有的自动计算功能基本能满足用户的需求,支持自定义自动计算函数功能更是为用户提供了方便的定制平台,而switchCase函数则是丰富了自动计算函数。
switchCase是润乾内置定义的一个javascript函数,可以在报表中直接使用而无需用户再定义,它主要完成在不同的匹配值下返回不同表达式的计算结果,相当于各编程语言的switch case语句的功能。
实用代码举例
我们以一个简单的例子说明switchCase的用法,如在公司中,各部门的工资发放规则可能不同,比如在销售部门,当月工资的计算表达式是:日基本工资×考勤次数+当月奖金+销售额×0.05,而综合部门的工资计算表达式是:日基本工资×考勤次数+当月奖金+其它奖金,当然,其它部门有其它部门的计算规则,设计界面如下图所示:
从图上可以看出,当月工资都是由A6及B6单元格扩展而来,是A6及B6的附属格。那么当月工资单元格H6的自动计算表达式如何写呢?这时就要根据上面描述的规则来应用switchCase函数。填写自动计算属性如下图所示:
“自动计算”属性完整的表达式是:
switchCase(${A6},"0001",${(C6*G6)+D6+(E6*0.05)},"0002",${(C6*G6)+D6+F6},${C6*G6+D6})
本表达式的意思是,当A6格扩展出来的值为0001时,当月工资计算公式是日基本工资×考勤次数+当月奖金+销售额×0.05,当A6格扩展出来的当前值是0002时,当月工资计算公式是日基本工资×考勤次数+当月奖金+其它奖金,默认情况下返回日基本工资×考勤次+当月奖金。运行情况如图:
修改张兴龙的当月奖金及孙悟空的其它奖金后,自动计算运算的结果如下图所示。
switchCase是一个javascript函数,只能用于填写javascript的地方。