以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 如何使代码执行 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=127800) |
-- 作者:nxdx112 -- 发布时间:2018/11/22 11:51:00 -- 如何使代码执行 If e.DataCol.name = "学籍号" AndAlso e.DataRow("学籍号").length > 18 Then e.DataRow("身份证号码") = e.DataRow("学籍号").substring(1, 18) End If Select Case e.DataCol.name Case "身份证号码" If e.DataCol.Name = "身份证号码" Then If e.DataRow.IsNull("身份证号码") Then e.DataRow("出生日期") = Nothing e.DataRow("性别") = Nothing Else e.DataRow("出生日期") = ReadBirthDay(e.DataRow("身份证号码")) e.DataRow("性别") = ReadSex(e.DataRow("身份证号码")) End If End If \'----------------------------------------姓名拼音 找到了,谢谢!!! 只有改变数据代码才执行,如何变通让电脑认为数据已经变动? 如果到了明年,需要重新计算年龄列,但是除非你重新输入出生日期,否则上面的代码是不会重算年龄的。 DataTables("员工").DataCols("出生日期").RaiseDataColChanged() 执行某列的RaiseDataColChanged方法,等于“欺骗”性地通知系统:这一列(被重置的列)的内容发生了变化;系统收到这个虚假通知后,开始执行DataColChanged事件代码,间接实现了重算的目的。 如果并不需要每次打开项目都重算一次,那么就没有必要将上面的代码设置在AfterOpenProject事件中,可以将代码设置在一个按钮中,需要重算的时候,单击这个按钮即可。 其实我们并不需要编码去完成这样的任务,首先选择出生日期列,然后在“数据表”功能区“列相关”功能组,单击下面的“重置”按钮,即可针对出生日期列触发DataColChanged事件,计算出最新 [此贴子已经被作者于2018/11/22 16:49:34编辑过]
|
-- 作者:有点甜 -- 发布时间:2018/11/22 11:56:00 -- 重置列即可,参考
http://www.foxtable.com/webhelp/scr/1587.htm
|