Foxtable(狐表)用户栏目专家坐堂 → 记录退出时间


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

主题:记录退出时间

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


加好友 发短信
等级:七尾狐 帖子:1505 积分:9756 威望:0 精华:0 注册:2014/12/18 16:12:00
记录退出时间  发帖心情 Post By:2024/1/27 14:48:00 [只看该作者]

Dim drf As DataRow = DataTables("系统版本").SQLFind("用户名 = '" & User.name & "'")
If drf IsNot Nothing Then
    drf("退出时间") = Date.now
    drf.save
End If

上面代码放在 beforecloseproject 里面,用于记录用户退出系统的时间。但是,好像有时候记录不到退出时间,请问是什么原因呢?比如,同样在我的电脑登录,用开发者登录,可以记录退出时间;如果用其他用户登录,就不会记录退出时间。谢谢。

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


加好友 发短信
等级:超级版主 帖子:107147 积分:544978 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/1/27 14:57:00 [只看该作者]

使用的内置用户,还是自定义用户管理?

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


加好友 发短信
等级:七尾狐 帖子:1505 积分:9756 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2024/1/27 16:01:00 [只看该作者]

应该是内置用户管理吧,我没有专门设计过用户登录界面。

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


加好友 发短信
等级:超级版主 帖子:107147 积分:544978 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/1/27 16:10:00 [只看该作者]

代码在什么事件的?

调试
msgbox(User.name)
Dim drf As DataRow = DataTables("系统版本").SQLFind("用户名 = '" & User.name & "'")
msgbox(drf IsNot Nothing)
If drf IsNot Nothing Then
    drf("退出时间") = Date.now
    drf.save
End If

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


加好友 发短信
等级:七尾狐 帖子:1505 积分:9756 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2024/1/29 14:40:00 [只看该作者]

暂时测试结果是没问题,我再观察一段时间。谢谢。

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


加好友 发短信
等级:七尾狐 帖子:1505 积分:9756 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2024/2/22 10:13:00 [只看该作者]

代码是放在 beforecloseproject 这个事件里面。现在还是有部分用户的退出时间无法记录下来。好像是跟用户组别有关:在执行4楼的代码时,某些组别的用户不会显示 msgbox(User.name) 和 msgbox(drf IsNot Nothing)。但是我也没有限制哪个用户组别是否执行代码。请问还有什么原因呢?

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


加好友 发短信
等级:超级版主 帖子:107147 积分:544978 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/2/22 10:30:00 [只看该作者]

msgbox代码不可能会受什么组别影响。要么代码根本就没有执行,也就是程序是强制退出的,比如

1、断电被关机
2、没有退出程序,直接关机
3、到任务管理器强制退出

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


加好友 发短信
等级:七尾狐 帖子:1505 积分:9756 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2024/2/22 11:26:00 [只看该作者]

是正常关闭系统的,就是点击系统右上角的 x 来退出系统的。现在发现,就是“营销”和“仓库”这个两个组的用户执行 beforecloseproject 就会有问题,其他组别都没有问题。
我们再看下面的 beforeOpenProject 代码,这些代码,所有组别执行都没有问题:
'记录用户登录时的 IP 地址
Dim IPAdress As System.Net.IPAddress
Dim HostName As String
HostName = System.Net.Dns.GetHostName '获得本机的机器名
Dim l As Integer = System.Net.Dns.GetHostByName(HostName).AddressList.Length
Dim s As String = ""
For i As Integer = 0 To l - 1
    IPAdress = System.Net.Dns.GetHostByName(HostName).AddressList.getValue(i) '获得本机的IP
    s &= IPAdress.Tostring & ","
Next
s = s.trim(",")

If drf IsNot Nothing Then
    drf("系统发布日期") = Publishdate
    drf("登录时间") = Date.now
    drf("计算机名称") = SysInfo.ComputerName 
    drf("IP地址") = s
    drf("组别") = User.group
    drf.save
Else
    Dim dra1 As DataRow = DataTables("系统版本").AddNew()
    dra1("用户名") = User.name
    dra1("系统发布日期") = Publishdate
    dra1("登录时间") = Date.now
    dra1("计算机名称") = SysInfo.ComputerName   
    dra1("IP地址") = s
    dra1("组别") = User.group 
    dra1.save
End If
'记录用户登录信息结束


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


加好友 发短信
等级:超级版主 帖子:107147 积分:544978 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/2/22 11:39:00 [只看该作者]

drf是什么东西?

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


加好友 发短信
等级:七尾狐 帖子:1505 积分:9756 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2024/2/22 12:35:00 [只看该作者]

不好意思,抄漏一行给你,下面这行是在8楼的代码最前面的:
Dim drf As DataRow = DataTables("系统版本").SQLFind("用户名 = '" & User.name & "'")

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