以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]请教,已在项目事件设置打开自定义用户登录窗口,但系统用户登录窗口还是弹出来?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=56627)

--  作者:rophy0952
--  发布时间:2014/9/10 9:04:00
--  [求助]请教,已在项目事件设置打开自定义用户登录窗口,但系统用户登录窗口还是弹出来?

如题,已在项目事件中写入打开自定义用户登录窗口的代码,为什么在点击项目的时候,先弹出系统的用户登录窗口,然后项目打开后,才弹出自定义的用户登录窗口呢?

 


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

--  作者:有点甜
--  发布时间:2014/9/10 9:15:00
--  

1、你在用户管理那里,添加一个用户,设置成默认;

 

2、重新打开项目,就不会出现内置的登陆框了


--  作者:rophy0952
--  发布时间:2014/9/10 9:22:00
--  
按照您的说法,设置后内置的登陆框没有出现,但是自定义登录框是在所有表加载完后,才弹出来,这样是正常的吗?
--  作者:有点甜
--  发布时间:2014/9/10 9:24:00
--  
 回复3楼,正常,本来就是这样的。
--  作者:rophy0952
--  发布时间:2014/9/10 9:31:00
--  
我已设置好用户和授权,在窗口afterload中录入下面的代码,当我使用无此权限的用户登录测试时,出现错误提示,然后窗口还是打开了,但是在我的授权表里面的确有"采购管理"这个分组的.
If Functions.Execute("ShouQuan","采购管理","采购报价录入") Then
Tables("物料信息表").ExtendLastCol = True
Else
MessageBox.show("您无权限使用此模块!","提示:")
End If


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

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


--  作者:有点甜
--  发布时间:2014/9/10 9:35:00
--  

 shouquan函数有问题,原先的那些 user.xxx 要换成那你自己的 _UserName 等


--  作者:rophy0952
--  发布时间:2014/9/10 9:43:00
--  
If User.Type <> UserTypeEnum.User Then \' 如果是开发者或者管理员
    Return True \'则具备所有权限
End If
Dim dt As DataTable = DataTables("授权表")
Dim dr As DataRow
\'首先判断分组的授权用户是否包括此用户或此用户所属的分组
dr = dt.Find("分组 = \'" & args(0) & "\' And 权限 Is Null" )
If dr Is Nothing Then
    MessageBox.show("不存在名为""" & args(0) & "分组!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Return False
End If
If dr.IsNull("用户") = False Then
    Dim nms() As String = dr("用户").Split(",")
    For Each nm As String In nms
        If nm = User.Group OrElse nm = User.Name Then \'如果授权用户包括登录用户所属的分组或其用户名
            Return True \'返回True
        End If
    Next
End If
\'然后判断权限的授权用户是否包括此用户或此用户所属的分组
If Args(1) = "" Then
    Return False
End If
dr = dt.Find("分组 = \'" & args(0) & "\' And 权限 = \'" & args(1) & "\'")
If dr Is Nothing Then
    MessageBox.show("不存在名为""" & args(1) & "权限!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Return False
End If
If dr.IsNull("用户") = False Then
    Dim nms() As String = dr("用户").Split(",")
    For Each nm As String In nms
        If nm = User.Group OrElse nm = User.Name Then \'如果授权用户包括登录用户所属的分组或其用户名
            Return True \'返回True
        End If
    Next
End If
Return False


请问是红色部分改成  _UserGroup与_UserName 吗?改了以后还是那样提示.

--  作者:Bin
--  发布时间:2014/9/10 9:48:00
--  
说明条件不成立

dr = dt.Find("分组 = \'" & args(0) & "\' And 权限 Is Null" )  找不到对应的行.

--  作者:有点甜
--  发布时间:2014/9/10 9:50:00
--  


Dim dt As DataTable = DataTables("授权表")
Dim dr As DataRow
If args(1) = "" Then
    \'首先判断分组的授权用户是否包括此用户或此用户所属的分组
    dr = dt.Find("分组 = \'" & args(0) & "\' And 权限 Is Null" )
    If dr Is Nothing Then
        MessageBox.show("不存在名为""" & args(0) & "分组!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
        Return False
    End If
    If dr.IsNull("用户") = False Then
        Dim nms() As String = dr("用户").Split(",")
        For Each nm As String In nms
            If nm = _UserGroup OrElse nm = _UserName  Then \'如果授权用户包括登录用户所属的分组或其用户名
                Return True \'返回True
            End If
        Next
    End If
    Return False
Else
    \'然后判断权限的授权用户是否包括此用户或此用户所属的分组 
    dr = dt.Find("分组 = \'" & args(0) & "\' And 权限 = \'" & args(1) & "\'")
    If dr Is Nothing Then
        MessageBox.show("不存在名为""" & args(1) & "权限!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
        Return False
    End If
    If dr.IsNull("用户") = False Then
        Dim nms() As String = dr("用户").Split(",")
        For Each nm As String In nms
            If nm = _UserGroup OrElse nm = _UserName  Then \'如果授权用户包括登录用户所属的分组或其用户名
                Return True \'返回True
            End If
        Next
    End If
    Return False
End If


--  作者:rophy0952
--  发布时间:2014/9/10 13:52:00
--  
已解决,谢谢!祝老师节日快乐哟!图片点击可在新窗口打开查看