以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  即时变化  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=189703)

--  作者:nxqtxwz
--  发布时间:2023/12/19 15:39:00
--  即时变化
如何实现相关列内容发生变化,目标列随之改变呢?
下面的代码必须要重置时间列才能变化。
代码写在DataColChanged事件中


If e.DataCol.name = "姓名" Then
    If e.DataRow.isnull("姓名") Then
        e.DataRow("增分因素_晋职资历_现职时间") = Nothing 
        e.DataRow("增分因素_教学年限_任教时间") = Nothing
        
    Else
        Dim dr As DataRow = DataTables("职工信息总表").Find("姓名=\'" & e.DataRow("姓名") & "\'")
        If dr IsNot Nothing Then
            e.DataRow("增分因素_晋职资历_现职时间") = dr("职级_评定日期")
            e.DataRow("增分因素_教学年限_任教时间") = dr("从教时间")
            
        End If
    End If
End If

If e.DataCol.Name = "增分因素_晋职资历_现职时间" Then
    If e.DataRow.IsNull("增分因素_晋职资历_现职时间") Then \'如果没有输入出生日期
        e.DataRow("增分因素_晋职资历_现职年限") = Nothing \'则清空年龄
    Else
        \'否则计算年龄
        If e.DataRow("申报职级") = "高级教师" Then
            e.DataRow("增分因素_晋职资历_现职年限") = Date.Today.Year - e.DataRow("增分因素_晋职资历_现职时间").Year - 6
        End If 
        If e.DataRow("申报职级") = "一级教师" Then
            e.DataRow("增分因素_晋职资历_现职年限") = Date.Today.Year - e.DataRow("增分因素_晋职资历_现职时间").Year - 5 
        End If 
        
    End If
End If

非得重置“增分因素_晋职资历_现职时间列”      “增分因素_晋职资历_现职年限” 才能变化,

--  作者:lshshlxsh
--  发布时间:2023/12/19 16:06:00
--  
DataTables("员工").DataCols("出生日期").RaiseDataColChanged()

RaiseDataColChanged

--  作者:落花人独立
--  发布时间:2023/12/19 16:49:00
--  
看看
--  作者:有点蓝
--  发布时间:2023/12/19 16:55:00
--  
已有的旧数据肯定要重置一次列的才行。新录入的数据会自行变化