kxbin
成功留给有准备的人
posts - 10,  comments - 35,  trackbacks - 0

在设计企业报表时,报表单元格的表达式中经常需要用到空值判断,例如在单元格的显示值属性中,判断当单元格的值为空时,显示为0,否则显示单元格的真实值,等等。一般这种情况下,用户习惯写的表达式是: if(@value=null, 0, @value)。

如果我们把@value换成更加复杂的表达式,例如if(ds1.getone(…)==null, 0, ds1.getone(…)),大家可以看出,这种算法明显很慢,需要把ds1.getone(…)这样的复杂表达式运算两次,而如果采用nvl() 则可以避免这个问题。

单元格函数:nvl()

函数说明: 
根据第一个表达式的值是否为空,若为空则返回指定值

语法: 
nvl( valueExp1, valueExp2 )

参数说明: 
valueExp1–需要计算的表达式,其结果不为空时返回其值 
valueExp2–需要计算的表达式,当valueExp1结果为空时返回此值

返回值: 
valueExp1或valueExp2的结果值

示例: 
例1:nvl(A1,””) 表示当A1为空时,返回空串,否则返回A1

例2:nvl(@value,0) 表示当当前格为空时返回0,否则返回当前格的值

应用举例:

正确写法,速度快:

nvl(ds1.getone(…), 0) 
nvl(a1[……]{……}, “–”)

错误写法,速度慢:

if(ds1.getone(…)==null, 0, ds1.getone(…)) 
if(a1[……]{……}==null, “–”, a1[……]{……})

posted on 2011-11-23 18:09 kxbin 阅读(686) 评论(0)  编辑  收藏 所属分类: 皕杰报表

只有注册用户登录后才能发表评论。


网站导航:
 
你恨一个人是因为你爱他;你喜欢一个人,是因为他身上有你没有的;你讨厌一个人是因为他身上有你有的东西;你经常在别人面前批评某人,其实潜意识中是想接近他。

<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用链接

留言簿(5)

随笔档案

文章分类

文章档案

相册

收藏夹

J2EE

java技术网站

Linux

平时常去的网站

数据库

电影网站

网站设计

搜索

  •  

最新评论

阅读排行榜

评论排行榜