以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  不同的人加载不同的行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=187352)

--  作者:yaojun
--  发布时间:2023/7/11 14:37:00
--  不同的人加载不同的行
If User.Name = "管理员" Or User.Name = "开发者" Then
    DataTables("客户产品").LoadFilter = ""
Else
    DataTables("客户产品").LoadFilter = "用户名 = \'" & User.Name & "\'"
End If
DataTables("客户产品").Load()
以上代码可以实现不同的人加载不同的行,但这只局限于使用系统自带的登录窗口,如果要使用自定义的登录窗口呢,代码该怎么变

--  作者:有点蓝
--  发布时间:2023/7/11 14:45:00
--  
http://www.foxtable.com/webhelp/topics/2048.htm

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

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


--  作者:yaojun
--  发布时间:2023/7/11 15:25:00
--  

项目BeforeLoadInnerTable

If e.DataTableName = "表B" Then

    e.Filter = "[_Identify] Is Null"
End
If


按钮加了

DataTables("表B").LoadFilter = "用户名 = \'" & _UserName & "\'"

DataTables("表B").Load()
好像没有加载任何数据

--  作者:有点蓝
--  发布时间:2023/7/11 15:33:00
--  
登录怎么做的?有给_UserName赋值吗?

msgbox("用户名 = \'" & _UserName & "\'") 有符合这个条件的数据吗?

--  作者:yaojun
--  发布时间:2023/7/11 15:48:00
--  
登录按钮:
Dim yh As WinForm.TextBox = e.Form.Controls("TextBox1")
Dim mm As WinForm.TextBox = e.Form.Controls("TextBox2")

If yh.text = "" Then
    MessageBox.Show("请输入用户名!","提醒")
    Return
End If

Dim dr As DataRow = DataTables("用户管理").Find("用户名 = \'" & yh.text & "\' and 密码 = \'" & mm.text & "\'")
If dr Is Nothing Then
    MessageBox.Show("用户名或密码不对!","提醒")
    Return
End If

Vars("_用户名") = dr("用户名")
Vars("_权限") = dr("权限")
For Each dt As DataTable In DataTables
    dt.load
Next
e.Form.Close
Forms("Main").Open

DataTables("表B").LoadFilter = "用户名 = \'" & _UserName & "\'"
DataTables("表B").Load()

全局代码赋值:
Public _UserName As String \'用户名
Public
_UserGroup As String \'用户分组

[此贴子已经被作者于2023/7/11 15:55:43编辑过]

--  作者:有点蓝
--  发布时间:2023/7/11 15:57:00
--  
要理解帮助处理问题的逻辑,帮助使用的是_UserName存储用户名。但是上面代码使用的是Vars("_用户名")存储用户名,那么所有使用用户名的地方都改为使用Vars("_用户名")呀
--  作者:yaojun
--  发布时间:2023/7/11 16:16:00
--  
谢谢蓝老师,明白了