以文本方式查看主题

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

--  作者:abc2363360
--  发布时间:2017/1/4 15:54:00
--  [求助]系统增加删除行日志求助
我是小白有些问题麻烦大神帮忙:
问题1:DataTables("表A").GlobalHandler.DataColChanged = True  这句帮我修改为对所有表有效
问题2:麻烦大神参考求助项目里面的操作日志,帮我写增加、删除行日志;删除行需要好像操作日志那样原行数据要提取出来。
问题3:窗口1
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:系统增加删除行日志求助.rar

有个  复制资料  按钮 点击后按以下格式在后台复制数据,我在其他地方点粘贴可以把刚才复制的数据粘贴出去。

后台复制资料模板:
--------------------------------------
  第一列:提取表A第一列当前行数据
  第二列:提取表A第二列当前行数据
 “固定格式一句话,不是提取表格内容”
--------------------------------------


--  作者:有点色
--  发布时间:2017/1/4 15:58:00
--  

1、

 

For Each dt As DataTable in DataTables

    dt.GlobalHandler.DataColChanged = True

Next


--  作者:有点色
--  发布时间:2017/1/4 16:00:00
--  

3、参考

 

http://www.foxtable.com/webhelp/scr/2069.htm

 

 


--  作者:有点色
--  发布时间:2017/1/4 16:06:00
--  

增加行代码

 

If e.DataTable.Name <> "系统数据操作日志表"  Then
    If e.DataRow.RowState = 2 Then
        Return
    Else
        Dim dr As DataRow = DataTables("系统数据操作日志表").AddNew
        dr("ID") = e.DataRow("_Identify")
        dr("用户") = User.Name
        dr("涉及表") = e.DataTable.Name
        \'dr("涉及列") = e.DataCol.Name
        dr("涉及行") = e.DataRow("_Identify")
        dr("时间") = Date.Now
        dr("操作") = "增加了一行"
    End If
End If

 

删除行代码

 

If e.DataTable.Name <> "系统数据操作日志表"  Then
    Dim dr As DataRow = DataTables("系统数据操作日志表").AddNew
    dr("ID") = e.DataRow("_Identify")
    dr("用户") = User.Name
    dr("涉及表") = e.DataTable.Name
    \'dr("涉及列") = e.DataCol.Name
    dr("涉及行") = e.DataRow("_Identify")
    dr("时间") = Date.Now
    dr("操作") = "删除了一行"
    Dim str As String = ""
    For Each c As DataCol In e.DataTable.DataCols
        str += c.Name & "=" & e.DataRow(c.Name) & "|"
    Next
    dr("原行数据") = str
End If

[此贴子已经被作者于2017/1/4 16:47:45编辑过]

--  作者:abc2363360
--  发布时间:2017/1/4 16:09:00
--  感谢大神
感谢大神
--  作者:abc2363360
--  发布时间:2017/1/4 16:23:00
--  请问增加行是在全局表事件DataRowAdded中填写吗?
请问增加行是在全局表事件DataRowAdded中填写吗?  为什么我复制上去提示未知错误 ?
--  作者:有点色
--  发布时间:2017/1/4 16:38:00
--  
认认真真看4楼,那是两段代码。
--  作者:abc2363360
--  发布时间:2017/1/4 16:46:00
--  我是复制下面代码到全局表事件DataRowAdded中
If e.DataTable.Name <> "系统数据操作日志表"  Then
    If e.DataRow.RowState = 2 Then
        Return
    Else
        Dim dr As DataRow = DataTables("系统数据操作日志表").AddNew
        dr("ID") = e.DataRow("_Identify")
        dr("用户") = User.Name
        dr("涉及表") = e.DataTable.Name
        \'dr("涉及列") = e.DataCol.Name
        dr("涉及行") = e.DataRow("_Identify")
        dr("时间") = Date.Now
        dr("操作") = "增加了一行"
        Dim str As String = ""
        For Each c As DataCol In e.DataTable.DataCols
            If c.name = e.DataCol.name Then
                str += c.Name & "=" & e.oldvalue & "|"
            Else
                str += c.Name & "=" & e.DataRow(c.Name) & "|"
            End If
        Next
        dr("原行数据") = str
    End If
End If
--  作者:有点色
--  发布时间:2017/1/4 16:48:00
--  

改一下,新增行的时候,没有数据的。

 

If e.DataTable.Name <> "系统数据操作日志表"  Then
    If e.DataRow.RowState = 2 Then
        Return
    Else
        Dim dr As DataRow = DataTables("系统数据操作日志表").AddNew
        dr("ID") = e.DataRow("_Identify")
        dr("用户") = User.Name
        dr("涉及表") = e.DataTable.Name
        \'dr("涉及列") = e.DataCol.Name
        dr("涉及行") = e.DataRow("_Identify")
        dr("时间") = Date.Now
        dr("操作") = "增加了一行"
    End If
End If


--  作者:abc2363360
--  发布时间:2017/1/4 16:59:00
--  前面2点都处理好了,感谢,还有问题3
前面2点都处理好了,感谢,还有问题3 

将字符串添加到剪贴板中。

示例

Dim s As String = "我喜欢Foxtable"
ClipBoard.SetText(s)
 

这个只是指定内容添加到剪贴板,我还需要获取表A某列当前行的数据,然后把2个内容一起添加到剪贴板,麻烦大神帮忙写一下代码!