以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]关于日志的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=43342) |
||||
-- 作者:pcxjxjhkw -- 发布时间:2013/12/4 19:15:00 -- [求助]关于日志的问题
小例中在全局表属性中设置了 修改数据 和增加行 的代码,如果你修改了数据或增加行,在数据操作日志中均会显示。在部分列中设置了默认值,即新增行中部分列会自动显示默认值。 我想达到的效果是:新增行时只显示新增行日志,不显示修改数据日志。
求助各位,谢谢了
|
||||
-- 作者:有点甜 -- 发布时间: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 |
||||
-- 作者: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行
[此贴子已经被作者于2014-10-30 11:05:32编辑过]
|