以文本方式查看主题

-  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=135824)

--  作者:jingledyang
--  发布时间:2019/6/3 23:16:00
--  日期判断的重置列

我想控制列重置,跟据日期来控制数据更新,代码怎么弄出来呢?如图


图片点击可在新窗口打开查看此主题相关图片如下:考勤日记.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:入职信息.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2019/6/4 21:22:18编辑过]

--  作者:有点甜
--  发布时间:2019/6/4 10:06:00
--  

 

贴出你datacolchanged事件代码。

 

 


--  作者:jingledyang
--  发布时间:2019/6/4 21:08:00
--  

If  e.DataCol.Name = "注册码" Then
    Dim nms()As String = {"姓名","公司名称","职务","计时日薪","双休日薪","工作地点"}
    If  e.NewValue Is Nothing Then
        For Each nm As String In nms
            e.DataRow(nm)= Nothing
        Next
    Else
        Dim dr As DataRow
        dr = DataTables("入职信息").Find("[注册码]= \'" & e.NewValue & "\'")
        dr = DataTables("入职信息").Find("[注册码]= \'" & e.NewValue & "\'","入职日期 Desc")
        If  dr IsNot Nothing
            For Each nm As String In nms
                e.DataRow(nm)= dr(nm)
            Next
        End If
    End If
End If

烦请老师指点


--  作者:有点蓝
--  发布时间:2019/6/4 21:31:00
--  
您想实现什么功能?
--  作者:jingledyang
--  发布时间:2019/6/4 22:59:00
--  

我想在考勤日记表中的注册码列按下“重置列”后,要求同一个人,在不同的公司上班,按入职日期来判断,刷新数据。我知道没必要这么做,但是无意按了“重置列”,以前工作的数据变了。所以防止错误发生,只能修改代码。不知道弄了!

 


--  作者:有点蓝
--  发布时间:2019/6/4 23:15:00
--  
还是没有搞懂到底想要做什么。按什么逻辑刷新什么数据?
--  作者:有点甜
--  发布时间:2019/6/5 13:07:00
--  

你需要加上条件?如

 

dr = DataTables("入职信息").Find("[注册码]= \'" & e.NewValue & "\' and 公司名称 = \'" & e.datarow("公司名称") & "\'","入职日期 Desc")


--  作者:jingledyang
--  发布时间:2019/6/5 21:51:00
--  
老师,我打个比方吧,一个人在公司上班,2019年1月是员工,工资是4000元/月,但是2019年3月20日提升为管理,工资为8000元/月,如果每天记录考勤,没有什么问题,但是在“考勤日记”表中的主键“注册码”列,点了“重置列”后,所有工资都会变成2019年3月20日升职工资(8000元/月)了,我想根据“入职信息”表中的“入职日期”作判断,决定“考勤日记”表的记录。
--  作者:有点甜
--  发布时间:2019/6/6 9:54:00
--  

改成

 

dr = DataTables("入职信息").Find("[注册码]= \'" & e.NewValue & "\' and 入职日期 <= #" & e.datarow("入职日期") & "#","入职日期 Desc")


--  作者:jingledyang
--  发布时间:2019/6/6 21:13:00
--  

If  e.DataCol.Name = "注册码" Then
    Dim nms()As String = {"姓名","公司名称","职务","计时日薪","双休日薪","工作地点"}
    If  e.NewValue Is Nothing Then
        For Each nm As String In nms
            e.DataRow(nm)= Nothing
        Next
    Else
        Dim dr As DataRow
        dr = DataTables("入职信息").Find("[注册码]= \'" & e.NewValue & "\'")
        dr = DataTables("入职信息").Find("[注册码]= \'" & e.NewValue & "\' and 入职日期 <= #" & e.DataRow("工作日期") & "#","入职日期 Desc")
       
        If  dr IsNot Nothing
            For Each nm As String In nms
                e.DataRow(nm)= dr(nm)
            Next
        End If
    End If
End If

谢谢老师了,调试OK了!