历史版本3 :常用函数集合插件 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

前言编辑

在FineReport中使用公式的时候,如果需要在公式中做判断,就需要使用IF或者SWITCH函数,这两个函数有时候还会嵌套,很不利于阅读。

解决方案编辑

使用常用函数插件:http://shop.finereport.com/ShopServer?pg=product&pid=512

使用了该插件后,可以在SciptEval函数中使用JavaScript语法。

下面我们来做一个对比:

在模板中A4格式是一个扩展格子(向下扩展),值为[1,2,3,4],加入我们需要让B4格子的值满足以下条件

当A4的值大于3的时候,返回A4 * 2的值,当A4的值小于3的时候,返回A4减2的绝对值,当A4等于3的时候,返回A4的A4的2次方。

如果用传统的函数,写法大概是这样的

if(A4 > 3, A4 * 2, if(A4 < 3, abs(A4 - 2), power(A4, 2)))

而如果使用ScriptEval函数写法大概是这样的

ScriptEval( 'if(a > 3) {return a * b;} else if (a < 3){return Math.abs(a - b);} else {return Math.pow(a, b)}',  "a", A4, "b", 2)

运行结果是这样的(把两种写法汇总到一起做对比)
222

可以看到结果完全没有差别,但是使用JavaScript语法有更灵活实现和更丰富的表达方式。


咦,我是susie,我编辑可以哎