Foxtable(狐表)用户栏目专家坐堂 → 求助。。。根据条件求和


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

主题:求助。。。根据条件求和

美女呀,离线,留言给我吧!
yangming
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/5/22 11:07:00 [显示全部帖子]

RaiseDataColChanged不是事件,请看下面,它是重置DataCol的一个方法

RaiseDataColChanged

手工针对该列触发DataColChanged事件。
关于事件,我们会有专门的章节讲述。

语法

RaiseDataColChanged
RaiseDataColChanged(DataRow)

DataRow:可选参数,针对此行触发DataColChanged事件,如果省略此参数,则针对所有行触发。

例如年龄列由出生日期计算得出,我们将DataColChanged事件设为:

If e.DataCol.Name = "出生日期" Then
    If
e.DataRow.IsNull("出生日期") Then '如果没有输入出生日期
       
e.DataRow("年龄") = Nothing '则清空年龄
    Else
   
    '否则计算年龄
       
e.DataRow("年龄") = Date.Today.Year - e.DataRow("出生日期").Year

    End If
End If

如果到了明年,需要重新计算年龄列,但是除非你重新输入出上日期,否则上面的代码是不会重算年龄的。
不过你可以通过下面的代码,强行针对出生日期列触发DataColChanged,效果就像你重新输入了出生日期一样:

DataTables("员工").DataCols("出生日期").RaiseDataColChanged()

其实我们并不需要编码去完成这样的任务,首选选择出生日期列,然后在“数据表”功能区“设置列”功能组,单击下面的“重置”按钮,即可针对出生日期列触发DataColChanged事件,计算出最新的年龄:


 回到顶部