以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  从身份证号码提取年龄,如何确保根据时间自动计算  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=123456)

--  作者:aza520
--  发布时间:2018/8/15 11:38:00
--  从身份证号码提取年龄,如何确保根据时间自动计算
以下代码根据身份证号码提取年龄,如何修改才能根据时间自动计算年龄?
Select Case e.DataCol.Name
    Case "身份证号码"
        If e.DataRow.IsNull("身份证号码") Then  \'身份证号码是否为空
            \'e.DataRow("出生日期") = Nothing  \'如果为空,则清除出生日期
            e.DataRow("性别") = Nothing  \'如果为空,则清除出生日期
            e.DataRow("年龄") = Nothing \'如果为空,则清除年龄
        Else
            \'否则从身份证号码列中提取出生日期
            \'e.DataRow("出生日期") = ReadBirthday(e.DataRow("身份证号码"))
            e.DataRow("性别") = ReadSex(e.DataRow("身份证号码"))
            Dim d As Date = ReadBirthday(e.DataRow("身份证号码"))
            Dim y As Integer = d.year
            If format(d, "MMdd") <= Format(Date.Today, "MMdd") Then
                e.DataRow("年龄") = Date.Today.Year - y
            Else
                e.DataRow("年龄") = Date.Today.Year - y 
            End If
        End If
End Select

--  作者:有点甜
--  发布时间:2018/8/15 11:41:00
--  

afterOpenProject事件,重置列

 

http://www.foxtable.com/webhelp/scr/1468.htm

 


--  作者:aza520
--  发布时间:2018/8/15 17:07:00
--  

老师,我在AfterOpenProject事件设如下代码,通过重置身份证号码重新计算年龄,是这样吗?因为现在这段代码无法验证,所以想确认一下


DataTables("劳务人员登记表").DataCols("身份证号码").RaiseDataColChanged()\'通过重置身份证号码重新计算年龄
--  作者:有点甜
--  发布时间:2018/8/15 17:26:00
--  
是的。你可以修改你系统日期,比如修改成2020年,即可测试效果。