以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  老师,用户组设置有问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=177332)

--  作者:初心不改再说未来
--  发布时间:2022/5/18 1:24:00
--  老师,用户组设置有问题
我的表里的group字段有管理员选项,表是根据http://www.foxtable.com/webhelp/topics/2048.htm 一步步走的


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20220518011705.png
图片点击可在新窗口打开查看

然后用这个text用户登录进去,有个窗口里的按钮,afterload事件里设置了:

If User.Group <> "管理员" Then
    e.Form.Controls("Button1").Enabled = False

End If

但是按钮还是灰色:

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20220518011720.png
图片点击可在新窗口打开查看

不知道是这个字段的问题,还是自定义用户的问题?就感觉没生效一样。

谢谢老师

--  作者:有点蓝
--  发布时间:2022/5/18 8:44:00
--  
自定义用户管理不能再使用user对象。还是帮助没有认真看,请仔细看看帮助后面的总结

四、在全局代码中定义两个变量:

Public _UserName As String
Public
 _UserGroup As String

_UserName用户保存当前登录用户的名称,_UserGroup用于保存该用户的分组。


--  作者:初心不改再说未来
--  发布时间:2022/5/18 14:06:00
--  

登录显然不会触发LoadUserSetting事件,所以该事件中的代码应该移植到自定义用户登录窗口的"确定"按钮中。

然后就这样了。。。。


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20220518140436.png
图片点击可在新窗口打开查看


--  作者:有点蓝
--  发布时间:2022/5/18 14:11:00
--  
dt这个变量名称重复了,换一个名称
--  作者:初心不改再说未来
--  发布时间:2022/5/18 14:32:00
--  
If _UserGroup = "普通用户" Then
    For Each dta As DataTable In DataTables
        dta.AllowClipBoard = False
    Next
End If

我写到了用户登录窗口的确定按钮里,为啥普通用户还是能编辑表格呢?

--  作者:初心不改再说未来
--  发布时间:2022/5/18 14:33:00
--  
Dim UserName As String = e.Form.Controls("UserName").Value
Dim cmd As New SQLCommand
Dim dt As DataTable
Dim dr As DataRow
cmd.C
If UserName = ""  Then
    Messagebox.show("请选择用户!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Return
End If
cmd.CommandText = "Select * Fro m {Users} Where [Name] = \'" & UserName & "\'"
dt = cmd.ExecuteReader
If dt.DataRows.Count = 0 Then
    Messagebox.show("此用户不存在!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Return
End If
dr = dt.DataRows(0)
If e.Form.Controls("PassWord").Value = dr("Password") Then
    _UserName = UserName
    _UserGroup = dr("Group")
    e.Form.Close
Else
    Messagebox.show("密码错误!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If

If _UserGroup = "普通用户" Then
    For Each dta As DataTable In DataTables
        dta.AllowClipBoard = False
    Next
End If

这个是登录按钮的所有的代码
[此贴子已经被作者于2022/5/18 14:34:18编辑过]

--  作者:有点蓝
--  发布时间:2022/5/18 14:42:00
--