以文本方式查看主题 - 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 -- 这种用法没有办法在数据源设置里使用登录的用户。因为先设置数据源,才会有用户。 如果要动态设置数据源,参考这种用法:
|
||||
-- 作者: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" 报错问题二: 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 -- 那怎么写,请老师帮助,谢谢 |