以文本方式查看主题

-  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=184197)

--  作者:lgz518
--  发布时间:2022/11/28 10:59:00
--  如何按另一表的字段加载?
窗口上如何当前登录的用户实现《图书表》按《用户表》的“用户名,阅读权限”加载相应的记录,具体的结果如图:


下面代码有问题,请帮忙处理,谢谢
Dim Filter As String
Dim f2 As String = "[经办人] = \'" & User.Name & "\'"
Dim dr1 As DataRow = Tables("图书表").Current.DataRow
Dim dr As DataRow = DataTables("用户表").Find("[用户名]  = \'" & dr1("经办人") & "\'And [阅读权限] = \'" & dr1("阅读权限") & "\'")
If dr IsNot Nothing Then
    f2 = " and  用户名 = \'" & dr("经办人") & "\' And (" & f2 & " Or [阅读权限] = \'" & dr("阅读权限") & "\')"
Else
    f2 = " and  " & f2
End If
Filter = Filter & f2
msgbox(Filter)
DataTables("图书表").LoadFilter = Filter
DataTables("图书表").Load()



[此贴子已经被作者于2022/11/28 17:02:57编辑过]

--  作者:有点蓝
--  发布时间:2022/11/28 11:22:00
--  
Dim Filter As String = "[经办人] = \'" & User.Name & "\'"
Dim f2 As String = "1=2 "
Dim dr As DataRow = DataTables("用户表").Find("[用户名]  = \'" & dr1("经办人") & "\' and 阅读权限 is not null")
If dr IsNot Nothing Then
    For Each s As String In dr("阅读权限").split(",")
        f2 = " or \',\'+ 阅读权限+\',\' like \'%," & s & ",%\'"
    Next
End If
Filter = Filter & "(" & f2 & ")"
msgbox(Filter)
DataTables("图书表").LoadFilter = Filter
DataTables("图书表").Load()

--  作者:lgz518
--  发布时间:2022/11/28 11:53:00
--  
老师,报错

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.5.23.2
错误所在事件:窗口,窗口1,AfterLoad
详细错误信息:
未将对象引用设置到对象的实例。

--  作者:lgz518
--  发布时间:2022/11/28 11:56:00
--  
语法错误 (操作符丢失) 在查询表达式 \'([经办人] = \'王五\'( or \',\'+ 阅读权限+\',\' like \'%,A,%\'))\' 中。
--  作者:有点蓝
--  发布时间:2022/11/28 12:06:00
--  
http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=150626
--  作者:lgz518
--  发布时间:2022/11/28 13:08:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:加载问题 - 1 - 副本.table


--  作者:lgz518
--  发布时间:2022/11/28 13:12:00
--  
上实例,请老师帮处理。需求:图书表按当前登录的用户名或阅读权限加载数据
--  作者:有点蓝
--  发布时间:2022/11/28 13:39:00
--  
f2 = " or \',\'+ 阅读权限+\',\' like \'%," & s & ",%\'"
改为
f2 = f2 & " or \',\'+ 阅读权限+\',\' like \'%," & s & ",%\'"

--  作者:lgz518
--  发布时间:2022/11/28 13:50:00
--  
还是报错: \'.\', \'!\', 或 \'()\' 的使用非法。 在查询表达式 \'([经办人] = \'王五\'(1=2  or \',\'+ 阅读权限+\',\' like \'%,A,%\'))\' 中。
--  作者:有点蓝
--  发布时间:2022/11/28 14:00:00
--  
Filter = Filter & "(" & f2 & ")"
改为
Filter = Filter & " and (" & f2 & ")"