以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  自定义用户登录问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=176761)

--  作者:lgz518
--  发布时间:2022/4/25 23:18:00
--  自定义用户登录问题
自定义用户登录问题

默认用户

单击“默认用户”按钮,可以将选定用户设为默认用户

图片点击可在新窗口打开查看

一旦设置了默认用户,打开项目的时候,将不再出现用户登录窗口,而是直接以默认用户身份登录。如果在打开项目的时候,始终按住Ctrl键,将正常出现登录窗口。

提示:再次单击“默认用户”按钮,可以取消默认用户设置。


问题1.:设置“默认用户”,才能使用外部数据源,自定义窗口,但由内置用户,设置默认用户,无论使用外部数据源,哪个用户名,系统都是“默认用户”,如何处理?


问题2:能不能做一个按键在使用外部数据源自定义用户登录,内置用户用按键给关掉?目前系统这样虽然方便直接使用,但非常不方便开发,自定义。








--  作者:有点蓝
--  发布时间:2022/4/25 23:24:00
--  
没看懂。使用的是那种方式管理用户?


--  作者:lgz518
--  发布时间:2022/4/25 23:25:00
--  
\'项目打开后-AfterOpenProject-打开"用户登录"窗口

Forms("用户登录").Open()
If _UserName = "" Then
    Syscmd.Project.Exit()
    Return \'这个要加上,因为既然要退出,就不应该再执行后面的初始化代码了,否则会出错
End If

--  作者:有点蓝
--  发布时间:2022/4/25 23:30:00
--  
这种用法没有办法在数据源设置里使用登录的用户。因为先设置数据源,才会有用户。

如果要动态设置数据源,参考这种用法:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:选择数据源.zip

--  作者:lgz518
--  发布时间:2022/4/26 19:43:00
--  
问题1:加载报错:
Dim Filter As String
Filter = "制单人=\'" & User.name & "\'" Or"UserID=\'" & UserID & "\'"And "审核 Is null"  报错UserID未声明,不在级别保护
\'Filter = "UserID=\'" & UserID & "\'And 审核 Is null"
Filter = "制单人=\'" & User.name & "\' and  审核 is null "   不显示数据
Filter = "制单人=\'" & User.name & "\' Or  审核 is null "    显示数据,但按上一条,下一条,数据不按制单人,而是全部数据
DataTables("入库主表").LoadFilter = Filter \'入库主表是表名
DataTables("入库主表").Load()

问题2:加载报错:
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.4.30.8

详细错误信息:
从字符串“UserID=\'林总\'”到类型“Long”的转换无效。
输入字符串的格式不正确。



Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = "SELEC国 DISTINCT Name From {Xjry}"

Dim Filter As String
Dim s As String = ""
Select Case _UserGroup
    Case "制单人", "", Nothing

        s = _UserName
    Case Else
        Dim dr2 As DataRow
        dr2 = DataTables("User").Find("[Group] = \'" & _UserGroup & "\'")
 If dr2 IsNot Nothing Then
            s = dr2("Xjry")
        End If
End Select

Filter =" 制单人=\'" & User.name & "\'"  Or "UserID in (\'" & s.replace(",", "\',\'") & "\')"
\'Filter = "UserID in (\'" & s.replace(",", "\',\'") & "\')"
msgbox(Filter) \'调试用
DataTables("入库明细").LoadFilter = Filter
DataTables("入库明细").Load()

--  作者:lgz518
--  发布时间:2022/4/26 19:44:00
--  
问题1:加载报错:
Dim Filter As String
Filter = "制单人=\'" & User.name & "\'" Or"UserID=\'" & UserID & "\'"And "审核 Is null"  报错UserID未声明,不在级别保护
\'Filter = "UserID=\'" & UserID & "\'And 审核 Is null"
Filter = "制单人=\'" & User.name & "\' and  审核 is null "   不显示数据
Filter = "制单人=\'" & User.name & "\' Or  审核 is null "    显示数据,但按上一条,下一条,数据不按制单人,而是全部数据
DataTables("入库主表").LoadFilter = Filter \'入库主表是表名
DataTables("入库主表").Load()

问题2:加载报错:
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.4.30.8

详细错误信息:
从字符串“UserID=\'林总\'”到类型“Long”的转换无效。
输入字符串的格式不正确。



Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = "SELEC国 DISTINCT Name From {Xjry}"

Dim Filter As String
Dim s As String = ""
Select Case _UserGroup
    Case "制单人", "", Nothing

        s = _UserName
    Case Else
        Dim dr2 As DataRow
        dr2 = DataTables("User").Find("[Group] = \'" & _UserGroup & "\'")
 If dr2 IsNot Nothing Then
            s = dr2("Xjry")
        End If
End Select

Filter =" 制单人=\'" & User.name & "\'"  Or "UserID in (\'" & s.replace(",", "\',\'") & "\')"
\'Filter = "UserID in (\'" & s.replace(",", "\',\'") & "\')"
msgbox(Filter) \'调试用
DataTables("入库明细").LoadFilter = Filter
DataTables("入库明细").Load()

--  作者:有点蓝
--  发布时间:2022/4/26 20:43:00
--  
先看3遍:http://www.foxtable.com/webhelp/topics/1284.htm

Filter = "制单人=\'" & User.name & "\' Or UserID=\'" & UserID & "\' And 审核 Is null" 


--  作者:lgz518
--  发布时间:2022/4/26 21:28:00
--  
问题一:
Filter = "制单人=\'" & User.name & "\' Or UserID=\'" & UserID & "\' And 审核 Is null" 
报错

图片点击可在新窗口打开查看此主题相关图片如下:加载1.jpg
图片点击可在新窗口打开查看

问题二:
Filter = "制单人=\'" & User.name & "\' Or  审核 is null "   这个显示数据,而下面是什么原因显示?

Filter = "制单人=\'" & User.name & "\' and  审核 is null "   不显示数据


--  作者:有点蓝
--  发布时间:2022/4/26 21:39:00
--  
不存在userid这个变量
--  作者:lgz518
--  发布时间:2022/4/26 21:48:00
--  
那怎么写,请老师帮助,谢谢