报表知识库
巧用空值判断函数nvl()
在设计企业报表时,报表单元格的表达式中经常需要用到空值判断,例如在单元格的显示值属性中,判断当单元格的值为空时,显示为0,否则显示单元格的真实值,等等。一般这种情况下,用户习惯写的表达式是: if(value()==null, 0, value())。
如果我们把value()换成更加复杂的表达式,例如if(ds1.select1(…)==null, 0, ds1.select1(…)),大家可以看出,这种算法明显很慢,需要把ds1.select1(…)这样的复杂表达式运算两次,而如果采用nvl()则可以避免这个问题。
单元格函数:nvl()
函数说明:
根据第一个表达式的值是否为空,若为空则返回指定值
语法:
nvl( valueExp1, valueExp2 )
参数说明:
valueExp1–需要计算的表达式,其结果不为空时返回其值
valueExp2–需要计算的表达式,当valueExp1结果为空时返回此值
返回值:
valueExp1或valueExp2的结果值
示例:
例1:nvl(A1,””) 表示当A1为空时,返回空串,否则返回A1
例2:nvl(value(),0) 表示当当前格为空时返回0,否则返回当前格的值
应用举例:
正确写法,速度快 | 错误写法,速度慢 |
nvl(ds1.select1(…), 0) | if(ds1.select1(…)==null, 0, ds1.select1(…)) |
nvl(a1[……]{……}, “–”) | if(a1[……]{……}==null, “–”, a1[……]{……}) |
引自:润乾报表知识库
相关文章:一种实现类似excel把负数显示成红色且去掉负号的方法 ; 导入带公式excel的问题 ;web报表的扩展功能;润乾报表出了新版统计图 ;解决行式填报导入excel发生错位的问题