以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]当前行变化才执行代码  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=129062)

--  作者:湛江智
--  发布时间:2018/12/20 17:23:00
--  [求助]当前行变化才执行代码
 下面代码效果,怎样改成,只执行当前行的 进度列变化时,进度确认人及时间 列才变化?
也就是不用对整个表的 进度列,非当前行也执行代码呢?

\'记录重要信息
Select Case e.DataCol.Name
    Case "进度"
        Dim dr As DataRow
        dr = e.DataRow
   If e.newvalue <> e.DataRow.OriginalValue(e.DataCol.name) Then
    dr("进度确认人及时间") = _UserName & " " & Date.Now

        End If
End Select
--  作者:有点甜
--  发布时间:2018/12/20 20:35:00
--  

 

你可以在afterEdit或者changeEdit事件,写你的逻辑代码。

 

 


--  作者:湛江智
--  发布时间:2018/12/20 21:12:00
--  回复:(有点甜)?你可以在afterEdit或者chang...
 窗口中录入当前行某列的信息,怎样设置保存该行该列的修改后,才执行指定的代码事件呢?
也就是:不是当前行某列单元格值变化(还没保存)就执行某代码————要确定保存后才执行指定的代码事件
想在窗口的保存按钮里实现,不是列值变化后执行,下面代码怎么修改呢?

If CurrentTable.Position <> 0 Then
For Each dr As DataRow In DataTables("室内设计项目").DataRows
     \'If .Current IsNot Nothing AndAlso .Current.DataRow.RowState <> DataRowState.Unchanged Then
 If dr("进度").OldValue <> dr("进度").NewValue Then

\'执行指定的代码事件

\'End If
End If
 Next

End If
[此贴子已经被作者于2018/12/20 21:16:11编辑过]

--  作者:有点甜
--  发布时间:2018/12/20 21:20:00
--  

参考

 

If CurrentTable.Position <> 0 Then
    For Each dr As DataRow In DataTables("室内设计项目").DataRows
        \'If .Current IsNot Nothing AndAlso .Current.DataRow.RowState <> DataRowState.Unchanged Then
        If dr("进度") <> dr.OriginalValue("进度") Then
           
            \'执行指定的代码事件
           
            \'End If
        End If
    Next
   
End If