Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
零值的处理
假定某个表的金额列,由单价、数量、折扣三列计算得出,可以将该表的DataColChanged事件代码设置为:
Dim
dr As DataRow = e.DataRow显然如果我们只输入数量、单价中的一个,金额列的计算结果等于0。
即使我们没有输入数量、单价、折扣中的任何一个值,如果重置其中某一列,金额列的内容同样也会等于0。
如果你希望只有同时输入了单价和数量的情况下,才计算金额,避免金额出现0值,可以将DataColChanged事件代码改为:
Dim
dr As DataRow = e.DataRow这样如果数量或者单价中任何一个为空,金额也会自动清空,而不会出现0值。
如果你希望在任何情况下,某一列都不能出现0值,那么代码会更简单,同样用金额列为例,只需将DataColChanging事件代码设为:
If
e.DataCol.Name = "金额" Then注意上面的代码设置在DataColChanging事件中,而不是DataColChanged事件中。这样可以在金额列的值发生变化之前进行拦截干预,判断新的值是否为0,如果为0,则将新值设为Nothing,这样金额列的值就永远不可能为0了。
非常好用,也非常实用。谢谢了!!
非常好用,也非常实用。谢谢了!!
正式版本出来了,建议你重新看一次帮助。
从你一楼写的代码,我可以看出老兄还得补补基本功。
If dr.IsNull(dc.Name) then
dr(dc.Name)= Nothing
end if
要知道,上面的代码没有任何意义的,只是将已经为空的单元格再次设为空值,意义何在呢?
这个一直有的,就在帮助中。