Foxtable(狐表)用户栏目专家坐堂 → [求助]关于日志的问题


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

主题:[求助]关于日志的问题

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


加好友 发短信
等级:七尾狐 帖子:1791 积分:12764 威望:0 精华:1 注册:2013/7/18 15:51:00
[求助]关于日志的问题  发帖心情 Post By:2013/12/4 19:15:00 [只看该作者]

 

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

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

 

求助各位,谢谢了

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


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1791 积分:12764 威望:0 精华:1 注册:2013/7/18 15:51:00
  发帖心情 Post By:2013/12/4 20:05:00 [只看该作者]

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

 


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


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

 逻辑列测试没有问题。

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


SystemReady = False
'追加数据代码

SystemReady =
True


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


加好友 发短信
等级:七尾狐 帖子:1791 积分:12764 威望:0 精华:1 注册:2013/7/18 15:51:00
  发帖心情 Post By:2013/12/4 20:27:00 [只看该作者]

不好意思,还是没明白


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


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

 datarowadding事件,比如

SystemReady = False

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

SystemReady = 
True

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


加好友 发短信
等级:四尾狐 帖子:811 积分:10952 威望:0 精华:1 注册:2008/9/2 18:58:00
  发帖心情 Post By:2014/10/30 10:30:00 [只看该作者]

请教 有点甜  :

 

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

 

谢谢!


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


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

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

 

 

SystemReady = False

'新增多行

SystemReady = 
True

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


加好友 发短信
等级:四尾狐 帖子:811 积分:10952 威望:0 精华:1 注册:2008/9/2 18:58:00
  发帖心情 Post By:2014/10/30 10:49:00 [只看该作者]

谢谢

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


加好友 发短信
等级:四尾狐 帖子:811 积分:10952 威望:0 精华:1 注册:2008/9/2 18:58:00
  发帖心情 Post By:2014/10/30 11:05:00 [只看该作者]

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

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

 回到顶部
总数 16 1 2 下一页