以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  系统日志自动记录的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=87287)

--  作者:天若千颖
--  发布时间:2016/7/7 15:37:00
--  系统日志自动记录的问题
我设置了一个表叫做“系统日志表”,在项目的AfterOpenProject事件中写入:

Tables("系统日志表").AddNew()
Tables("系统日志表").Current("登录用户") =User.Name
Tables("系统日志表").Current("登录时间") =Date.Now

这个比帮助里面把这个记录写入本地电脑的LOG日志方便多了,可以记录所有人的登录日志。

但是,这个表普通会员是不能查看的,问题就又出来了,如果普通会员无法查看这个表(可视化授权设置为不可见),当登陆的时候,这个表好像没有写入了。

如何实现这个表当普通会员登录时无法查看,但是登录的记录又可能正常的记录呢?

--  作者:大红袍
--  发布时间:2016/7/7 15:44:00
--  

改一下代码

 

Dim ndr As DataRow = DataTables("系统日志表").AddNew()
ndr("登录用户") =User.Name
ndr("登录时间") =Date.Now

--  作者:天若千颖
--  发布时间:2016/7/7 15:48:00
--  
还是没有记录上,刚用别的账号登陆了2次,日志里面没有记录。
--  作者:大红袍
--  发布时间:2016/7/7 15:52:00
--  

afterOpenProject,是打开项目才会执行的。

 

你登陆,可能没有重新打开项目。你可以把代码写到LoadUserSetting事件

[此贴子已经被作者于2016/7/7 15:52:44编辑过]

--  作者:天若千颖
--  发布时间:2016/7/7 15:57:00
--  
我是把整个项目关闭之后,重新打开登陆的。

我试了把代码写到LoadUserSetting里面,还是没有把记录写进去呢。

--  作者:大红袍
--  发布时间:2016/7/7 15:58:00
--  
加入msgbox,看是否触发代码。
--  作者:天若千颖
--  发布时间:2016/7/7 16:03:00
--  
加在最后,登录时在显示加载数据的时候有信息提示呢。

\'创建登陆日志
Dim ndr As DataRow = DataTables("系统日志表").AddNew()
ndr("登录用户") =User.Name
ndr("登录时间") =Date.Now
MessageBox.Show("测试","提示")


--  作者:大红袍
--  发布时间:2016/7/7 16:07:00
--  

代码肯定没问题,

 

 1、进入系统后,显示此表,看是否有数据。

 

 2、单独执行代码,看有没有数据。

 

 3、看你此表beforesaveDataRow等事件是否写有什么限制代码

 

不行就上传实例。


--  作者:天若千颖
--  发布时间:2016/7/7 16:26:00
--  
问题找到了,确实是,我在关闭项目的时候设置了普通用户的修改不保存。

\'创建登陆日志
Dim ndr As DataRow = DataTables("系统日志表").AddNew()
ndr("登录用户") =User.Name
ndr("登录时间") =Date.Now
DataTables("系统日志表").Save()

添加记录后直接保存,这样就解决了。

谢谢红袍老师的耐心解答。