Foxtable(狐表)用户栏目专家坐堂 → [求助]关于表A修改事项记录到表B的问题


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

主题:[求助]关于表A修改事项记录到表B的问题

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


加好友 发短信
等级:超级版主 帖子:107813 积分:548416 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/27 9:40:00 [显示全部帖子]


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


加好友 发短信
等级:超级版主 帖子:107813 积分:548416 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/27 10:25:00 [显示全部帖子]

find改为select获取所有数据即可:http://www.foxtable.com/webhelp/topics/0400.htm

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


加好友 发短信
等级:超级版主 帖子:107813 积分:548416 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/27 13:37:00 [显示全部帖子]

麻烦以后发帖贴代码直接贴即可,不要使用代码模式添加什么乱七八糟的序号,增加了复制修改的麻烦

Select Case e.DataCol.Name
    Case "身份证","姓名","单位","学历","电话","年薪"
        Dim dr As DataRow = DataTables("表B").AddNew
        dr("修改者") = user.Name
        dr("修改时间") = Date.Now
        dr("身份证") = e.DataRow("身份证")
        dr("姓名") = e.DataRow("姓名")
        dr("被修改字段") = e.DataCol.name
        dr("原值") = e.oldvalue
        dr("现值") = e.newvalue
End Select

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


加好友 发短信
等级:超级版主 帖子:107813 积分:548416 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/27 14:50:00 [显示全部帖子]

Select Case e.DataCol.Name
    Case "身份证","姓名","单位","学历","电话","年薪"
        Dim dr As DataRow =DataTables("表B").Find("修改者='" & user.Name & "' and 身份证='" & e.DataRow("身份证") & "'")
        If dr Is Nothing Then
            dr= DataTables("表B").AddNew
            dr("修改者") = user.Name
            dr("修改时间") = Date.Now
            dr("身份证") = e.DataRow("身份证")
            dr("姓名") = e.DataRow("姓名")
            dr("原值") = e.oldvalue
        End If
        dr("被修改字段") = e.DataCol.name
        dr("现值") = e.newvalue
End Select

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


加好友 发短信
等级:超级版主 帖子:107813 积分:548416 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/28 8:50:00 [显示全部帖子]

代码放到datacolchanging事件
Select Case e.DataCol.Name
    Case "身份证","姓名","单位","学历","电话","年薪"
        Dim dr As DataRow
        If e.DataRow.Rowstate <> DataRowState.Unchanged
            dr = DataTables("表B").Find("修改者='" & user.Name & "' and  被修改字段='" & e.DataCol.name & "'")
        End If
        If dr Is Nothing Then
            dr= DataTables("表B").AddNew
            dr("修改者") = user.Name
            dr("修改时间") = Date.Now
            dr("身份证") = e.DataRow("身份证")
            dr("姓名") = e.DataRow("姓名")
            dr("原值") = e.oldvalue
            dr("被修改字段") = e.DataCol.name
        End If
        dr("现值") = e.newvalue
End Select

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


加好友 发短信
等级:超级版主 帖子:107813 积分:548416 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/28 11:53:00 [显示全部帖子]

如果要区分人,在加上身份证或者姓名做条件

dr = DataTables("表B").Find("修改者='" & user.Name & "' and  被修改字段='" & e.DataCol.name & "' and 姓名=xxxx")
[此贴子已经被作者于2020/7/28 11:53:01编辑过]

 回到顶部