Web报表中用switchCase实现不同条件自动计算不同的表达式
2010-01-10 15:51
369 查看
在润乾填报表中,系统提供的自动计算功能方便了使用者在录入数据后自动计算某些单元格的值,这样即加快了填报数据的速度,同时也降低录入的错误率。
下面我们来介绍一个功能丰富的自动计算函数switchCase。
switchCase函数是润乾报表中内置定义的一个JavaScript函数,可以在报表中直接使用无需用户再定义,它主要完成在不同的匹配值下返回不同表达式的计算结果,相当于各编程语言的switch case语句的功能。
switchCase函数的语法规则:
switchCase( 变量或常量, 值1, 返回值1, [值2, 返回值2, ......]缺省返回值 )
从上面的语法规则中我们可以看到,switchCase函数和润乾报表中的if函数非常相似,不同之处在于switchCase函数是用在自动计算上的,而if函数是用在单元格判断上的。
接下来,我们以一个简单的例子说明switchCase函数的用法。如在公司中,各部门的工资发放规则可能不同,销售部门当月工资的计算表达式是:日基本工资×考勤次数+当月奖金+销售额×0.05,而综合部门的工资计算表达式是:日基本工资×考勤次数+当月奖金+其它奖金。当然,其它部门有其它部门的计算规则,设计界面如下图所示:
从图上可以看出,H6单元格为空白,需要在前面的各项数据检索出来以后自动计算。下面设置H6单元格的自动计算表达式,右键选择H6单元格的填报属性设置如下图所示:
其中”自动计算”属性完整的表达式是:
switchCase(${A6},”0001″,${(C6*G6)+D6+(E6*0.05)},”0002″,${(C6*G6)+D6+F6},${C6*G6+D6})
表达式的意思是,当A6格扩展出来的值为0001时(0001代表销售部),当月工资计算公式是日基本工资×考勤次数+当月奖金+销售额×0.05,当A6格扩展出来的当前值是0002(0002代表综合部),当月工资计算公式是日基本工资×考勤次数+当月奖金+其它奖金,默认情况下返回日基本工资×考勤次+当月奖金。运行情况如图:
我们如果修改员工姓名为”张兴龙”的当月奖金及员工姓名为”孙悟空”的其它奖金后,自动计算运算的结果也随之改变,如图所示:
可以看到,由于销售部和综合部门的工资计算表达式不同,两个人的工资根据各自的工资计算表达式被自动计算出来了。
从上面的例子中可以看出,switchCase函数灵活应用在自动计算中,能够将一个看似复杂的填报计算表,变得简单切快捷,省去了根据不同表达式设计多个报表的重复性报表设计工作。利用类似的方法,还可以将switchCase函数应用到自动计算譬如日期间隔、数值平均、字符串拼接等应用中,实现丰富多样的功能。
引自:润乾报表知识库
原文链接:Web报表中用switchCase实现不同条件自动计算不同的表达式
下面我们来介绍一个功能丰富的自动计算函数switchCase。
switchCase函数是润乾报表中内置定义的一个JavaScript函数,可以在报表中直接使用无需用户再定义,它主要完成在不同的匹配值下返回不同表达式的计算结果,相当于各编程语言的switch case语句的功能。
switchCase函数的语法规则:
switchCase( 变量或常量, 值1, 返回值1, [值2, 返回值2, ......]缺省返回值 )
从上面的语法规则中我们可以看到,switchCase函数和润乾报表中的if函数非常相似,不同之处在于switchCase函数是用在自动计算上的,而if函数是用在单元格判断上的。
接下来,我们以一个简单的例子说明switchCase函数的用法。如在公司中,各部门的工资发放规则可能不同,销售部门当月工资的计算表达式是:日基本工资×考勤次数+当月奖金+销售额×0.05,而综合部门的工资计算表达式是:日基本工资×考勤次数+当月奖金+其它奖金。当然,其它部门有其它部门的计算规则,设计界面如下图所示:
从图上可以看出,H6单元格为空白,需要在前面的各项数据检索出来以后自动计算。下面设置H6单元格的自动计算表达式,右键选择H6单元格的填报属性设置如下图所示:
其中”自动计算”属性完整的表达式是:
switchCase(${A6},”0001″,${(C6*G6)+D6+(E6*0.05)},”0002″,${(C6*G6)+D6+F6},${C6*G6+D6})
表达式的意思是,当A6格扩展出来的值为0001时(0001代表销售部),当月工资计算公式是日基本工资×考勤次数+当月奖金+销售额×0.05,当A6格扩展出来的当前值是0002(0002代表综合部),当月工资计算公式是日基本工资×考勤次数+当月奖金+其它奖金,默认情况下返回日基本工资×考勤次+当月奖金。运行情况如图:
我们如果修改员工姓名为”张兴龙”的当月奖金及员工姓名为”孙悟空”的其它奖金后,自动计算运算的结果也随之改变,如图所示:
可以看到,由于销售部和综合部门的工资计算表达式不同,两个人的工资根据各自的工资计算表达式被自动计算出来了。
从上面的例子中可以看出,switchCase函数灵活应用在自动计算中,能够将一个看似复杂的填报计算表,变得简单切快捷,省去了根据不同表达式设计多个报表的重复性报表设计工作。利用类似的方法,还可以将switchCase函数应用到自动计算譬如日期间隔、数值平均、字符串拼接等应用中,实现丰富多样的功能。
引自:润乾报表知识库
原文链接:Web报表中用switchCase实现不同条件自动计算不同的表达式
相关文章推荐
- 不使用乘除法,for,while,if,else,switch,case,条件判断语句(A?B:C) 实现:1+2+....+n
- caseinsensitivemap实现大小写不同的Key 合并+TreeMap 实现自动排序
- CASE 计算条件列表并返回多个可能结果表达式之一
- 实现1+2+3...+n,要求不能使用乘除法、循环、条件判断、选择相关的关键字(for、while、if、else、switch、case)。
- 润乾报表通过JS自带函数来实现自动计算中的四舍五入
- 客户端实现在UltraWebGrid中对某行数据进行自动计算
- 实现1+2+3+...+n。要求不能使用乘除法,for,while,if,else,switch,case,等关键字及条件判断语句。
- 使用XtraReport的CalculatedFiled(计算字段)实现RDLC报表中表达式
- 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。Java实现
- 利用栈来实现计算表达式的自动计算(二)
- Masonry实现不同行高的自定义cell布局”行高自动计算"
- switch表达式和case条件支持的类型
- 润乾报表实现自动计算的几种方法
- 空间复杂度,实现从excel导出到txt文件中的java代码自动构建,逻辑条件不同实现则不同
- 利用栈来实现计算表达式的自动计算(一)
- 【Java基础知识】switch表达式、case穿透、default、switch结束条件
- 实现Excel行插入行删除特殊处理,单元格合并及动态条件单元格公式自动计算功能的VBA 宏示例
- 【mysql】mysql case when实现不同条件查询
- 实现1+2+3...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)
- 数据结构实现中缀表达式到后缀表达式,再到计算出结果的代码