以文本方式查看主题

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

--  作者:lal021962
--  发布时间:2022/4/25 13:59:00
--  关于加载树多选
在表事件的beforeload中,加入如下代码:
 Dim fl As String = "所属公司 = \'" & User.group & "\'"
            If e.DataTable.LoadFilter = "" Then
                e.DataTable.LoadFilter = fl
            ElseIf e.DataTable.LoadFilter.IndexOf(fl) < 0  Then  \'如果没有包括雇员条件
                e.DataTable.LoadFilter = e.DataTable.Loadfilter & " And " &  fl
            End  If
会出现如下情况:
加载树日期单选时,只会加载本公司的数据,但加载树日期双选的时候,会加载出其他公司的数据,请问原因,截图如下:

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


--  作者:有点蓝
--  发布时间:2022/4/25 14:01:00
--  
调试看看

 Dim fl As String = "所属公司 = \'" & User.group & "\'"
msgbox(e.DataTable.LoadFilter)
            If e.DataTable.LoadFilter = "" Then
                e.DataTable.LoadFilter = fl
            ElseIf e.DataTable.LoadFilter.IndexOf(fl) < 0  Then  \'如果没有包括雇员条件
                e.DataTable.LoadFilter = e.DataTable.Loadfilter & " And " &  fl
            End  If
msgbox(e.DataTable.LoadFilter)

--  作者:lal021962
--  发布时间:2022/4/25 14:20:00
--  
按照你指点的改完以后出现如下提醒:

此主题相关图片如下:3.png
按此在新窗口浏览图片



--  作者:有点蓝
--  发布时间:2022/4/25 14:35:00
--  
是个bug,我反馈一下。
--  作者:wei0769
--  发布时间:2022/4/30 15:10:00
--  
改一下,测试下

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:动态加载演示.foxdb


--  作者:狐狸爸爸
--  发布时间:2022/5/1 7:56:00
--  
楼主,逻辑与句的合并应该这样:

Dim fl As String = "所属公司 = \'" & User.group & "\'"
            If e.DataTable.LoadFilter = "" Then
                e.DataTable.LoadFilter = fl
            ElseIf e.DataTable.LoadFilter.IndexOf(fl) < 0  Then  \'如果没有包括雇员条件
                e.DataTable.LoadFilter = "(" & e.DataTable.Loadfilter & ") And (" &  fl & ")"
            End  If



--  作者:wei0769
--  发布时间:2022/5/1 10:12:00
--  
狐狸爸爸

你测试下,加载条件并不是每次重新生成