Foxtable(狐表)用户栏目专家坐堂 → [求助]这样的乘积如何实现?


  共有3791人关注过本帖树形打印复制链接

主题:[求助]这样的乘积如何实现?

帅哥哟,离线,有人找我吗?
jijianjsj
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:268 积分:2227 威望:0 精华:0 注册:2013/2/4 11:02:00
  发帖心情 Post By:2014/7/31 13:36:00 [显示全部帖子]

表达式列的特殊性

我们知道,列的值发生变化,会相继触发DataColChanging和DataColChanged事件。
但是有一个例外: 表达式列的值发生变化时,并不会触发这两个事件。

假定C列是一个表达式列,根据A列和B列的值计算得出,而D列的值则根据C列的值用代码计算得出。
通常我们会这样编写DataColChanged事件的代码:

Select Case e.DataCol.Name
   
Case "C"
         
'计算D列的代码
End Select

但是上述代码是无效的,因为作为表达式列,C列发生变化的时候,并不会触发DataColChanged事件。

我们可以换个思路,既然C列是有A列和B列计算得出,那么C列发生变化,肯定是因为A列或B列发生变化引起的。
所以正确的代码是:

Select Case e.DataCol.Name
    Case "A" ,"B"
         
'计算D列的代码
End
Select


 回到顶部