Foxtable(狐表)用户栏目专家坐堂 → [求助]同一个表3个时间列,修改其中1个时间列其他2个时间列同时修改


  共有2068人关注过本帖树形打印复制链接

主题:[求助]同一个表3个时间列,修改其中1个时间列其他2个时间列同时修改

帅哥哟,离线,有人找我吗?
湛江智
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:812 积分:6688 威望:0 精华:0 注册:2014/11/26 12:32:00
[求助]同一个表3个时间列,修改其中1个时间列其他2个时间列同时修改  发帖心情 Post By:2018/6/29 17:57:00 [只看该作者]

如题,不想用表达式,希望用代码实现

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/29 18:00:00 [只看该作者]

1、修改的逻辑是什么?

 

2、datacolchanged事件写代码不就好了?最基础的代码。


 回到顶部
帅哥哟,离线,有人找我吗?
湛江智
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:812 积分:6688 威望:0 精华:0 注册:2014/11/26 12:32:00
回复:(有点甜)1、修改的逻辑是什么? 2、...  发帖心情 Post By:2018/6/29 19:11:00 [只看该作者]

下面代码,能优化吗?这样写很长

 

'3列修改同步修改

Select Case e.DataCol.Name

    Case "第一列","第二列","第三列"

 

        If e.DataCol.Name = "第一列" Then

            If e.NewValue Is Nothing Then

                e.DataRow("第二列") = Nothing

                e.DataRow("第三列") = Nothing

            Else

               

                Dim dr As DataRow = e.DataRow

                If dr.IsNull("第一列") = False Then '身份证号码是否为空

                    dr("第二列") = dr("第一列")

                    dr("第三列") = dr("第一列")

                End If

            End If

        End If

 

If e.DataCol.Name = "第二列" Then

            If e.NewValue Is Nothing Then

                e.DataRow("第一列") = Nothing

                e.DataRow("第三列") = Nothing

            Else

               

                Dim dr As DataRow = e.DataRow

                If dr.IsNull("第二列") = False Then '身份证号码是否为空

                    dr("第二列") = dr("第二列")

                    dr("第三列") = dr("第二列")

                End If

            End If

        End If

 

If e.DataCol.Name = "第三列" Then

            If e.NewValue Is Nothing Then

                e.DataRow("第二列") = Nothing

                e.DataRow("第一列") = Nothing

            Else

               

                Dim dr As DataRow = e.DataRow

                If dr.IsNull("第三列") = False Then '身份证号码是否为空

                    dr("第二列") = dr("第三列")

                    dr("第一列") = dr("第三列")

                End If

            End If

        End If

 

End Select


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/6/29 20:33:00 [只看该作者]

Select Case e.DataCol.Name
    Case "第一列","第二列","第三列"
        Dim str() As String = {"第一列","第二列","第三列"}
        SystemReady = False
        For Each c As String In str
            If c <> e.DataCol.Name Then
                e.DataRow(c) = e.NewValue
            End If
        Next
        SystemReady = true
End Select

 回到顶部