以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  【求助】操作日志优化请教  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=147523)

--  作者:chen_sheng
--  发布时间:2020/3/18 18:40:00
--  【求助】操作日志优化请教
借鉴了一个论坛操作日志实例比较好
发现如下问题  :
  操作日志退出无保存,记录了日志修改而实际无修改
请教:此种问题该如何才能规避  谢谢
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:操作日志2017 (1).table



--  作者:y2287958
--  发布时间:2020/3/19 7:56:00
--  
在全局表事件中写,但未开启全局表事件。
--  作者:chen_sheng
--  发布时间:2020/3/19 8:49:00
--  
窗口表开启了也存在这个问题
1.只修改,最后不点保存,记录显示修改了,实际表数据是没有修改的




--  作者:有点蓝
--  发布时间:2020/3/19 9:59:00
--  
保存数据的时候同步保存日志表。退出窗口的时候判断一下表格如果有改动就提示是否保存,如果不保存就撤销更改,同步取消日志表的更改
--  作者:chen_sheng
--  发布时间:2020/3/19 12:53:00
--  
能否麻烦官方完善一下此案例

思路是这样的  但是我还是没有明白具体如何操作实现

即使不用窗口表 只在系统表一样存在此问题  拜托帮忙完善一下案例思路  麻烦系统表完善一下即可  

特别是日志表的撤销修改 每个单元格都是日志表的一行  意思是本行对多行日志的方式如何处理

拜托!
[此贴子已经被作者于2020/3/19 12:55:53编辑过]

--  作者:有点蓝
--  发布时间:2020/3/19 13:49:00
--  
除非修改后马上保存,否则上面的用法没有很好的方法可以保证数据和日志的一致性。

1、DataColChanged事件改为到BeforeSaveDataRow事件保存日志,毕竟第一次修改到保存前,某个单元格可能会被修改N次,记录中间的修改是没有什么意义的。
在这个事件可以使用OriginalValue获取修改前的值。http://www.foxtable.com/webhelp/topics/2369.htm

2、如果使用SqlServer,使用数据库的触发器记录

--  作者:chen_sheng
--  发布时间:2020/3/19 13:56:00
--  
能否指导一下数据库的触发器记录用法 图片点击可在新窗口打开查看图片点击可在新窗口打开查看

这个功能整到数据库内 强大的不是一点半点  
1.性能有提升
2.可以记录用户所有操作信息
3.记录操作人员何时进入系统/打开窗口/退出窗口/何时关闭系统,及打开窗口用时  这强大了
[此贴子已经被作者于2020/3/19 14:01:07编辑过]

--  作者:有点蓝
--  发布时间:2020/3/19 14:18:00
--  
百度“SqlServer 触发器”