Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共12 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:记录退出时间

1楼
edisontsui 发表于: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楼
有点蓝 发表于:2024/1/27 14:57:00
使用的内置用户,还是自定义用户管理?
3楼
edisontsui 发表于:2024/1/27 16:01:00
应该是内置用户管理吧,我没有专门设计过用户登录界面。
4楼
有点蓝 发表于: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
5楼
edisontsui 发表于:2024/1/29 14:40:00
暂时测试结果是没问题,我再观察一段时间。谢谢。
6楼
edisontsui 发表于:2024/2/22 10:13:00
代码是放在 beforecloseproject 这个事件里面。现在还是有部分用户的退出时间无法记录下来。好像是跟用户组别有关:在执行4楼的代码时,某些组别的用户不会显示 msgbox(User.name) 和 msgbox(drf IsNot Nothing)。但是我也没有限制哪个用户组别是否执行代码。请问还有什么原因呢?
7楼
有点蓝 发表于:2024/2/22 10:30:00
msgbox代码不可能会受什么组别影响。要么代码根本就没有执行,也就是程序是强制退出的,比如

1、断电被关机
2、没有退出程序,直接关机
3、到任务管理器强制退出
8楼
edisontsui 发表于: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楼
有点蓝 发表于:2024/2/22 11:39:00
drf是什么东西?
10楼
edisontsui 发表于:2024/2/22 12:35:00
不好意思,抄漏一行给你,下面这行是在8楼的代码最前面的:
Dim drf As DataRow = DataTables("系统版本").SQLFind("用户名 = '" & User.name & "'")
共12 条记录, 每页显示 10 条, 页签: [1] [2]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .05469 s, 2 queries.