自动计算
自动计算可以实现在单元格数据发生改变时,自动计算出另外一些单元格数据结果。能帮助用户更高效的完成数据录入,减少手动录入量。例如当用户输入购买商品的单价和数量时,自动计算出商品的总价。自动计算中除了包含标准的计算外,还提供了流水号功能。
切换到“自动计算”tab页,可进行自动计算和流水号设置。
自动计算
提供了公式计算、js计算两种自动计算方式。
公式计算
公式计算除了可以设置简单的单元格值加减乘除外,还可以引用系统中提供的函数来完成复杂的自动计算。产品中内置实现了大量的函数,用户可以在设置自动计算表达式时直接进行调用,表达式的定义可以通过表达式编辑器来完成。具体包含的函数和函数的说明参见:表达式与函数,注意文档中的函数和表达式并非所有都可用于自动计算和校验,具体以表达式编辑器中的可选函数为准。
- 示例1:简单的逻辑运算。
根据用户购买的商品数量,自动计算出折扣。F9单元格为商品商量,购买数量小于100时,无折扣;大于等于100小于500时,九折;大于500小于1000时,八折;大于1000时,六折。表达式如下:
if(F9<100,1,if(F9>=100&&F9<500,0.9,if(F9>=500&&<1000,0.8,0.6)))
- 示例2:调用内置函数来完成自动计算:
根据数值型的订单金额数据,自动生成对应的人民币金额格式。
rmb(123456.89) 返回:"壹拾贰万叁仟肆佰伍拾陆圆捌角玖分"
rmb(A2) 返回:返回A2单元格数值转换成人民币金额后的结果。
js计算
通过设置自动计算的JavaScript表达式或者自定义JavaScript函数来实现自动计算。
例如,如果动计算的复杂性超出了简单表达式所能达到自动计算的要求,我们可以直接把自动计算的业务封装在javascript的自定义函数中,由自定义函数返回运算值。使用时直接在单元格填报属性的自动计算里引用自定义的函数名。
实用代码举例:
写一个自定义函数,这个函数的功能就是根据出生日期完成年龄的自动计算。
第一步,定义一个求年龄的javascript函数,代码如下:
<script language="javascript">
function age2(cellOne){
return new Date().getFullYear()-cellOne;
}
</script>
第二步,在单元格填报属性自动计算里引用定义的javascript函数,age2(${E7}.toString())。
第三步,在报表对应的展现设置中引用定义的javascript函数。
第四步,在web上展现后,当输入出生日期,焦点离开后,即可自动计算出该员工年龄。
流水号
流水号可为行式填报表单新添加或插入行时为新增行中的单元格设置缺省值,它可以是按照一定的递增或递减的规则在当前的基础上进行递增或者递减后算出来的值,可以是固定值。
前面报表填报属性的流水号定义中已经介绍了流水号的定义方法。
定义好的流水号可以在单元格填报属性中使用,具体使用方法如下:
- 可以在此处点击“设置”按钮,定义或者修改流水号定义
- 使用定义好的流水号变量名在输入框中编辑引用流水号变量的javascript表达式。比如:++orderId,意思是将orderId的值加1,然后使用orderId变量的当前值为本单元格的流水号。
流水号表达式设置要遵循javascript的规则,可引用流水号变量名,常见的一些使用方法如下表所示: