以文本方式查看主题

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

--  作者:pcxjxjhkw
--  发布时间:2013/12/4 19:15:00
--  [求助]关于日志的问题

 

小例中在全局表属性中设置了 修改数据 和增加行 的代码,如果你修改了数据或增加行,在数据操作日志中均会显示。在部分列中设置了默认值,即新增行中部分列会自动显示默认值。

我想达到的效果是:新增行时只显示新增行日志,不显示修改数据日志。

 

求助各位,谢谢了

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:操作日志.table


--  作者:有点甜
--  发布时间:2013/12/4 19:38:00
--  
 如下代码,datacolchanged

If e.DataTable.Name <> "数据操作日志" Then
    If e.OldValue Is Nothing AndAlso e.DataCol.defaultvalue IsNot Nothing AndAlso e.NewValue = e.DataCol.defaultvalue.Replace("""", "") Then
        msgbox("新增")
    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("操作") = """" & e.OldValue &  """ 改成了 """ & e.NewValue & """"
        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
End If
[此贴子已经被作者于2013-12-4 19:38:29编辑过]

--  作者:pcxjxjhkw
--  发布时间:2013/12/4 20:05:00
--  

又出现新的问题,如果部分列设置为逻辑型,或在表属性DataRowAdding事件中加入了代码(新增行自动输入某此值),又不能达到上述效果了

 


--  作者:有点甜
--  发布时间:2013/12/4 20:23:00
--  
 逻辑列测试没有问题。

 加入datarowAdding的问题,可以这样处理


SystemReady = False
\'追加数据代码

SystemReady =
True


--  作者:pcxjxjhkw
--  发布时间:2013/12/4 20:27:00
--  

不好意思,还是没明白


--  作者:有点甜
--  发布时间:2013/12/4 20:56:00
--  
 datarowadding事件,比如

SystemReady = False

e.datarow("xxx") = "hello1"
e.datarow("xxx") = "hello2"
e.datarow("xxx") = "hello3"

SystemReady = 
True

--  作者:方丈
--  发布时间:2014/10/30 10:30:00
--  

请教 有点甜  :

 

上面的操作日志中,如果一次性新增加100行(假如是新增第11行至第110行),操作日志将用100行来记录这一次操作,想请教一个问题,能只用一行日志来表示一次新增操作吗,也就是涉及行显示为11-110,操作显示为增加100行

 

谢谢!


--  作者:有点甜
--  发布时间:2014/10/30 10:32:00
--  

 你去控制新增多行的按钮。

 

 

SystemReady = False

\'新增多行

SystemReady = 
True

--  作者:方丈
--  发布时间:2014/10/30 10:49:00
--  
谢谢
--  作者:方丈
--  发布时间:2014/10/30 11:05:00
--  
新增100行后,没有在日志中记录,也没办法在日志中将“涉及行”显示为11-110,“操作”显示为增加100行
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:操作日志777.table

[此贴子已经被作者于2014-10-30 11:05:32编辑过]