以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]序号列有一个设计如何实现  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=71349)

--  作者:seal51
--  发布时间:2015/7/9 19:12:00
--  [求助]序号列有一个设计如何实现
例子中表A的第一列是序号列,在序号列中, 我更改05为02, 02自动更改为05, 这个如何实现呢?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:列子150709.foxdb


--  作者:大红袍
--  发布时间:2015/7/9 19:27:00
--  

DataColChanged事件

 

If e.DataCol.Name = "序号" Then
    If e.OldValue <> Nothing Then
        SystemReady = False
        e.DataTable.ReplaceFor("序号", e.OldValue, "序号 = \'" & e.NewValue & "\' and _Identify <> " & e.DataRow("_Identify"))
        SystemReady = True
    End If
End If


--  作者:seal51
--  发布时间:2015/7/19 14:24:00
--  

比如有五个序号,01,02,03,04,05, 如果把05更改为02, 那么02就更改为03, 03就更改为04, 04就更改为05,以此类推, 如何做呢?


--  作者:大红袍
--  发布时间:2015/7/19 15:05:00
--  
If e.DataCol.Name = "序号" Then
    If e.OldValue <> Nothing Then
        SystemReady = False
        Dim drs As List(Of DataRow) = e.DataTable.Select("序号 >= \'" & e.NewValue & "\' and 序号 < \'" & e.OldValue & "\' and _Identify <> " & e.DataRow("_Identify"), "序号")
        For i As Integer = 0 To drs.Count - 1
            drs(i)("序号") = e.NewValue  + i + 1
        Next
        SystemReady = True
    End If
End If